2018-07-02 12:57:42 +02:00
if ( document instanceof HTMLDocument )
2018-03-24 19:30:18 +01:00
{
2019-01-11 19:28:26 +01:00
let brws = ( typeof browser == "undefined" ? chrome : browser )
brws . storage . sync . get ( [ "crowd_bypass_opt_out" ] , res => {
document . documentElement . setAttribute ( "data-crowd-bypass-opt" , ( res && res . crowd _bypass _opt _out && res . crowd _bypass _opt _out === "true" ? "o" : "i" ) )
} )
brws . storage . local . get ( [ "custom_bypasses" ] , res => {
let f = ( ) => {
if ( res && res . custom _bypasses )
{
let customBypasses = JSON . parse ( res . custom _bypasses )
for ( let name in customBypasses )
{
let customBypass = customBypasses [ name ]
if ( customBypass . domains == "*" )
injectScript ( customBypass . content )
else
{
let domains = customBypass . domains . split ( "," )
for ( let i in domains )
{
let domain = domains [ i ]
if ( location . hostname == domain || location . hostname . substr ( location . hostname . length - ( domain . length + 1 ) ) == "." + domain )
injectScript ( customBypass . content )
}
}
}
}
}
if ( [ "interactive" , "complete" ] . indexOf ( document . readyState ) > - 1 )
{
f ( )
}
else
{
document . addEventListener ( "DOMContentLoaded" , f )
}
} )
brws . runtime . sendMessage ( { } , response => {
2018-11-11 15:54:54 +01:00
let script = document . createElement ( "script" )
2019-01-11 19:28:26 +01:00
script . innerHTML = ` (()=>{//Hello, this is Universal Bypass' injection!
let ODP = ( t , p , o ) => { try { Object . defineProperty ( t , p , o ) } catch ( e ) { console . trace ( "[Universal Bypass] Couldn't define" , p ) } } ,
2018-12-08 13:33:32 +01:00
//Copying eval, etc. to prevent issues with other extensions, such as uBlockOrigin. Also, note that this is the page level, so there are no security risks in using eval.
ev = eval , sT = setTimeout , sI = setInterval ,
2018-10-02 20:01:59 +02:00
isGoodLink = link => link && link != location . href && link . substr ( 0 , 11 ) != "javascript:" ,
2018-12-30 12:25:26 +01:00
navigated = false ,
unsafelyNavigate = target => {
if ( navigated )
return
navigated = true
location . href = "https://universal-bypass.org/before-navigate?target=" + encodeURIComponent ( target )
//The background script will intercept the request and redirect to html/before-navigate.html or to the target depending on the user's settings.
} ,
safelyNavigate = target => {
2018-12-17 18:49:04 +01:00
if ( navigated || ! isGoodLink ( target ) )
2018-12-30 12:25:26 +01:00
{
2018-12-17 18:49:04 +01:00
return false
2018-12-30 12:25:26 +01:00
}
2018-12-17 18:49:04 +01:00
bypassed = true
let url
try { url = new URL ( target ) } catch ( e ) { }
if ( ! url || ! url . hash )
2018-12-30 12:25:26 +01:00
{
2018-12-17 18:49:04 +01:00
target += location . hash
2018-12-30 12:25:26 +01:00
}
2018-12-17 18:49:04 +01:00
window . onbeforeunload = null
2018-12-30 12:25:26 +01:00
unsafelyNavigate ( target )
2018-12-17 18:49:04 +01:00
return true
2018-07-02 12:57:42 +02:00
} ,
2018-12-30 12:25:26 +01:00
bypassed = false ,
finish = ( ) => {
2018-10-08 16:26:22 +02:00
bypassed = true
document . documentElement . setAttribute ( "data-universal-bypass-stop-watching" , "" )
} ,
2018-12-05 09:04:17 +01:00
domainBypass = ( domain , f ) => {
2018-07-02 12:57:42 +02:00
if ( ! bypassed && ( location . hostname == domain || location . hostname . substr ( location . hostname . length - ( domain . length + 1 ) ) == "." + domain ) )
{
2018-12-05 09:04:17 +01:00
f ( )
2018-12-30 12:25:26 +01:00
finish ( )
2018-07-02 12:57:42 +02:00
}
} ,
2018-12-05 09:04:17 +01:00
hrefBypass = ( regex , f ) => {
if ( ! bypassed && regex . test ( location . href ) )
2018-07-02 12:57:42 +02:00
{
2018-12-05 09:04:17 +01:00
f ( )
2018-12-30 12:25:26 +01:00
finish ( )
2018-07-02 12:57:42 +02:00
}
} ,
2018-12-05 09:04:17 +01:00
ensureDomLoaded = f => {
2018-07-02 12:57:42 +02:00
if ( [ "interactive" , "complete" ] . indexOf ( document . readyState ) > - 1 )
2018-12-30 12:25:26 +01:00
{
2018-12-05 09:04:17 +01:00
f ( )
2018-12-30 12:25:26 +01:00
}
else
{
document . addEventListener ( "DOMContentLoaded" , ( ) => sT ( f , 1 ) )
}
2018-12-05 09:04:17 +01:00
} ,
2019-01-11 19:28:26 +01:00
crowdBypass = f => {
if ( crowdEnabled )
2018-12-30 12:25:26 +01:00
{
2019-01-11 19:28:26 +01:00
if ( location . href . substr ( location . href . length - 18 ) == "#ignoreCrowdBypass" )
{
document . querySelectorAll ( "form[action]" ) . forEach ( e => e . action += "#ignoreCrowdBypass" )
document . querySelectorAll ( "a[href]" ) . forEach ( e => e . href += "#ignoreCrowdBypass" )
history . pushState ( { } , document . querySelector ( "title" ) . textContent , location . href . substr ( 0 , location . href . length - 18 ) )
f ( )
}
else
{
let xhr = new XMLHttpRequest ( )
xhr . onreadystatechange = ( ) => {
if ( xhr . readyState == 4 && xhr . status == 200 && xhr . responseText != "" )
{
location . href = "https://universal-bypass.org/crowd-bypassed?target=" + encodeURIComponent ( xhr . responseText ) + "&back=" + encodeURIComponent ( location . href )
//The background script will intercept the request and redirect to html/crowd-bypassed.html because we can't redirect to extension urls in this scope.
}
else
{
f ( )
}
2018-12-30 12:25:26 +01:00
}
2019-01-11 19:28:26 +01:00
xhr . open ( "POST" , "https://universal-bypass.org/crowd/query_v1" , true )
xhr . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" )
xhr . send ( "domain=" + encodeURIComponent ( domain ) + "&path=" + encodeURIComponent ( location . pathname . toString ( ) . substr ( 1 ) ) )
2018-10-07 21:33:44 +02:00
}
2018-10-02 19:31:00 +02:00
}
2019-01-11 19:28:26 +01:00
} ,
2019-01-11 23:23:44 +01:00
contributeAndNavigate = target => {
if ( ! navigated && isGoodLink ( target ) )
2018-10-07 21:33:44 +02:00
{
2019-01-11 23:23:44 +01:00
if ( crowdEnabled )
{
let xhr = new XMLHttpRequest ( )
xhr . onreadystatechange = ( ) => {
if ( xhr . readyState == 4 )
{
unsafelyNavigate ( target )
}
}
xhr . open ( "POST" , "https://universal-bypass.org/crowd/contribute_v1" , true )
xhr . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" )
xhr . send ( "domain=" + encodeURIComponent ( domain ) + "&path=" + encodeURIComponent ( location . pathname . toString ( ) . substr ( 1 ) ) + "&target=" + encodeURIComponent ( target ) )
}
else
2018-10-15 06:55:21 +02:00
{
2018-12-30 12:25:26 +01:00
unsafelyNavigate ( target )
2018-10-15 06:55:21 +02:00
}
}
2019-01-11 23:23:44 +01:00
} ,
2019-01-11 19:28:26 +01:00
domain = location . hostname ,
crowdEnabled = document . documentElement . hasAttribute ( "data-universal-bypass-crowd-enabled" )
if ( crowdEnabled )
{
document . documentElement . removeAttribute ( "data-universal-bypass-crowd-enabled" )
}
2018-10-15 06:55:21 +02:00
if ( domain . substr ( 0 , 4 ) == "www." )
2019-01-11 19:28:26 +01:00
{
2018-10-15 06:55:21 +02:00
domain = domain . substr ( 4 )
2019-01-11 19:28:26 +01:00
}
2018-12-05 09:04:17 +01:00
ODP ( window , "blurred" , {
2018-10-15 06:55:21 +02:00
value : false ,
writable : false
} )
2018-12-30 12:25:26 +01:00
//adf.ly
ODP ( window , "ysmm" ,
2018-03-26 10:37:43 +02:00
{
2018-07-08 17:18:00 +02:00
set : r => {
2018-09-25 03:07:47 +02:00
let a , m , I = "" , X = ""
for ( m = 0 ; m < r . length ; m ++ )
2018-12-30 12:25:26 +01:00
{
if ( m % 2 == 0 )
{
I += r . charAt ( m )
}
else
{
X = r . charAt ( m ) + X
}
}
2018-05-28 01:40:02 +02:00
r = I + X
2018-09-25 03:07:47 +02:00
a = r . split ( "" )
for ( m = 0 ; m < a . length ; m ++ )
2018-06-15 21:35:23 +02:00
{
2018-09-25 03:07:47 +02:00
if ( ! isNaN ( a [ m ] ) )
2018-07-08 17:18:00 +02:00
{
2018-09-25 03:07:47 +02:00
for ( var R = m + 1 ; R < a . length ; R ++ )
2018-07-08 17:18:00 +02:00
{
2018-09-25 03:07:47 +02:00
if ( ! isNaN ( a [ R ] ) )
2018-07-08 17:18:00 +02:00
{
2018-09-25 03:07:47 +02:00
let S = a [ m ] ^ a [ R ]
2018-12-30 12:25:26 +01:00
if ( S < 10 )
{
a [ m ] = S
}
m = R
2018-09-25 03:07:47 +02:00
R = a . length
2018-07-08 17:18:00 +02:00
}
}
}
2018-06-15 21:35:23 +02:00
}
2018-09-25 03:07:47 +02:00
r = a . join ( '' )
2018-12-30 12:25:26 +01:00
r = atob ( r )
2018-09-25 03:07:47 +02:00
r = r . substring ( r . length - ( r . length - 16 ) )
r = r . substring ( 0 , r . length - 16 )
2018-12-30 12:25:26 +01:00
safelyNavigate ( r )
2018-03-26 10:37:43 +02:00
}
2018-05-28 06:32:24 +02:00
} )
2018-06-06 05:55:27 +02:00
//LinkBucks
2018-06-16 08:09:24 +02:00
var actualInitLbjs
2018-12-05 09:04:17 +01:00
ODP ( window , "initLbjs" , {
2018-06-06 05:55:27 +02:00
set : ( _ ) => actualInitLbjs = _ ,
get : ( ) => ( a , p ) => {
2018-06-08 01:36:45 +02:00
p . Countdown --
2018-06-06 05:55:27 +02:00
actualInitLbjs ( a , p )
}
} )
2018-06-01 18:45:23 +02:00
//Safelink
let actual _safelink = forced _safelink = { counter : 0 }
2018-12-05 09:04:17 +01:00
ODP ( window , "safelink" ,
2018-06-01 18:45:23 +02:00
{
2018-07-08 17:18:00 +02:00
set : _ => {
2018-06-01 18:45:23 +02:00
ODP ( window , "blurred" , {
2018-07-02 12:57:42 +02:00
value : false ,
writable : false
2018-06-01 18:45:23 +02:00
} )
2018-12-27 06:45:40 +01:00
for ( let k in _ )
2018-12-30 12:25:26 +01:00
{
2018-06-01 18:45:23 +02:00
if ( forced _safelink [ k ] === undefined )
2018-12-30 12:25:26 +01:00
{
2018-12-27 06:45:40 +01:00
actual _safelink [ k ] = _ [ k ]
2018-12-30 12:25:26 +01:00
}
}
2018-06-01 18:45:23 +02:00
} ,
get : ( ) => actual _safelink
} )
for ( let key in forced _safelink )
{
ODP ( safelink , key ,
{
2018-07-02 12:57:42 +02:00
writable : false ,
2018-06-01 18:45:23 +02:00
value : forced _safelink [ key ]
} )
}
2018-07-01 00:15:57 +02:00
//YetiShare
2018-06-15 19:30:07 +02:00
let actual _web _root
2018-12-05 09:04:17 +01:00
ODP ( window , "WEB_ROOT" , {
2018-07-08 17:18:00 +02:00
set : v => {
2018-12-05 09:04:17 +01:00
ODP ( window , "seconds" , {
2018-06-15 19:30:07 +02:00
value : 0 ,
2018-07-02 12:57:42 +02:00
writable : false
2018-06-15 19:30:07 +02:00
} )
actual _web _root = v
} ,
get : ( ) => actual _web _root
} )
2019-01-11 19:28:26 +01:00
hrefBypass ( /ur\\.ly|urly\\.mobi/ , ( ) => {
2018-05-28 01:40:02 +02:00
if ( location . pathname . length > 2 && location . pathname . substr ( 0 , 6 ) != "/goii/" )
2018-07-02 12:57:42 +02:00
safelyNavigate ( "/goii/" + location . pathname . substr ( 2 ) + "?ref=" + location . hostname + location . pathname )
2018-05-28 01:40:02 +02:00
} )
2019-01-11 23:23:44 +01:00
hrefBypass ( / u n i v e r s a l - b y p a s s \ \ . o r g \ \ / f i r s t r u n / , ( ) = > {
location . href = "https://universal-bypass.org/firstrun?1"
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "cshort.org" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "adblock" , {
2018-07-02 12:57:42 +02:00
value : false ,
writable : false
2018-05-28 01:40:02 +02:00
} )
2018-12-05 09:04:17 +01:00
ODP ( window , "i" , {
2018-05-28 01:40:02 +02:00
value : 0 ,
2018-07-02 12:57:42 +02:00
writable : false
2018-05-28 01:40:02 +02:00
} )
2018-07-02 12:57:42 +02:00
ensureDomLoaded ( ( ) =>
2018-03-26 10:37:43 +02:00
{
2018-06-15 21:35:23 +02:00
let lT = sI ( ( ) =>
2018-05-28 01:40:02 +02:00
{
if ( document . querySelector ( ".next[href]" ) )
{
clearInterval ( lT )
2018-07-02 12:57:42 +02:00
safelyNavigate ( atob ( atob ( document . querySelector ( ".next[href]" ) . getAttribute ( "href" ) ) ) )
2018-05-28 01:40:02 +02:00
}
} , 100 )
} )
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "link.tl" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "countdown" , {
2018-05-28 01:40:02 +02:00
value : 0 ,
2018-07-02 12:57:42 +02:00
writable : false
2018-05-28 01:40:02 +02:00
} )
2018-06-15 21:35:23 +02:00
let lT = sI ( ( ) =>
2018-05-30 19:44:25 +02:00
{
if ( document . querySelector ( ".skip > .btn" ) )
2018-06-15 21:35:23 +02:00
{
2018-10-02 12:17:06 +02:00
clearInterval ( lT )
2018-05-30 19:44:25 +02:00
document . querySelector ( ".skip > .btn" ) . click ( )
2018-06-15 21:35:23 +02:00
}
2018-06-16 08:09:24 +02:00
} , 100 )
2018-05-28 01:40:02 +02:00
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "onepiece-ex.com.br" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "seconds" , {
2018-05-29 19:11:25 +02:00
value : 1 ,
2018-07-02 12:57:42 +02:00
writable : false
2018-05-29 19:11:25 +02:00
} )
2018-06-15 21:35:23 +02:00
let lT = sI ( ( ) => {
2018-05-29 19:11:25 +02:00
if ( document . getElementById ( "continuar" ) )
{
2018-05-30 19:44:25 +02:00
clearInterval ( lT )
2018-07-02 12:57:42 +02:00
safelyNavigate ( document . getElementById ( "continuar" ) . href )
2018-05-29 19:11:25 +02:00
}
} , 100 )
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "akoam.net" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "timer" , {
2018-05-30 19:44:25 +02:00
value : 0 ,
2018-07-02 12:57:42 +02:00
writable : false
2018-05-30 19:44:25 +02:00
} )
2018-06-15 21:35:23 +02:00
let lT = sI ( ( ) => {
2018-05-30 19:44:25 +02:00
if ( document . querySelector ( ".download_button" ) )
{
clearInterval ( lT )
2018-07-02 12:57:42 +02:00
safelyNavigate ( document . querySelector ( ".download_button" ) . href )
2018-05-30 19:44:25 +02:00
}
} , 100 )
} )
2019-01-11 19:28:26 +01:00
hrefBypass ( / 1 v \ \ . t o \ \ / t \ \ / . * / , ( ) = > {
2018-05-30 19:44:25 +02:00
location . pathname = location . pathname . split ( "/t/" ) . join ( "/saliendo/" )
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "share-online.biz" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "wait" , {
2018-10-02 12:17:06 +02:00
set : s => 0 ,
2018-06-15 21:35:23 +02:00
get : ( ) => {
return 2
}
2018-06-01 18:45:23 +02:00
} )
} )
2019-01-11 19:28:26 +01:00
hrefBypass ( /sfile\\.(mobi|xyz)/ , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "downloadButton" , {
2018-10-02 12:17:06 +02:00
set : b => {
2018-06-06 05:55:27 +02:00
if ( b && b . href )
2018-07-02 12:57:42 +02:00
safelyNavigate ( b . href )
2018-06-06 05:55:27 +02:00
}
} )
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "mylink.zone" , ( ) => {
2018-12-05 09:04:17 +01:00
ODP ( window , "seconde" , {
2018-07-08 17:18:00 +02:00
set : _ => { } ,
2018-06-15 21:35:23 +02:00
get : ( ) => {
return - 1
}
2018-06-06 05:55:27 +02:00
} )
} )
2018-07-02 12:57:42 +02:00
domainBypass ( "sourceforge.net" , ( ) => {
var b = document . createElement ( "button" ) , d = false
2018-06-11 06:43:52 +02:00
b . className = "direct-download"
b . style . display = "none"
document . documentElement . appendChild ( b )
2018-12-05 09:04:17 +01:00
ODP ( window , "log" , {
2018-07-08 17:18:00 +02:00
value : m => {
2018-06-11 06:43:52 +02:00
console . log ( m )
if ( m == "triggering downloader:start" )
2018-07-02 12:57:42 +02:00
d = true
2018-06-11 06:43:52 +02:00
} ,
2018-07-02 12:57:42 +02:00
writable : false
2018-06-11 06:43:52 +02:00
} )
2018-07-02 12:57:42 +02:00
ensureDomLoaded ( ( ) => {
2018-06-15 21:35:23 +02:00
let bT = sI ( ( ) => {
2018-06-11 06:43:52 +02:00
if ( d )
clearInterval ( bT )
else b . click ( )
} , 100 )
} )
2019-01-11 19:28:26 +01:00
} )
domainBypass ( "bc.vc" , ( ) => {
window . setInterval = f => sI ( f , 800 )
crowdBypass ( ( ) => {
window . eval = c => {
let j = ev ( c )
if ( j . message && j . message . url )
2018-10-03 07:51:32 +02:00
{
2019-01-11 19:28:26 +01:00
contributeAndNavigate ( j . message . url )
return { }
2018-10-03 07:51:32 +02:00
}
2019-01-11 19:28:26 +01:00
return j
}
2018-06-15 21:35:23 +02:00
} )
2019-01-11 19:28:26 +01:00
let sT = setInterval ( ( ) => {
let a = document . querySelector ( ".skip_btt > #skip_btt" )
if ( a )
2018-12-30 12:25:26 +01:00
{
2019-01-11 19:28:26 +01:00
clearInterval ( sT )
a . click ( )
}
} , 50 )
} )
domainBypass ( "shortly.xyz" , ( ) => {
if ( location . pathname . substr ( 0 , 3 ) == "/r/" )
{
document . getElementById = ( ) => ( { submit : ( ) => {
let f = document . querySelector ( "form" )
f . action = "/link#" + document . querySelector ( "input[name='id']" ) . value
f . submit ( )
} } )
}
else if ( location . pathname == "/link" )
{
let xhr = new XMLHttpRequest ( )
xhr . onreadystatechange = ( ) => {
if ( xhr . readyState == 4 && xhr . status == 200 )
safelyNavigate ( xhr . responseText )
2018-12-30 12:25:26 +01:00
}
2019-01-11 19:28:26 +01:00
xhr . open ( "POST" , "https://www.shortly.xyz/getlink.php" , true )
xhr . setRequestHeader ( "Content-type" , "application/x-www-form-urlencoded" )
xhr . setRequestHeader ( "X-Requested-With" , "XMLHttpRequest" )
xhr . send ( "id=" + location . hash . replace ( "#" , "" ) )
}
} )
domainBypass ( "emulator.games" , ( ) => {
if ( location . pathname == "/download.php" )
window . setInterval = f => sI ( f , 1 )
} )
domainBypass ( "noriskdomain.com" , ( ) => {
let s = new URLSearchParams ( location . search )
if ( s . has ( "u" ) )
safelyNavigate ( atob ( s . get ( "u" ) ) )
} )
if ( bypassed )
{
return
}
ensureDomLoaded ( ( ) => {
domainBypass ( "adfoc.us" , ( ) => {
let b = document . querySelector ( ".skip[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "sub2unlock.com" , ( ) => {
if ( location . pathname . substr ( 0 , 10 ) == "/link/get/" )
2018-06-19 13:35:38 +02:00
{
2019-01-11 19:28:26 +01:00
safelyNavigate ( document . getElementById ( "link" ) . href )
}
else
{
let f = document . getElementById ( "getLinkNow" )
if ( f )
document . getElementById ( "getLinkNow" ) . submit ( )
2018-06-19 13:35:38 +02:00
}
} )
2019-01-11 19:28:26 +01:00
domainBypass ( "srt.am" , ( ) => {
if ( document . querySelector ( ".skip-container" ) )
{
let f = document . createElement ( "form" )
f . method = "POST"
f . innerHTML = '<input type="hidden" name="_image" value="Continue">'
f = document . documentElement . appendChild ( f )
f . submit ( )
}
2018-12-03 04:37:15 +01:00
} )
2019-01-11 19:28:26 +01:00
domainBypass ( "admy.link" , ( ) => {
let f = document . querySelector ( ".edit_link" )
if ( f )
f . submit ( )
2018-12-17 18:49:04 +01:00
} )
2019-01-11 19:28:26 +01:00
domainBypass ( "ysear.ch" , ( ) => {
let b = document . querySelector ( "#NextVideo[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "1ink.cc" , ( ) => {
if ( typeof SkipAd == "function" )
SkipAd ( )
} )
domainBypass ( "losstor.com" , ( ) => {
let b = document . getElementById ( "re_link" )
if ( b )
2018-12-05 09:04:17 +01:00
{
2019-01-11 19:28:26 +01:00
window . open = safelyNavigate
b . click ( )
2018-12-05 09:04:17 +01:00
}
2019-01-11 19:28:26 +01:00
} )
domainBypass ( "bagisoft.net" , ( ) => {
let b = document . getElementById ( "makingdifferenttimer" )
if ( b )
2018-11-09 15:00:05 +01:00
{
2019-01-11 19:28:26 +01:00
window . open = safelyNavigate
b . click ( )
2018-11-09 15:00:05 +01:00
}
2019-01-11 19:28:26 +01:00
else
jQuery . prototype . animateProgress = ( p , f ) => f ( )
} )
domainBypass ( "skinnycat.net" , ( ) => {
let b = document . querySelector ( "#dl[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "fshare.vn" , ( ) => {
if ( "$" in window )
{
let f = $ ( "#form-download" )
if ( f . length )
2018-10-07 21:33:44 +02:00
{
2019-01-11 19:28:26 +01:00
$ . ajax ( {
"url" : f . attr ( "action" ) ,
"type" : "POST" ,
"data" : f . serialize ( )
} ) . done ( data => safelyNavigate ( data . url ) )
2018-10-07 21:33:44 +02:00
}
2019-01-11 19:28:26 +01:00
}
} )
domainBypass ( "dwindly.io" , ( ) => {
let b = document . getElementById ( "btd1" )
if ( b )
{
window . open = ( ) => { }
b . click ( )
}
else
{
b = document . getElementById ( "btd" )
2018-10-07 21:33:44 +02:00
if ( b )
{
window . open = safelyNavigate
2019-01-11 19:28:26 +01:00
ev ( "(" + b . onclick . toString ( ) . split ( ";" ) [ 0 ] + "})()" )
2018-10-07 21:33:44 +02:00
}
2019-01-11 19:28:26 +01:00
}
} )
domainBypass ( "bluemediafiles.com" , ( ) => {
if ( typeof FinishMessage == "string" && FinishMessage . indexOf ( "<a href=" ) > - 1 )
{
//The FinishMessage string contains the HTML anchor element needed to get to the destination so we just replace the entire website with it because we don't need any of the other content anymore.
document . write ( FinishMessage )
document . querySelector ( "a" ) . click ( )
}
} )
domainBypass ( "complete2unlock.com" , ( ) => {
let bT = setInterval ( ( ) => {
let b = document . getElementById ( "link-success-button" ) , es = document . querySelectorAll ( ".unlockpanel" )
if ( b && es . length > 0 )
2018-06-14 06:41:51 +02:00
{
2019-01-11 19:28:26 +01:00
clearInterval ( bT )
2018-10-07 21:33:44 +02:00
window . open = ( ) => { }
2019-01-11 19:28:26 +01:00
es . forEach ( e => e . dispatchEvent ( new MouseEvent ( "click" ) ) )
let dT = setInterval ( ( ) => {
if ( ! b . hasAttribute ( "disabled" ) )
{
clearInterval ( dT )
b . dispatchEvent ( new MouseEvent ( "click" ) )
}
} , 100 )
2018-07-06 03:32:10 +02:00
}
2019-01-11 19:28:26 +01:00
} , 300 )
setInterval ( ( ) => clearInterval ( bT ) , 10000 )
} )
domainBypass ( "hidelink.club" , ( ) => {
if ( hash )
safelyNavigate ( decodeURIComponent ( atob ( hash ) ) . replace ( "%23" , "#" ) )
} )
domainBypass ( "won.pe" , ( ) =>
{
if ( document . querySelector ( ".captcha_loader .progress-bar" ) )
document . querySelector ( ".captcha_loader .progress-bar" ) . setAttribute ( "aria-valuenow" , "100" )
} )
domainBypass ( "stealive.club" , ( ) => {
if ( document . getElementById ( "counter" ) )
document . getElementById ( "counter" ) . innerHTML = "0"
} )
hrefBypass ( /((binerfile|pafpaf)\\.info)|(kurosafety\\.menantisenja\\.com)/ , ( ) => { //KuroSafe
let b = document . querySelector ( "#mybutton[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "gotoo.loncat.in" , ( ) => {
let a = document . querySelector ( "a[href^='http://gotoo.loncat.in/go.php?open=']" )
if ( a )
safelyNavigate ( a . href )
} )
domainBypass ( "id-share19.com" , ( ) => window . setTimeout = ( f ) => sT ( f , 1 ) )
domainBypass ( "idnation.net" , ( ) => {
let b = document . querySelector ( "#linko[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "mazika2day.com" , ( ) => {
let b = document . querySelector ( ".linkbtn[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "ux9.de" , ( ) => {
let m = document . querySelector ( "meta[http-equiv='refresh'][content]" )
if ( m && m . getAttribute ( "content" ) . indexOf ( ";url=http" ) > - 1 )
safelyNavigate ( m . getAttribute ( "content" ) . split ( ";url=" ) [ 1 ] )
} )
domainBypass ( "telolet.in" , ( ) => {
let b = document . querySelector ( "a#skip[href]" )
if ( ! b )
b = document . querySelector ( ".redirect_url > a[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "vipdirect.cc" , ( ) => {
if ( typeof ab == "number" && typeof asdf == "function" )
2018-10-07 21:33:44 +02:00
{
2019-01-11 19:28:26 +01:00
ab = 5
window . open = safelyNavigate
asdf ( )
}
} )
domainBypass ( "rapidcrypt.net" , ( ) => {
let b = document . querySelector ( ".push_button.blue[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "shrink-service.it" , ( ) => {
if ( typeof $ == "function" && typeof $ . ajax == "function" && typeof screenApi == "function" )
{
let _a = $ . ajax
$ . ajax = a => ( a . data && a . data . set _one ? safelyNavigate ( atob ( a . data . set _one ) ) : _a ( a ) )
screenApi ( )
}
} )
domainBypass ( "rom.io" , ( ) => crowdBypass ( ( ) => {
let cT = setInterval ( ( ) => {
let a = document . querySelector ( "a.final-button[href]" )
if ( a && isGoodLink ( a . href ) )
2018-10-09 16:50:04 +02:00
{
2019-01-11 19:28:26 +01:00
clearInterval ( cT )
a . parentNode . removeChild ( a )
contributeAndNavigate ( a . href )
2018-10-09 16:50:04 +02:00
}
2019-01-11 19:28:26 +01:00
} , 50 )
} ) )
domainBypass ( "show.co" , ( ) => {
let s = document . getElementById ( "show-campaign-data" )
if ( s )
{
let d = JSON . parse ( s . textContent )
if ( d && "title" in d && "unlockable" in d )
2018-12-08 13:33:32 +01:00
{
2019-01-11 19:28:26 +01:00
document . write ( "<body></body>" )
if ( "title" in d )
[ "title" , "h1" ] . forEach ( t => {
let e = document . createElement ( t )
e . textContent = d . title
document . body . appendChild ( e )
} )
2018-12-08 13:33:32 +01:00
if ( "message" in d . unlockable )
{
let p = document . createElement ( "p" )
p . textContent = d . unlockable . message
document . body . appendChild ( p )
}
if ( "redirect" in d . unlockable && "url" in d . unlockable . redirect )
{
let p = document . createElement ( "p" ) , a = document . createElement ( "a" )
a . textContent = a . href = d . unlockable . redirect . url
p . appendChild ( a )
document . body . appendChild ( p )
}
stop ( )
}
}
} )
2018-10-07 21:33:44 +02:00
if ( bypassed )
return
2019-01-04 17:26:19 +01:00
//Adf.ly "Locked" Page
if ( location . pathname == "/ad/locked" && document . getElementById ( "countdown" ) && document . querySelector ( "a" ) . textContent == "Click here to continue" )
{
let wT = setInterval ( ( ) => {
if ( document . getElementById ( "countdown" ) . textContent == "0" )
{
clearInterval ( wT )
document . querySelector ( "a" ) . click ( )
}
} , 100 )
}
//Adf.ly Pre-Redirect Page
2018-10-07 21:33:44 +02:00
if ( location . pathname . substr ( 0 , 13 ) == "/redirecting/" && document . querySelector ( "p[style]" ) . textContent == "For your safety, never enter your password unless you're on the real Adf.ly site." )
{
let a = document . querySelector ( "a[href]" )
if ( a )
2018-12-30 12:25:26 +01:00
{
2018-10-07 21:33:44 +02:00
safelyNavigate ( a . href )
2019-01-11 19:28:26 +01:00
return finish ( )
2018-12-30 12:25:26 +01:00
}
2018-10-07 21:33:44 +02:00
}
2019-01-01 18:43:20 +01:00
//SafelinkU
if ( typeof app _vars == "object" && document . querySelector ( "b[style='color: #3e66b3']" ) && document . querySelector ( "b[style='color: #3e66b3']" ) . textContent == "SafelinkU" )
2018-10-07 21:33:44 +02:00
{
2019-01-01 18:43:20 +01:00
window . setInterval = ( f ) => sI ( f , 10 )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
//GemPixel Premium URL Shortener
if ( typeof appurl != "undefined" && typeof token != "undefined" )
{
//For this bypass to work, we detect a certain inline script, modify and execute it.
2018-12-08 13:33:32 +01:00
document . querySelectorAll ( "script" ) . forEach ( script => {
2018-10-07 21:33:44 +02:00
if ( script instanceof HTMLScriptElement )
2018-05-28 01:40:02 +02:00
{
2018-10-07 21:33:44 +02:00
let cont = script . textContent
2018-12-05 09:04:17 +01:00
if ( cont . indexOf ( "clearInterval(countdown);" ) > - 1 )
2018-05-28 01:40:02 +02:00
{
2018-10-07 21:33:44 +02:00
if ( typeof countdown != "undefined" )
clearInterval ( countdown )
if ( ! document . querySelector ( "a.redirect" ) )
2018-05-28 06:32:24 +02:00
{
2018-10-07 21:33:44 +02:00
let a = document . createElement ( "a" )
a . href = "#"
a . className = "redirect"
document . documentElement . appendChild ( a )
2018-05-28 06:32:24 +02:00
}
2018-10-07 21:33:44 +02:00
if ( cont . indexOf ( "var count = " ) > - 1 )
2018-06-20 13:43:06 +02:00
{
2018-10-07 21:33:44 +02:00
cont = cont . split ( /var count = [0-9]*;/ ) . join ( "let count=0;" )
2018-06-20 13:43:06 +02:00
}
2018-10-07 21:33:44 +02:00
else
{
cont = "let count=0;" + cont
}
cont = cont . split ( "$(window).on('load', " ) . join ( "let r=f=>f();r(" )
window . setInterval = f => f ( )
ev ( cont )
window . setInterval = sI
safelyNavigate ( document . querySelector ( "a.redirect" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-05-28 01:40:02 +02:00
}
2018-10-07 21:33:44 +02:00
else if ( cont . trim ( ) . substr ( 0 , 69 ) == '!function(a){a(document).ready(function(){var b,c=a(".link-content"),' )
2018-06-01 18:45:23 +02:00
{
2018-10-07 21:33:44 +02:00
safelyNavigate ( cont . trim ( ) . substr ( 104 ) . split ( '",e=0,f=a(".count-timer"),g=f.attr("data-timer"),h=setInterval(' ) [ 0 ] )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-06-01 18:45:23 +02:00
}
2018-10-07 21:33:44 +02:00
}
2018-12-05 09:04:17 +01:00
} )
2018-10-07 21:33:44 +02:00
if ( document . getElementById ( "messa" ) && document . getElementById ( "html_element" ) ) //Ally Captcha
2018-07-08 17:18:00 +02:00
{
2018-10-07 21:33:44 +02:00
document . getElementById ( "messa" ) . className += " hidden"
document . getElementById ( "html_element" ) . className = document . getElementById ( "html_element" ) . className . split ( "hidden" ) . join ( "" ) . trim ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-07-08 17:18:00 +02:00
}
2018-10-07 21:33:44 +02:00
}
//Soralink Wordpress Plugin
if ( document . querySelector ( ".sorasubmit" ) )
{
document . querySelector ( ".sorasubmit" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "#lanjut > #goes[href]" ) )
{
safelyNavigate ( document . querySelector ( "#lanjut > #goes[href]" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . getElementById ( "waktu" ) && document . getElementById ( "goto" ) )
{
safelyNavigate ( document . getElementById ( "goto" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( typeof bukalink == "function" && document . getElementById ( "bijil1" ) && document . getElementById ( "bijil2" ) ) //gosavelink.com
{
window . open = safelyNavigate
bukalink ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( typeof changeLink == "function" )
{
let cLT = sI ( ( ) => {
if ( ( document . querySelectorAll ( "img#pleasewait" ) . length && document . querySelector ( ".wait" ) )
|| document . getElementById ( "showlink" )
2019-01-11 19:28:26 +01:00
|| document . getElementById ( "download" )
|| document . getElementsByTagName ( "style='margin-top:" ) . length
|| document . querySelector ( ".Visit_Link" ) //yametesenpai.xyz
|| document . getElementById ( "daplong" ) //converthinks.xyz
)
2018-07-16 06:23:28 +02:00
{
2018-10-07 21:33:44 +02:00
clearInterval ( cLT )
window . open = safelyNavigate
if ( typeof changeLink == "function" )
changeLink ( )
else if ( document . getElementById ( "link-download" ) ) //hightech.web.id
safelyNavigate ( document . getElementById ( "link-download" ) . href )
2018-07-16 06:23:28 +02:00
}
2018-10-07 21:33:44 +02:00
} , 100 )
}
//Safelink Wordpress Plugin
if ( document . querySelector ( ".wp-safelink-button" ) )
{
window . setInterval = f => sI ( f , 1 )
let lT = sI ( ( ) => {
if ( document . querySelector ( ".wp-safelink-button.wp-safelink-success-color" ) )
2018-07-18 22:07:19 +02:00
{
2018-10-07 21:33:44 +02:00
clearInterval ( lT )
window . open = safelyNavigate
document . querySelector ( ".wp-safelink-button.wp-safelink-success-color" ) . click ( )
2018-07-18 22:07:19 +02:00
}
2018-10-07 21:33:44 +02:00
} , 100 )
}
if ( document . getElementById ( "wpsafe-generate" ) && typeof wpsafegenerate == "function" )
{
2018-11-20 09:58:17 +01:00
let a = document . querySelector ( "#wpsafegenerate > #wpsafe-link > a[href]" )
if ( a )
2018-06-13 10:00:18 +02:00
{
2018-11-20 09:58:17 +01:00
safelyNavigate ( a . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-06-15 21:35:23 +02:00
}
2018-11-20 09:58:17 +01:00
else
2018-06-15 21:35:23 +02:00
{
2018-12-17 18:49:04 +01:00
let s = new URLSearchParams ( location . search )
if ( s . has ( "go" ) )
2018-11-20 09:58:17 +01:00
{
2018-12-17 18:49:04 +01:00
if ( safelyNavigate ( atob ( s . get ( "go" ) ) ) )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-11-20 09:58:17 +01:00
}
else if ( location . pathname . toString ( ) . substr ( 0 , 4 ) == "/go/" )
2018-10-18 01:30:48 +02:00
{
2018-11-20 09:58:17 +01:00
search = atob ( location . pathname . toString ( ) . substr ( 4 ) )
if ( search . substr ( 0 , 4 ) == "http" )
{
safelyNavigate ( search )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-11-20 09:58:17 +01:00
}
2018-10-18 01:30:48 +02:00
}
2018-06-15 21:35:23 +02:00
}
2018-10-07 21:33:44 +02:00
}
2018-12-17 18:49:04 +01:00
if ( document . querySelector ( "input[type='hidden'][name='newwpsafelink'][value]" ) )
2018-10-18 01:30:48 +02:00
{
2018-12-17 18:49:04 +01:00
let s = new URLSearchParams ( location . search )
if ( s . has ( "go" ) )
{
safelyNavigate ( atob ( s . get ( "go" ) ) )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-12-17 18:49:04 +01:00
}
2018-10-18 01:30:48 +02:00
}
2018-10-07 21:33:44 +02:00
//Other Templates
2018-11-02 20:53:45 +01:00
if ( document . querySelector ( ".timed-content-client_show_0_30_0" ) ) //technicoz.com
{
document . querySelector ( ".timed-content-client_show_0_30_0" ) . classList . remove ( "timed-content-client_show_0_30_0" )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-11-02 20:53:45 +01:00
}
2018-10-26 08:23:07 +02:00
if ( document . getElementById ( "getlink" ) && document . getElementById ( "gotolink" ) && document . getElementById ( "timer" ) ) //tetewlink.me,vehicle-techno.cf
{
document . getElementById ( "gotolink" ) . removeAttribute ( "disabled" )
document . getElementById ( "gotolink" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-26 08:23:07 +02:00
}
2018-10-07 21:33:44 +02:00
if ( document . querySelector ( "#tungguyabro" ) && typeof WaktunyaBro == "number" ) //short.mangasave.me
{
WaktunyaBro = 0
setInterval ( ( ) => {
if ( document . querySelector ( "#tungguyabro a[href]" ) )
safelyNavigate ( document . querySelector ( "#tungguyabro a[href]" ) . href )
} , 100 )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "#yangDihilangkan > a" ) && document . querySelector ( "#downloadArea > .text-center" ) ) //rathestation.bid
{
safelyNavigate ( document . querySelector ( "#yangDihilangkan > a" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "a#btn-main.disabled" ) && typeof Countdown == "function" ) //Croco,CPMLink,Sloomp.space
{
safelyNavigate ( document . querySelector ( "a#btn-main.disabled" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "a.redirectBTN.disabled" ) && document . querySelector ( ".timer" ) ) //Arablionz.online
{
safelyNavigate ( document . querySelector ( "a.redirectBTN.disabled" ) . href )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( ".shortened_link a[href][ng-href][target='_blank']" ) ) //Go2to.com,Go2too.com,Golink.to
{
safelyNavigate ( document . querySelector ( ".shortened_link a[href][ng-href][target='_blank']" ) . href )
}
if ( document . querySelector ( "form#skip" ) && document . getElementById ( "btn-main" ) && ! document . querySelector ( ".g-recaptcha" ) )
{
document . querySelector ( "form#skip" ) . submit ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . getElementById ( "countdown" ) && document . querySelector ( ".seconds" ) )
{
let doBypass = ! 0
domainBypass ( "mexashare.com" , ( ) => doBypass = ! 1 )
domainBypass ( "up-4.net" , ( ) => doBypass = ! 1 )
domainBypass ( "file-upload.com" , ( ) => doBypass = ! 1 )
if ( doBypass )
document . querySelector ( ".seconds" ) . textContent = "0"
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "#ddl #download_link .btn" ) )
{
window . open = safelyNavigate
document . querySelector ( "#ddl #download_link > .btn" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( typeof file _download == "function" )
{
window . setInterval = f => sI ( f , 1 )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
2019-01-11 19:28:26 +01:00
if ( document . querySelector ( "input[type=\\" submit \ \ "][name=\\" method _free \ \ "]" ) )
2018-10-07 21:33:44 +02:00
{
2019-01-11 19:28:26 +01:00
document . querySelector ( "input[type=\\" submit \ \ "][name=\\" method _free \ \ "]" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . getElementById ( "frmdlcenter" ) && document . getElementById ( "pay_modes" ) ) //elsfile.org Timer
{
let form = document . createElement ( "form" )
form . method = "POST"
form . innerHTML = '<input type="hidden" name="op" value="download1"><input type="hidden" name="usr_login" value="C"><input type="hidden" name="id" value="' + location . pathname . toString ( ) . substr ( 1 ) + '"><input type="hidden" name="fname" value="' + document . querySelectorAll ( "div#container > div > div > table > tbody > tr > td" ) [ 2 ] . textContent + '"><input type="hidden" name="referer" value="q"><input type="hidden" name="method_free" value="Free Download">'
form = document . documentElement . appendChild ( form )
form . submit ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( "a[href^='https://linkshrink.net/homepage'] > img.lgo" ) ) //LinkShrink.net
{
2018-10-16 01:57:00 +02:00
let p = document . getElementById ( "pause" ) , s = document . getElementById ( "skip" )
if ( p && s )
2018-06-15 21:35:23 +02:00
{
2018-10-16 01:57:00 +02:00
//Automating the click seems to not always work due to ads so we're only skipping the timer
p . style . display = "none"
s . style . display = "block"
2018-06-13 10:00:18 +02:00
}
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( ".img-responsive[alt='Gets URL']" ) && typeof x != "undefined" ) //GetsURL.com
{
let b = document . getElementById ( "link" )
if ( b )
2018-05-28 01:40:02 +02:00
{
2018-10-07 21:33:44 +02:00
safelyNavigate ( b . href + "&ab" + x )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-05-28 01:40:02 +02:00
}
2018-10-07 21:33:44 +02:00
}
if ( document . querySelector ( ".top-bar a[href='https://linkvertise.net']" ) && typeof app != "undefined" && app . handleRedirect ) //Linkvertise.net
{
app . countdown = 0
$ . post = ( u , c ) => c ( )
app . handleRedirect ( )
}
if ( document . querySelectorAll ( "img[src='/assets/img/logo.png'][alt='Openload']" ) . length ) //OpenLoad
{
if ( typeof secondsdl != "undefined" )
2018-12-30 12:25:26 +01:00
{
2018-10-07 21:33:44 +02:00
secondsdl = 0
2018-12-30 12:25:26 +01:00
}
return finish ( )
2018-10-07 21:33:44 +02:00
}
//SafeLinkReview.com
if ( document . querySelector ( ".navbar-brand" ) && document . querySelector ( ".navbar-brand" ) . textContent . trim ( ) == "Safe Link Review" && document . querySelector ( ".button.green" ) )
{
window . open = safelyNavigate
document . querySelector ( ".button.green" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
if ( location . hostname == "decrypt2.safelinkconverter.com" && document . querySelector ( ".redirect_url > div[onclick]" ) )
{
window . open = safelyNavigate
document . querySelector ( ".redirect_url > div[onclick]" ) . click ( )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-10-07 21:33:44 +02:00
}
let t = document . querySelector ( "title" )
if ( t )
{
if ( t . textContent . trim ( ) == "Viid.su" ) //Viid.su
2018-05-28 01:40:02 +02:00
{
2018-10-07 21:33:44 +02:00
let b = document . getElementById ( "link-success-button" )
if ( b && b . getAttribute ( "data-url" ) )
2018-05-28 01:40:02 +02:00
{
2018-10-07 21:33:44 +02:00
safelyNavigate ( b . getAttribute ( "data-url" ) )
2018-12-30 12:25:26 +01:00
return finish ( )
2018-05-28 01:40:02 +02:00
}
}
2018-10-07 21:33:44 +02:00
}
2019-01-01 18:43:20 +01:00
//Monitor DOM for disturbances for 3 seconds.
let dT = sI ( ( ) => {
//Shorte.st Embed
if ( document . querySelector ( ".lay-sh.active-sh" ) )
2018-06-01 18:45:23 +02:00
{
2018-10-07 21:33:44 +02:00
let elm = document . querySelectorAll ( ".lay-sh.active-sh" ) [ 0 ]
elm . parentNode . removeChild ( elm )
2018-06-01 18:45:23 +02:00
}
2019-01-01 18:43:20 +01:00
//AdLinkFly
if ( typeof app _vars == "object" )
{
document . documentElement . setAttribute ( "data-universal-bypass-adlinkfly-info" , "" )
let iT = setInterval ( ( ) => {
if ( document . documentElement . hasAttribute ( "data-universal-bypass-adlinkfly-target" ) )
{
clearInterval ( iT )
let t = document . documentElement . getAttribute ( "data-universal-bypass-adlinkfly-target" )
if ( t == "" )
{
crowdBypass ( ( ) => {
let cT = setInterval ( ( ) => {
let a = document . querySelector ( "a.get-link" )
if ( ! a )
{
a = document . querySelector ( ".skip-ad a[href]" )
}
if ( a )
{
h = a . href
if ( ! isGoodLink ( h ) && a . hasAttribute ( "data-href" ) ) //cuio.io
{
h = a . getAttribute ( "data-href" )
}
if ( isGoodLink ( h ) )
{
debugger
clearInterval ( cT )
a . parentNode . removeChild ( a )
contributeAndNavigate ( h )
}
}
} , 50 )
} )
}
else
{
contributeAndNavigate ( t )
}
}
} , 50 )
domainBypass ( "oke.io" , ( ) => window . setInterval = f => sI ( f , 1 ) )
clearInterval ( dT )
finish ( )
}
2018-10-08 16:26:22 +02:00
} , 100 )
2019-01-01 18:43:20 +01:00
setTimeout ( ( ) => {
clearInterval ( dT )
finish ( )
} , 3000 )
2019-01-11 19:28:26 +01:00
} ) `
2019-01-13 21:07:15 +01:00
let dO = new MutationObserver ( mutations => {
2019-01-11 19:28:26 +01:00
if ( document . documentElement . hasAttribute ( "data-universal-bypass-adlinkfly-info" ) )
{
document . documentElement . removeAttribute ( "data-universal-bypass-adlinkfly-info" )
let xhr = new XMLHttpRequest ( ) , t = "" , iu = location . href
xhr . onreadystatechange = ( ) => {
if ( xhr . readyState == 4 )
2018-10-07 21:33:44 +02:00
{
2019-01-11 19:28:26 +01:00
if ( xhr . status == 200 )
2018-10-07 21:33:44 +02:00
{
2019-01-11 19:28:26 +01:00
let i = new DOMParser ( ) . parseFromString ( xhr . responseText , "text/html" ) . querySelector ( "img[src^='//api.miniature.io']" )
if ( i )
{
let url = new URL ( i . src )
if ( url . search && url . search . indexOf ( "url=" ) )
t = decodeURIComponent ( url . search . split ( "url=" ) [ 1 ] . split ( "&" ) [ 0 ] )
}
2018-10-07 21:33:44 +02:00
}
2019-01-11 19:28:26 +01:00
document . documentElement . setAttribute ( "data-universal-bypass-adlinkfly-target" , t )
2018-10-07 21:33:44 +02:00
}
}
2019-01-11 19:28:26 +01:00
if ( iu . substr ( iu . length - 1 ) != "/" )
iu += "/"
xhr . open ( "GET" , iu + "info" , true )
xhr . send ( )
2018-10-15 06:55:21 +02:00
}
2019-01-13 21:07:15 +01:00
else if ( document . documentElement . hasAttribute ( "data-universal-bypass-stop-watching" ) )
2018-10-15 06:55:21 +02:00
{
2019-01-11 19:28:26 +01:00
document . documentElement . removeAttribute ( "data-universal-bypass-stop-watching" )
2019-01-13 21:07:15 +01:00
dO . disconnect ( )
2018-03-26 10:37:43 +02:00
}
2019-01-13 21:07:15 +01:00
} ) ;
dO . observe ( document . documentElement , { attributes : true } )
2019-01-11 19:28:26 +01:00
script . innerHTML += "\n" + response . userscript + "\n})()"
document . documentElement . setAttribute ( "data-universal-bypass-crowd-enabled" , "" )
script = document . documentElement . appendChild ( script )
setTimeout ( ( ) => document . documentElement . removeChild ( script ) , 10 )
2018-05-28 18:27:15 +02:00
} )
2018-03-24 19:30:18 +01:00
}