2019-01-15 02:42:23 +01:00
//If you want to insert your own bypass, please search for "Insertion point"
2018-07-02 12:57:42 +02:00
if ( document instanceof HTMLDocument )
2018-03-24 19:30:18 +01:00
{
2019-09-21 07:05:21 +02:00
const brws = ( typeof browser == "undefined" ? chrome : browser )
2019-04-02 12:13:14 +02:00
brws . runtime . sendMessage ( { type : "can-run" } , res => {
2019-01-21 09:40:12 +01:00
if ( ! res . enabled )
2019-01-11 19:28:26 +01:00
{
2019-01-21 09:40:12 +01:00
return
2019-01-11 19:28:26 +01:00
}
2019-08-25 03:52:00 +02:00
let script = document . createElement ( "script" ) ,
gen _chan = ( ) => "data-" + Math . random ( ) . toString ( ) . substr ( 2 ) ,
message _channel = {
stop _watching : gen _chan ( ) ,
crowd _path : gen _chan ( ) ,
crowd _query : gen _chan ( ) ,
crowd _queried : gen _chan ( ) ,
crowd _contribute : gen _chan ( ) ,
adlinkfly _info : gen _chan ( ) ,
adlinkfly _target : gen _chan ( )
}
2019-02-01 04:39:53 +01:00
script . innerHTML = ` (()=>{
2019-05-08 13:40:46 +02:00
const crowdEnabled = ` +(res.crowdEnabled?"true":"false")+ ` ,
ODP = ( t , p , o ) => { try { Object . defineProperty ( t , p , o ) } catch ( e ) { console . trace ( "[Universal Bypass] Couldn't define" , p ) } } ,
2019-09-15 00:44:07 +02:00
//Copying important functions to aovid interference from other extensions or the page
2019-10-02 18:23:11 +02:00
setTimeout = window . setTimeout , setInterval = window . setInterval ,
2019-05-18 23:04:42 +02:00
transparentProperty = ( name , valFunc ) => {
2019-05-08 13:40:46 +02:00
let real
ODP ( window , name , {
set : _ => real = _ ,
2019-05-18 23:04:42 +02:00
get : ( ) => valFunc ( real )
2019-05-08 13:40:46 +02:00
} )
2019-09-14 10:39:39 +02:00
} ,
2019-05-08 13:40:46 +02:00
isGoodLink = link => {
if ( ! link || link . split ( "#" ) [ 0 ] == location . href . split ( "#" ) [ 0 ] || link . substr ( 0 , 6 ) == "about:" || link . substr ( 0 , 11 ) == "javascript:" )
{
return false
}
try
{
new URL ( link )
}
catch ( e )
{
return false
}
return true
} ,
unsafelyNavigate = target => {
if ( navigated )
{
return
}
navigated = true
2019-06-01 05:32:33 +02:00
window . onbeforeunload = null
2019-10-07 05:06:00 +02:00
location . assign ( "https://universal-bypass.org/bypassed?target=" + encodeURIComponent ( target ) + "&referer=" + encodeURIComponent ( location . href ) )
2019-05-08 13:40:46 +02:00
//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 => {
if ( navigated || ! isGoodLink ( target ) )
{
return false
}
bypassed = true
2019-09-30 15:06:42 +02:00
let url = new URL ( target )
2019-05-08 13:40:46 +02:00
if ( ! url || ! url . hash )
{
target += location . hash
}
unsafelyNavigate ( target )
return true
} ,
finish = ( ) => {
bypassed = true
2019-08-25 03:52:00 +02:00
document . documentElement . setAttribute ( "`+message_channel.stop_watching+`" , "" )
2019-05-08 13:40:46 +02:00
} ,
domainBypass = ( domain , f ) => {
2019-07-19 16:05:24 +02:00
if ( bypassed )
2019-01-11 19:28:26 +01:00
{
2019-07-19 16:05:24 +02:00
return
}
if ( typeof domain == "string" )
{
if ( location . hostname == domain || location . hostname . substr ( location . hostname . length - ( domain . length + 1 ) ) == "." + domain )
{
f ( )
}
}
else if ( "test" in domain )
{
if ( domain . test ( location . hostname ) )
{
f ( )
}
}
else
{
console . error ( "[Universal Bypass] Invalid domain:" , domain )
2019-01-11 19:28:26 +01:00
}
2019-05-08 13:40:46 +02:00
} ,
hrefBypass = ( regex , f ) => {
2019-09-13 07:57:26 +02:00
if ( bypassed )
2019-01-11 19:28:26 +01:00
{
2019-09-13 07:57:26 +02:00
return
}
let res = regex . exec ( location . href )
if ( res )
{
f ( res )
2018-10-07 21:33:44 +02:00
}
2019-05-08 13:40:46 +02:00
} ,
ensureDomLoaded = f => {
if ( [ "interactive" , "complete" ] . indexOf ( document . readyState ) > - 1 )
2019-01-11 23:23:44 +01:00
{
2019-05-08 13:40:46 +02:00
f ( )
2019-01-11 23:23:44 +01:00
}
else
2018-10-15 06:55:21 +02:00
{
2019-06-01 05:32:33 +02:00
let triggered = false
document . addEventListener ( "DOMContentLoaded" , ( ) => {
if ( ! triggered )
{
triggered = true
setTimeout ( f , 1 )
}
} )
2018-10-15 06:55:21 +02:00
}
2019-05-08 13:40:46 +02:00
} ,
2019-07-14 04:00:22 +02:00
ifElement = ( q , f , ef ) => ensureDomLoaded ( ( ) => {
let e = document . querySelector ( q )
if ( e )
{
f ( e )
}
else if ( ef )
{
ef ( )
}
} ) ,
2019-06-26 17:31:07 +02:00
awaitElement = ( q , f ) => ensureDomLoaded ( ( ) => {
let t = setInterval ( ( ) => {
let e = document . querySelector ( q )
if ( e )
{
f ( e )
clearInterval ( t )
}
} , 10 )
setInterval ( ( ) => clearInterval ( t ) , 30000 )
} ) ,
2019-05-30 03:24:31 +02:00
crowdPath = p => {
2019-10-25 19:44:39 +02:00
if ( crowdEnabled && p )
2019-05-30 03:24:31 +02:00
{
2019-08-25 03:52:00 +02:00
document . documentElement . setAttribute ( "`+message_channel.crowd_path+`" , p )
2019-05-30 03:24:31 +02:00
}
} ,
2019-05-08 13:40:46 +02:00
crowdBypass = f => {
2019-06-01 05:13:19 +02:00
if ( ! f )
{
f = ( ) => { }
}
2019-05-08 13:40:46 +02:00
if ( crowdEnabled )
2018-12-30 12:25:26 +01:00
{
2019-07-28 20:06:55 +02:00
if ( ignoreCrowdBypass )
2018-12-30 12:25:26 +01:00
{
2019-05-08 13:40:46 +02:00
f ( )
2018-12-30 12:25:26 +01:00
}
else
{
2019-08-25 03:52:00 +02:00
document . documentElement . setAttribute ( "`+message_channel.crowd_query+`" , "" )
2019-05-08 13:40:46 +02:00
let iT = setInterval ( ( ) => {
2019-08-25 03:52:00 +02:00
if ( document . documentElement . hasAttribute ( "`+message_channel.crowd_queried+`" ) )
2019-05-08 13:40:46 +02:00
{
2019-06-01 05:13:19 +02:00
clearInterval ( iT )
2019-08-25 03:52:00 +02:00
document . documentElement . removeAttribute ( "`+message_channel.crowd_queried+`" )
2019-10-13 07:20:33 +02:00
insertInfoBox ( "`+brws.i18n.getMessage(" crowdWait ")+`" )
2019-05-08 13:40:46 +02:00
f ( )
}
} , 20 )
2018-12-30 12:25:26 +01:00
}
}
2019-10-13 07:20:33 +02:00
else
{
insertInfoBox ( "`+brws.i18n.getMessage(" crowdDisabled ")+`" )
}
2019-05-08 13:40:46 +02:00
} ,
contributeAndNavigate = target => {
if ( ! navigated && isGoodLink ( target ) )
2018-06-15 21:35:23 +02:00
{
2019-05-08 13:40:46 +02:00
if ( crowdEnabled )
{
2019-08-25 03:52:00 +02:00
document . documentElement . setAttribute ( "`+message_channel.crowd_contribute+`" , target )
2019-05-08 13:40:46 +02:00
setTimeout ( ( ) => {
unsafelyNavigate ( target )
} , 10 )
}
else
{
unsafelyNavigate ( target )
}
}
2019-10-13 07:20:33 +02:00
} ,
2019-10-14 06:36:13 +02:00
insertInfoBox = text => ensureDomLoaded ( ( ) => {
2019-10-13 07:20:33 +02:00
if ( ` +(res.infoBoxEnabled?"true":"false")+ ` && window . innerWidth > 800 & window . innerHeight > 400 )
{
const div = document . createElement ( "div" )
2019-10-13 08:51:55 +02:00
div . style = 'z-index:999999;border-radius:10px;padding:28px;position:fixed;right:30px;bottom:30px;background:#eee;color:#111;font-size:21px;box-shadow:#111 0px 5px 40px;max-width:500px;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol'
2019-10-14 06:40:57 +02:00
div . innerHTML = '<img src="`+brws.runtime.getURL("icon/48.png")+`" style="width:24px;height:24px;margin-right:8px"><span style="display:inline"></span>'
2019-10-13 07:20:33 +02:00
div . setAttribute ( "tabindex" , "-1" )
div . setAttribute ( "aria-hidden" , "true" )
const span = div . querySelector ( "span" )
span . textContent = text
div . onmouseover = ( ) => {
2019-10-21 19:32:50 +02:00
if ( div . style . height == "" )
{
div . style . height = div . clientHeight + "px"
}
2019-10-13 07:20:33 +02:00
span . textContent = "`+brws.i18n.getMessage(" infoBoxHide ")+`"
}
div . onmouseout = ( ) => span . textContent = text
div . onclick = ( ) => document . body . removeChild ( div )
document . body . appendChild ( div )
}
2019-10-14 06:36:13 +02:00
} )
2019-09-14 10:39:39 +02:00
let navigated = false ,
2019-05-08 13:40:46 +02:00
bypassed = false ,
2019-07-28 20:06:55 +02:00
ignoreCrowdBypass = false ,
2019-05-08 13:40:46 +02:00
domain = location . hostname
if ( domain . substr ( 0 , 4 ) == "www." )
{
domain = domain . substr ( 4 )
}
2019-07-28 20:06:55 +02:00
if ( location . href . substr ( location . href . length - 18 ) == "#ignoreCrowdBypass" )
{
ignoreCrowdBypass = true
history . pushState ( { } , document . querySelector ( "title" ) . textContent , location . href . substr ( 0 , location . href . length - 18 ) )
2019-09-16 00:18:03 +02:00
if ( domain != "bc.vc" )
{
ensureDomLoaded ( ( ) => {
document . querySelectorAll ( "form[action]" ) . forEach ( e => e . action += "#ignoreCrowdBypass" )
document . querySelectorAll ( "a[href]" ) . forEach ( e => e . href += "#ignoreCrowdBypass" )
} )
}
2019-07-28 20:06:55 +02:00
}
2019-05-08 13:40:46 +02:00
ODP ( window , "blurred" , {
value : false ,
writable : false
} )
//adf.ly
2019-09-14 10:39:39 +02:00
ODP ( window , "ysmm" , {
2019-05-08 13:40:46 +02:00
set : r => {
let a , m , I = "" , X = ""
for ( m = 0 ; m < r . length ; m ++ )
2018-07-08 17:18:00 +02:00
{
2019-05-08 13:40:46 +02:00
if ( m % 2 == 0 )
2018-07-08 17:18:00 +02:00
{
2019-05-08 13:40:46 +02:00
I += r . charAt ( m )
}
else
{
X = r . charAt ( m ) + X
}
}
r = I + X
a = r . split ( "" )
for ( m = 0 ; m < a . length ; m ++ )
{
if ( ! isNaN ( a [ m ] ) )
{
for ( var R = m + 1 ; R < a . length ; R ++ )
2018-07-08 17:18:00 +02:00
{
2019-05-08 13:40:46 +02:00
if ( ! isNaN ( a [ R ] ) )
2018-12-30 12:25:26 +01:00
{
2019-05-08 13:40:46 +02:00
let S = a [ m ] ^ a [ R ]
if ( S < 10 )
{
a [ m ] = S
}
m = R
R = a . length
2018-12-30 12:25:26 +01:00
}
2018-07-08 17:18:00 +02:00
}
}
}
2019-05-08 13:40:46 +02:00
r = a . join ( '' )
r = atob ( r )
r = r . substring ( r . length - ( r . length - 16 ) )
r = r . substring ( 0 , r . length - 16 )
safelyNavigate ( r )
2018-06-15 21:35:23 +02:00
}
2018-05-28 01:40:02 +02:00
} )
2019-05-08 13:40:46 +02:00
//LinkBucks
var actualInitLbjs
ODP ( window , "initLbjs" , {
set : ( _ ) => actualInitLbjs = _ ,
get : ( ) => ( a , p ) => {
p . Countdown --
actualInitLbjs ( a , p )
}
2018-05-28 01:40:02 +02:00
} )
2019-05-08 13:40:46 +02:00
//Safelink
let actual _safelink = forced _safelink = { counter : 0 , adblock : false }
ODP ( window , "safelink" ,
2018-03-26 10:37:43 +02:00
{
2019-05-08 13:40:46 +02:00
set : _ => {
ODP ( window , "blurred" , {
value : false ,
writable : false
} )
for ( let k in _ )
2018-05-28 01:40:02 +02:00
{
2019-05-08 13:40:46 +02:00
if ( forced _safelink [ k ] === undefined )
{
actual _safelink [ k ] = _ [ k ]
}
2018-05-28 01:40:02 +02:00
}
2019-05-08 13:40:46 +02:00
} ,
2019-08-09 10:40:19 +02:00
get : ( ) => {
awaitElement ( ".bagi .link > .result > a[href]" , a => safelyNavigate ( a . href ) )
return actual _safelink
}
2018-05-28 01:40:02 +02:00
} )
2019-05-08 13:40:46 +02:00
for ( let key in forced _safelink )
2018-05-30 19:44:25 +02:00
{
2019-05-08 13:40:46 +02:00
ODP ( safelink , key ,
2018-06-15 21:35:23 +02:00
{
2019-05-08 13:40:46 +02:00
writable : false ,
value : forced _safelink [ key ]
} )
}
//Shorte.st
2019-09-19 09:45:07 +02:00
transparentProperty ( "reqwest" , r => ( typeof app != "undefined" && document . querySelector ( ".skip-add-container .first-img[alt='Shorte.st']" ) ) ? a => {
2019-05-08 13:40:46 +02:00
if ( a . type === "jsonp" )
2018-05-29 19:11:25 +02:00
{
2019-05-08 13:40:46 +02:00
a . success = s => contributeAndNavigate ( s . destinationUrl )
2018-05-29 19:11:25 +02:00
}
2019-05-08 13:40:46 +02:00
r ( a )
2019-05-18 23:04:42 +02:00
} : r )
2019-07-19 16:05:24 +02:00
domainBypass ( /ur\\.ly|urly\\.mobi/ , ( ) => {
2019-05-08 13:40:46 +02:00
if ( location . pathname . length > 2 && location . pathname . substr ( 0 , 6 ) != "/goii/" )
safelyNavigate ( "/goii/" + location . pathname . substr ( 2 ) + "?ref=" + location . hostname + location . pathname )
2018-06-01 18:45:23 +02:00
} )
2019-05-08 13:40:46 +02: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-06-06 05:55:27 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "onepiece-ex.com.br" , ( ) => {
ODP ( window , "seconds" , {
value : 1 ,
writable : false
} )
2019-06-26 17:31:07 +02:00
awaitElement ( "#continuar[href]" , a => safelyNavigate ( a . href ) )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "akoam.net" , ( ) => {
ODP ( window , "timer" , {
value : 0 ,
writable : false
} )
2019-06-26 17:31:07 +02:00
awaitElement ( ".download_button[href]" , a => safelyNavigate ( a . href ) )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
hrefBypass ( / 1 v \ \ . t o \ \ / t \ \ / . * / , ( ) = > {
location . pathname = location . pathname . split ( "/t/" ) . join ( "/saliendo/" )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "share-online.biz" , ( ) => {
ODP ( window , "wait" , {
set : s => 0 ,
get : ( ) => {
return 2
}
} )
2019-04-30 00:12:26 +02:00
} )
2019-08-24 19:38:36 +02:00
hrefBypass ( / s o u r c e f o r g e \ \ . n e t \ \ / p r o j e c t s \ \ / . + \ \ / f i l e s \ \ / . + \ \ / d o w n l o a d / , ( ) = > {
2019-05-08 13:40:46 +02:00
var b = document . createElement ( "button" ) , d = false
b . className = "direct-download"
b . style . display = "none"
document . documentElement . appendChild ( b )
ODP ( window , "log" , {
value : m => {
console . log ( m )
if ( m == "triggering downloader:start" )
d = true
} ,
writable : false
} )
ensureDomLoaded ( ( ) => {
let bT = setInterval ( ( ) => {
if ( d )
{
clearInterval ( bT )
}
else
{
b . click ( )
}
} , 100 )
} )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "bc.vc" , ( ) => {
crowdBypass ( ( ) => {
2019-10-14 06:37:40 +02:00
const _eval = window . eval
2019-05-08 13:40:46 +02:00
window . eval = c => {
2019-10-14 06:37:40 +02:00
let j = _eval ( c )
2019-05-08 13:40:46 +02:00
if ( j . message && j . message . url )
{
contributeAndNavigate ( j . message . url )
return { }
}
return j
}
} )
2019-06-26 17:31:07 +02:00
awaitElement ( ".skip_btt > #skip_btt" , a => a . click ( ) )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "shortly.xyz" , ( ) => {
if ( location . pathname . substr ( 0 , 3 ) == "/r/" )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
document . getElementById = ( ) => ( { submit : ( ) => {
let f = document . querySelector ( "form" )
f . action = "/link#" + document . querySelector ( "input[name='id']" ) . value
f . submit ( )
} } )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
else if ( location . pathname == "/link" )
2018-10-07 21:33:44 +02:00
{
2019-05-08 13:40:46 +02:00
let xhr = new XMLHttpRequest ( )
xhr . onload = ( ) => safelyNavigate ( xhr . responseText )
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 ( "#" , "" ) )
2018-10-07 21:33:44 +02:00
}
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "uploaded.net" , ( ) => {
let i = 0
window . setTimeout = f => {
if ( ++ i == 62 )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
window . setTimeout = setTimeout
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
return setTimeout ( f , 100 )
2019-04-30 00:12:26 +02:00
}
} )
2019-07-19 16:05:24 +02:00
domainBypass ( /mylinks\\.xyz|mylink\\.zone/ , ( ) => {
2019-06-26 14:30:34 +02:00
window . setTimeout = f => setTimeout ( f , 1 )
2019-06-26 17:31:07 +02:00
awaitElement ( "#compteur a[href]" , a => safelyNavigate ( new URL ( a . href ) . searchParams . get ( "url" ) ) )
2019-06-26 14:30:34 +02:00
} )
2019-07-28 09:09:09 +02:00
domainBypass ( /shortmoz\\.link|skinnycat\\.org|safelink\\.polrec\\.site/ , ( ) => {
2019-07-03 23:17:52 +02:00
window . setInterval = f => setInterval ( f , 1 )
awaitElement ( "a.btn.redirect[href^='http']" , a => safelyNavigate ( a . href ) )
} )
2019-07-16 16:26:26 +02:00
domainBypass ( "gamesmega.net" , ( ) => {
ODP ( window , "hash" , {
get : ( ) => "" ,
set : _ => safelyNavigate ( decodeURIComponent ( atob ( _ ) ) )
} )
} )
2019-08-22 21:33:02 +02:00
domainBypass ( "hokiciki.org" , ( ) => {
ifElement ( "a[href^='/get-link/']" , a => location . href = a . href )
} )
2019-09-08 20:37:27 +02:00
domainBypass ( /wadooo\\.com|gotravelgo\\.space|pantauterus\\.me|liputannubi\\.net/ , ( ) => {
2019-09-04 11:11:10 +02:00
crowdPath ( location . hash . substr ( 1 ) )
crowdBypass ( )
} )
2019-09-08 20:26:35 +02:00
domainBypass ( "link.tl" , ( ) => {
if ( location . host == "lt10.link.tl" )
{
ensureDomLoaded ( ( ) => {
if ( typeof goToUrl == "function" )
{
goToUrl ( )
}
} )
}
else
{
location . host = "lt10.link.tl"
}
} )
2019-10-07 05:02:22 +02:00
hrefBypass ( / u i z \ \ . i o \ \ / g o / , ( ) = > {
Object . freeze ( location )
const regex = /.*window\\.location\\.href = "(http[^"]+)";.*/
document . querySelectorAll ( "script" ) . forEach ( script => {
let matches = regex . exec ( script . textContent )
console . log ( matches )
if ( matches && matches [ 1 ] )
{
crowdPath ( location . hash . substr ( 1 ) )
contributeAndNavigate ( matches [ 1 ] )
}
} )
} )
2019-10-12 12:25:48 +02:00
hrefBypass ( / p r o x 7 7 \ \ . c o m \ \ / a n a l y z e \ \ / ( . + ) / , m = > {
location . pathname = "/result/" + m [ 1 ]
} )
2019-05-08 13:40:46 +02:00
//Insertion point 1 — insert bypasses running before the DOM is loaded above this comment
2019-09-19 09:00:59 +02:00
hrefBypass ( / n j i i r \ \ . c o m | l i n k d u i t \ \ . n e t | k 2 s \ \ . c c | m u h a m m a d y o g a \ \ . m e | u \ \ . t o | s k i p l i n k \ \ . i o | h e a l t h y k k \ \ . c o m | p u n c h s u b s \ \ . n e t | l i n k a s m \ \ . c o m | f i r e f a u c e t \ \ . w i n \ \ / l \ \ / | e m u l a t o r \ \ . g a m e s \ \ / d o w n l o a d \ \ . p h p | 2 s p e e d \ \ . n e t \ \ / f i l e \ \ / / , ( ) = > {
2019-05-08 13:40:46 +02:00
window . setInterval = f => setInterval ( f , 1 )
} )
2019-10-11 18:28:01 +07:00
domainBypass ( /indishare\\.org|longfiles\\.com|datei\\.to|id-share19\\.com/ , ( ) => {
2019-05-08 13:40:46 +02:00
window . setTimeout = f => setTimeout ( f , 1 )
} )
if ( bypassed )
{
return
}
ensureDomLoaded ( ( ) => {
domainBypass ( "adfoc.us" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( ".skip[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "sub2unlock.com" , ( ) => {
if ( location . pathname . substr ( 0 , 10 ) == "/link/get/" )
{
safelyNavigate ( document . getElementById ( "link" ) . href )
}
2019-09-04 11:11:10 +02:00
else
{
ifElement ( "#getLinkNow" , f => f . submit ( ) )
}
2019-05-08 13:40:46 +02: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 ( )
}
} )
domainBypass ( "admy.link" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( ".edit_link" , f => f . submit ( ) )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "ysear.ch" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "#NextVideo[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
} )
2019-07-19 16:05:24 +02:00
domainBypass ( /1ink\\.(cc|live)/ , ( ) => {
2019-05-08 13:40:46 +02:00
if ( typeof SkipAd == "function" )
{
SkipAd ( )
}
} )
domainBypass ( "losstor.com" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "#re_link" , b => {
2019-04-30 00:12:26 +02:00
window . open = safelyNavigate
2019-05-08 13:40:46 +02:00
b . click ( )
2019-07-14 04:00:22 +02:00
} )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "dwindly.io" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "#btd1" , b => {
2019-04-30 00:12:26 +02:00
window . open = ( ) => { }
2019-05-08 13:40:46 +02:00
b . click ( )
2019-07-14 04:00:22 +02:00
} , ( ) => ifElement ( "#btd" , b => {
window . open = safelyNavigate
eval ( "(" + b . onclick . toString ( ) . split ( ";" ) [ 0 ] + "})()" )
} ) )
2019-05-08 13:40:46 +02: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 )
{
clearInterval ( bT )
window . open = ( ) => { }
es . forEach ( e => e . dispatchEvent ( new MouseEvent ( "click" ) ) )
let dT = setInterval ( ( ) => {
if ( ! b . hasAttribute ( "disabled" ) )
{
clearInterval ( dT )
b . dispatchEvent ( new MouseEvent ( "click" ) )
}
} , 100 )
}
} , 300 )
2019-06-26 17:31:07 +02:00
setInterval ( ( ) => clearInterval ( bT ) , 30000 )
2019-05-08 13:40:46 +02:00
} )
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"
} )
domainBypass ( "gotoo.loncat.in" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "a[href^='http://gotoo.loncat.in/go.php?open=']" , a => safelyNavigate ( a . href ) )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "idnation.net" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "#linko[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "mazika2day.com" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( ".linkbtn[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
} )
2019-07-31 21:32:42 +02:00
domainBypass ( /ux9\\.de|pucuktranslation\\.pw/ , ( ) => {
ifElement ( "meta[http-equiv='refresh'][content]" , m => {
2019-08-25 04:04:43 +02:00
let c = m . content . replace ( "; url=" , ";url=" )
if ( c . indexOf ( ";url=" ) > - 1 )
2019-07-31 21:32:42 +02:00
{
2019-08-25 04:04:43 +02:00
safelyNavigate ( c . split ( ";url=" ) [ 1 ] )
2019-07-31 21:32:42 +02:00
}
2019-08-25 04:04:43 +02:00
} )
} )
domainBypass ( "softpedia.com" , ( ) => {
ifElement ( "meta[http-equiv='refresh'][content]" , m => {
let c = m . content . replace ( "; url=" , ";url=" )
if ( c . indexOf ( ";url=" ) > - 1 )
2019-07-31 21:32:42 +02:00
{
2019-08-25 04:04:43 +02:00
location . href = c . split ( ";url=" ) [ 1 ]
2019-07-31 21:32:42 +02:00
}
} )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "telolet.in" , ( ) => {
let b = document . querySelector ( "a#skip[href]" )
if ( ! b )
2019-07-14 04:00:22 +02:00
{
2019-05-08 13:40:46 +02:00
b = document . querySelector ( ".redirect_url > a[href]" )
2019-07-14 04:00:22 +02:00
}
2019-05-08 13:40:46 +02:00
if ( b )
2019-07-14 04:00:22 +02:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( b . href )
2019-07-14 04:00:22 +02:00
}
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "vipdirect.cc" , ( ) => {
if ( typeof ab == "number" && typeof asdf == "function" )
{
ab = 5
window . open = safelyNavigate
asdf ( )
}
} )
domainBypass ( "rapidcrypt.net" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( ".push_button.blue[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
} )
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 ( )
}
} )
2019-06-26 17:31:07 +02:00
domainBypass ( "rom.io" , ( ) => crowdBypass ( ( ) => awaitElement ( "a.final-button[href]" , a => {
if ( isGoodLink ( a . href ) )
{
a . parentNode . removeChild ( a )
contributeAndNavigate ( a . href )
}
} ) ) )
2019-05-08 13:40:46 +02:00
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 )
{
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 )
} )
}
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 )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
let p = document . createElement ( "p" ) , a = document . createElement ( "a" )
a . textContent = a . href = d . unlockable . redirect . url
p . appendChild ( a )
document . body . appendChild ( p )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
stop ( )
}
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "vcrypt.net" , ( ) => {
if ( document . querySelector ( ".btncontinue" ) )
{
document . querySelector ( "form" ) . submit ( )
}
} )
2019-09-19 09:00:59 +02:00
domainBypass ( "1link.club" , ( ) => {
window . setInterval = f => setInterval ( f , 1 )
2019-05-08 13:40:46 +02:00
let b = document . getElementById ( "go_next" )
if ( b && isGoodLink ( b . href ) )
{
location . href = b . href
}
2019-09-04 11:11:10 +02:00
else
{
ifElement ( "#download" , b => safelyNavigate ( b . href ) )
}
2019-05-08 13:40:46 +02:00
} )
2019-09-24 22:08:32 +01:00
hrefBypass ( /4snip\\.pw\\/ ( out | decode ) \ \ //,()=>{
2019-05-08 13:40:46 +02:00
let f = document . querySelector ( "form[action^='../out2/']" )
f . setAttribute ( "action" , f . getAttribute ( "action" ) . replace ( "../out2/" , "../outlink/" ) )
f . submit ( )
} )
2019-07-19 16:06:09 +02:00
domainBypass ( /douploads\\.(com|net)/ , ( ) => {
ifElement ( ".seconds" , s => {
2019-06-06 07:18:18 +02:00
s . textContent = "1"
document . getElementById ( "chkIsAdd" ) . checked = false
document . getElementById ( "downloadBtnClick" ) . style . display = "none"
document . getElementById ( "downloadbtn" ) . style . display = "block"
2019-07-19 16:06:09 +02:00
} )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "elsfile.org" , ( ) => {
2019-09-13 07:57:26 +02:00
let f = document . createElement ( "form" )
f . method = "POST"
f . innerHTML = '<input type="hidden" name="op" value="download1"><input type="hidden" name="usr_login" value="C"><input type="hidden" name="id" value="' + location . pathname . 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">'
f = document . documentElement . appendChild ( f )
f . submit ( )
2019-05-08 13:40:46 +02:00
return finish ( )
} )
domainBypass ( "goou.in" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "div#download_link > a#download[href]" , a => a . href )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "ryn.cc" , ( ) => {
if ( typeof countdown == "function" )
{
document . write ( '<div id="link"><p id="timer">0</p></div>' )
countdown ( )
safelyNavigate ( document . querySelector ( "#link > a" ) . href )
}
} )
domainBypass ( "connect-trojan.net" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "#post_download > a[onclick]" , a => {
2019-05-08 13:40:46 +02:00
redireciona = safelyNavigate
a . onclick ( )
2019-07-14 04:00:22 +02:00
} )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "shirosafe.web.id" , ( ) => {
safelyNavigate ( document . querySelector ( "#generate > center > a[style]" ) . href )
} )
domainBypass ( "binbox.io" , ( ) => {
let xhr = new XMLHttpRequest ( )
xhr . onload = ( ) => {
let json = JSON . parse ( xhr . responseText )
2019-09-25 08:01:52 +02:00
if ( json && json . paste )
2019-05-08 13:40:46 +02:00
{
safelyNavigate ( json . paste . url )
}
}
xhr . open ( "GET" , location . pathname + ".json" )
document . cookie = "referrer=1"
xhr . send ( )
} )
2019-10-22 21:53:58 +02:00
domainBypass ( /ouo\\.(io|press)|lnk2\\.cc/ , ( ) => {
2019-05-08 13:40:46 +02:00
if ( location . pathname . substr ( 0 , 4 ) == "/go/" )
{
document . querySelector ( "form" ) . submit ( )
}
else
2019-04-30 00:12:26 +02:00
{
2019-06-01 05:13:19 +02:00
crowdBypass ( )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "drivehub.link" , ( ) => {
2019-07-14 04:00:22 +02:00
ifElement ( "a#proceed[href]" , a => safelyNavigate ( a . href ) )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "oxy.cloud" , ( ) => {
2019-08-24 19:43:13 +02:00
let params = new URL ( document . querySelector ( "#divdownload > a[href]" ) . href ) . searchParams
if ( params . has ( "predirect" ) )
{
location . href = params . get ( "predirect" )
}
else if ( params . has ( "bpredirect" ) )
{
location . href = atob ( params . get ( "bpredirect" ) )
}
2019-05-08 13:40:46 +02:00
} )
2019-05-13 22:14:18 +02:00
domainBypass ( "daunshorte.teknologilink.com" , ( ) => {
location . href = document . querySelector ( "a[href^='https://teknosafe.teknologilink.com/linkteknolink/safelinkscript.php?']" ) . href
} )
2019-05-13 22:19:44 +02:00
domainBypass ( "imgtaxi.com" , ( ) => {
document . querySelector ( "a.overlay_ad_link" ) . click ( )
} )
2019-05-21 04:45:54 +02:00
domainBypass ( "do2unlock.com" , ( ) => {
let a = document . querySelector ( "a#locked_action_link[href^='/getlink/']" )
if ( a )
{
location . href = "/redirect/" + a . getAttribute ( "href" ) . substr ( 9 )
return
}
a = document . querySelector ( "a#redirecting_counter[href]" )
if ( a )
{
safelyNavigate ( a . href )
}
} )
2019-05-21 16:24:47 +02:00
domainBypass ( "sub2unlock.net" , ( ) => {
safelyNavigate ( document . getElementById ( "theLinkID" ) . textContent )
} )
2019-06-11 00:16:53 +02:00
domainBypass ( "haaretz.co.il" , ( ) => {
if ( location . href . indexOf ( ".premium" ) > - 1 )
{
location . href = location . href . replace ( ".premium" , "" )
}
} )
2019-06-14 14:46:34 +02:00
domainBypass ( "boostme.gg" , ( ) => {
safelyNavigate ( document . querySelector ( "a[href]#go" ) . href )
} )
2019-06-17 18:39:44 +02:00
domainBypass ( "driverays.com" , ( ) => {
safelyNavigate ( document . querySelector ( "a#link[href]" ) . href )
} )
2019-06-17 19:02:24 +02:00
domainBypass ( "wikitrik.com" , ( ) => {
document . querySelector ( "#download > form[action='/getlink.php'] > input[type='submit'].button" ) . click ( )
} )
2019-07-13 02:32:28 +02:00
domainBypass ( "dawnstation.com" , ( ) => {
safelyNavigate ( document . querySelector ( "#tidakakanselamanya.hiddenPlace > a" ) . href )
} )
2019-07-28 20:13:27 +02:00
domainBypass ( "hokiwikiped.net" , ( ) => {
ifElement ( "a#DrRO[href]" , a => safelyNavigate ( a . href ) )
} )
2019-08-14 11:28:07 +02:00
hrefBypass ( / s p a s t e \ \ . c o m \ \ / s \ \ / / , ( ) = > {
let doTheThing = ( ) => {
let item = document . getElementById ( "currentCapQue" ) . textContent ,
as = document . querySelectorAll ( ".markAnswer" )
for ( let i = 0 ; i < as . length ; i ++ )
{
if ( as [ i ] . querySelector ( "img" ) . getAttribute ( "src" ) . toLowerCase ( ) . indexOf ( item ) > - 1 )
{
as [ i ] . click ( ) ;
break ;
}
}
}
document . getElementById ( "captchaVerifiedStatus" ) . click ( )
setTimeout ( ( ) => {
doTheThing ( )
setTimeout ( ( ) => {
doTheThing ( )
setTimeout ( ( ) => {
doTheThing ( )
} , 200 )
} , 200 )
} , 200 )
} )
2019-08-29 05:04:23 +02:00
domainBypass ( /get-click2\\.blogspot\\.com|kisechan\\.web\\.id|arubedo\\.blogspot\\.com|permadihermawan\\.site/ , ( ) => {
2019-08-19 17:40:11 +02:00
let u = aesCrypto . decrypt ( convertstr ( location . href . substr ( location . href . indexOf ( "?o=" ) + 3 ) ) , convertstr ( "root" ) )
2019-08-14 11:49:45 +02:00
if ( isGoodLink ( u ) )
{
location . hash = ""
safelyNavigate ( u )
}
} )
2019-08-14 12:00:44 +02:00
domainBypass ( "hello.tribuntekno.com" , ( ) => {
ifElement ( "#splash p[style] > u > b > a[href]" , a => safelyNavigate ( a . href ) )
} )
2019-08-18 22:05:58 +02:00
domainBypass ( "ytsubme.com" , ( ) => {
ifElement ( "a#link" , a => {
aTagChange ( )
safelyNavigate ( a . href )
} )
} )
2019-08-19 17:36:22 +02:00
domainBypass ( "shortlink.in" , ( ) => {
ifElement ( "#continueButton.interContinueButton > a[href]" , a => {
safelyNavigate ( a . href )
} , ( ) => ifElement ( "frame[src^='interstitualAdTop.php?url=']" , f => location . href = f . src ) )
} )
2019-08-21 20:42:29 +02:00
domainBypass ( "safe.doramaku.me" , ( ) => {
document . querySelector ( "form" ) . setAttribute ( "action" , "//" + location . hostname )
document . querySelector ( "input" ) . setAttribute ( "name" , "link" )
2019-08-22 01:23:52 +07:00
} )
2019-09-01 12:57:14 +02:00
domainBypass ( "confile.net" , ( ) => {
ifElement ( "#verif > form [type='submit']" , b => b . click ( ) , ( ) => {
if ( typeof downloadButton == "object" && downloadButton instanceof HTMLAnchorElement )
{
safelyNavigate ( downloadButton . href )
}
else
{
window . setInterval = f => setInterval ( f , 1 )
}
} )
} )
2019-09-01 13:43:42 +02:00
domainBypass ( /linkshrtn\\.com|(xtiny|shrten)\\.link/ , ( ) => {
window . open = u => window
window . setTimeout = f => setTimeout ( f , 1 )
window . setInterval = f => setInterval ( f , 1 )
awaitElement ( ".complete_btn:not([disabled])" , b => b . onclick ( { isTrusted : 1 } ) )
document . querySelectorAll ( ".all_steps > .step_block:not(.step_done)" ) . forEach ( e => {
e . onclick ( { isTrusted : 1 } )
$ ( window ) . on ( "blur" )
$ ( window ) . on ( "focus" )
} )
} )
2019-09-01 15:18:05 +02:00
domainBypass ( "spacetica.com" , ( ) => {
ifElement ( "a.btn-primary[href]" , a => safelyNavigate ( a . href ) )
} )
2019-09-04 20:25:28 +02:00
domainBypass ( "uiz.io" , ( ) => {
2019-10-07 05:02:22 +02:00
ifElement ( "#go-adsredirect" , f => {
f . action += "#" + location . pathname . substr ( 1 )
f . submit ( )
} )
2019-09-04 20:25:28 +02:00
} )
2019-09-10 02:30:12 +02:00
hrefBypass ( / m i r r o r e d \ \ . t o \ \ / f i l e s \ \ / / , ( ) = > {
ifElement ( "#dl_form button" , b => b . click ( ) )
} )
hrefBypass ( / m i r r o r e d \ \ . t o \ \ / d o w n l i n k \ \ / / , ( ) = > {
ifElement ( ".centered.highlight a[href]" , a => safelyNavigate ( a . href ) )
} )
2019-09-13 07:57:26 +02:00
hrefBypass ( / n e w \ \ . l e w d \ \ . n i n j a \ \ / e x t e r n a l \ \ / g a m e \ \ / ( [ 0 - 9 ] + ) \ \ / ( [ a - z 0 - 9 ] { 6 4 } ) / , m = > {
let f = document . createElement ( "form" )
f . method = "POST"
f . action = "https://xxx.lewd.ninja/game/" + m [ 1 ] + "/out/" + m [ 2 ]
f = document . body . appendChild ( f )
f . submit ( )
} )
domainBypass ( "xxx.lewd.ninja" , ( ) => {
safelyNavigate ( document . body . textContent )
} )
2019-10-25 19:44:39 +02:00
domainBypass ( /tr\\.link|movienear\\.me|lewat\\.club/ , ( ) => {
2019-10-25 15:43:05 +02:00
if ( typeof app _vars == "undefined" )
{
app _vars = { }
}
2019-09-15 13:16:25 +02:00
} )
2019-09-19 09:11:27 +02:00
domainBypass ( "lompat.in" , ( ) => {
window . open = u => {
if ( u . substr ( 0 , 28 ) == "http://henpoi.lompat.in/?go=" && u . substr ( u . length - 4 ) == "&s=1" )
{
safelyNavigate ( atob ( u . substr ( 28 , u . length - 32 ) ) )
}
}
awaitElement ( "a[onclick='changeLink()']" , changeLink )
} )
2019-09-30 12:50:51 +02:00
domainBypass ( "toneden.io" , ( ) => {
awaitElement ( ".post-gate-btn" , b => {
b . click ( )
if ( location . hash == "#done" )
{
return
}
awaitElement ( ".post-support-footer" , ( ) => {
window . open = ( ) => { }
document . querySelectorAll ( ".post-support-options > .gate-btn-box > span > a" ) . forEach ( a => {
a . href = "#"
a . target = ""
a . click ( )
} )
let dT = setInterval ( ( ) => {
if ( ! b . classList . contains ( "disabled" ) )
{
clearInterval ( dT )
location . hash = "#done"
location . reload ( )
}
} , 100 )
} )
} )
} )
2019-10-07 00:24:19 +02:00
domainBypass ( "st.flashsubs.web.id" , ( ) => {
safelyNavigate ( document . querySelector ( "a#proceed" ) . href )
} )
2019-10-09 08:26:15 +02:00
domainBypass ( "short-url.link" , ( ) => {
safelyNavigate ( document . querySelector ( "div[align=center] > strong" ) . textContent )
} )
2019-10-15 07:07:00 +02:00
domainBypass ( /uploadrar\\.(com|net)/ , ( ) => {
2019-10-11 18:28:01 +07:00
ifElement ( "#downloadbtn" , ( ) => {
let f = document . createElement ( "form" )
f . method = "POST"
f . innerHTML = '<input name="op" value="download2"><input name="id" value="' + location . pathname . substr ( 1 ) + '">'
document . body . appendChild ( f )
f . submit ( )
} )
} )
2019-10-12 12:25:48 +02:00
domainBypass ( "prox77.com" , ( ) => {
document . querySelector ( "#Sbutton" ) . click ( )
} )
2019-10-15 14:51:21 +07:00
domainBypass ( "kuliahmatematika.my.id" , ( ) => {
safelyNavigate ( atob ( document . querySelector ( "input[name='data']" ) . value ) )
} )
2019-10-16 14:50:53 +02:00
domainBypass ( "shortconnect.com" , ( ) => {
safelyNavigate ( document . querySelector ( "#loader-link" ) . href )
} )
2019-10-21 19:34:16 +02:00
domainBypass ( "elil.cc" , ( ) => {
crowdBypass ( )
awaitElement ( ".navbar-custom > .container > ul.not-nav > li:not(.d-none) > a.page-scroll[href]:not([href^='javascript:'])" , a => contributeAndNavigate ( a . href ) )
} )
2019-10-25 15:52:13 +02:00
domainBypass ( "transmediakreatif.com" , ( ) => {
ifElement ( "#download > a[href]" , a => location . href = a . href )
} )
2019-10-26 01:15:29 +07:00
domainBypass ( "go.indonesia-publisher.id" , ( ) => {
2019-10-25 21:46:58 +02:00
if ( typeof disqus _config == "function" && document . querySelector ( "form#link-view" ) )
{
2019-10-26 01:15:29 +07:00
let o = { page : { } }
disqus _config . call ( o )
safelyNavigate ( o . page . url )
2019-10-25 21:46:58 +02:00
}
2019-10-26 01:15:29 +07:00
} )
2019-10-30 09:40:48 +01:00
domainBypass ( "realsht.mobi" , ( ) => {
ifElement ( "input[type='hidden'][name='mylink'][value^='http']" , i => safelyNavigate ( i . value ) )
} )
2019-05-08 13:40:46 +02:00
//Insertion point 2 — insert bypasses running after the DOM is loaded above this comment
if ( bypassed )
2019-01-14 21:28:23 +01:00
{
2019-05-08 13:40:46 +02:00
return
2019-01-14 21:28:23 +01:00
}
2019-05-08 13:40:46 +02:00
//Adf.ly "Locked" Page
if ( location . pathname == "/ad/locked" && document . getElementById ( "countdown" ) && document . querySelector ( "a" ) . textContent == "Click here to continue" )
2019-01-14 21:28:23 +01:00
{
2019-05-08 13:40:46 +02:00
let wT = setInterval ( ( ) => {
if ( document . getElementById ( "countdown" ) . textContent == "0" )
{
clearInterval ( wT )
document . querySelector ( "a" ) . click ( )
}
} , 100 )
2019-01-14 21:28:23 +01:00
}
2019-05-08 13:40:46 +02:00
//Adf.ly Pre-Redirect Page
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." )
2019-01-14 21:28:23 +01:00
{
2019-05-08 13:40:46 +02:00
let a = document . querySelector ( "a[href]" )
if ( a )
2019-01-14 21:28:23 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( a . href )
return finish ( )
2019-01-14 21:28:23 +01:00
}
}
2019-05-08 13:40:46 +02:00
//Soralink Wordpress Plugin
if ( document . querySelector ( ".sorasubmit" ) )
2019-02-24 21:07:55 +01:00
{
2019-05-08 13:40:46 +02:00
document . querySelector ( ".sorasubmit" ) . click ( )
return finish ( )
2019-03-09 12:47:57 +01:00
}
2019-05-08 13:40:46 +02:00
if ( document . querySelector ( "#goes > #lanjut > a[href]" ) ) //#165
2019-03-09 12:47:57 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( document . querySelector ( "#goes > #lanjut > a[href]" ) . href )
return finish ( )
2019-03-09 12:47:57 +01:00
}
2019-05-08 13:40:46 +02:00
if ( document . querySelector ( "#lanjut > #goes[href]" ) )
2019-03-09 12:47:57 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( document . querySelector ( "#lanjut > #goes[href]" ) . href )
return finish ( )
2019-03-09 12:47:57 +01:00
}
2019-05-08 13:40:46 +02:00
if ( document . getElementById ( "waktu" ) && document . getElementById ( "goto" ) )
2019-04-10 19:47:18 +02:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( document . getElementById ( "goto" ) . href )
return finish ( )
2019-04-10 19:47:18 +02:00
}
2019-05-08 13:40:46 +02:00
if ( typeof bukalink == "function" && document . getElementById ( "bijil1" ) && document . getElementById ( "bijil2" ) ) //gosavelink.com
2018-12-30 12:25:26 +01:00
{
2019-05-08 13:40:46 +02:00
window . open = safelyNavigate
bukalink ( )
2019-01-11 19:28:26 +01:00
return finish ( )
2018-12-30 12:25:26 +01:00
}
2019-08-24 07:35:03 +02:00
ifElement ( ".rurasafesubmit" , b => {
b . click ( )
finish ( )
} )
2019-05-08 13:40:46 +02:00
if ( typeof changeLink == "function" )
{
2019-08-24 19:57:07 +07:00
ifElement ( ".rurasafectrl" , ( ) => {
2019-08-22 21:29:41 +02:00
let _open = window . open
window . open = l => _open ( l , "_self" )
2019-08-24 07:35:03 +02:00
if ( typeof $ != "undefined" )
{
2019-08-24 19:57:07 +07:00
$ ( document ) . ajaxStop ( ( ) => document . querySelector ( "#showlink" ) . click ( ) )
2019-08-24 07:35:03 +02:00
}
ifElement ( "a[href='#generate']" , a => {
a . click ( )
} )
2019-08-22 21:29:41 +02:00
} , ( ) => {
let cLT = setInterval ( ( ) => {
if ( ( document . querySelector ( "img#pleasewait" ) && document . querySelector ( ".wait" ) )
2019-09-04 11:11:10 +02:00
|| document . getElementById ( "download" )
2019-08-22 21:29:41 +02:00
|| document . getElementsByTagName ( "style='margin-top:" ) . length
|| document . querySelector ( ".Visit_Link" ) //yametesenpai.xyz
|| document . getElementById ( "daplong" ) //converthinks.xyz
2019-08-24 19:57:07 +07:00
|| document . querySelector ( ".eastsafelink" ) //anjay.info
2019-08-22 21:29:41 +02:00
)
2019-03-11 18:16:49 +01:00
{
2019-08-22 21:29:41 +02:00
clearInterval ( cLT )
window . open = l => safelyNavigate ( l )
2019-05-08 13:40:46 +02:00
changeLink ( )
2019-03-11 18:16:49 +01:00
}
2019-08-22 21:29:41 +02:00
} , 100 )
} )
2019-05-08 13:40:46 +02:00
}
if ( document . querySelector ( "form#show > [type='submit']" ) && document . getElementById ( "tunggu" ) && document . getElementById ( "hapus" ) && typeof counter != "undefined" && typeof countDown != "undefined" && typeof download != "undefined" ) //realsht.mobi,namiyt.com
{
document . querySelector ( "form#show > [type='submit']" ) . click ( )
}
//Safelink Wordpress Plugin
2019-09-14 10:20:03 +02:00
ifElement ( ".wpsafe-bottom > [id^='wpsafe-lin'] > a[href]" , a => {
2019-08-23 20:19:03 +02:00
safelyNavigate ( a . href )
finish ( )
} )
2019-08-19 17:45:45 +02:00
ifElement ( "a[href*='?safelink_redirect=']" , a => {
2019-08-14 11:54:48 +02:00
safelyNavigate ( new URL ( a . href ) . searchParams . get ( "safelink_redirect" ) )
finish ( )
} )
2019-05-08 13:40:46 +02:00
if ( document . querySelector ( ".wp-safelink-button" ) )
{
window . setInterval = f => setInterval ( f , 1 )
2019-06-26 17:31:07 +02:00
awaitElement ( ".wp-safelink-button.wp-safelink-success-color" , a => {
window . open = safelyNavigate
a . click ( )
} )
2019-05-08 13:40:46 +02:00
}
if ( document . getElementById ( "wpsafe-generate" ) && typeof wpsafegenerate == "function" )
{
2019-07-14 04:00:22 +02:00
ifElement ( "#wpsafegenerate > #wpsafe-link > a[href]" , a => {
2019-05-08 13:40:46 +02:00
safelyNavigate ( a . href )
return finish ( )
2019-07-14 04:00:22 +02:00
} , ( ) => {
2019-05-08 13:40:46 +02:00
let s = new URLSearchParams ( location . search )
if ( s . has ( "go" ) )
{
if ( safelyNavigate ( atob ( s . get ( "go" ) ) ) )
return finish ( )
}
2019-05-30 03:23:53 +02:00
else if ( location . pathname . substr ( 0 , 4 ) == "/go/" )
2019-05-08 13:40:46 +02:00
{
2019-05-30 03:23:53 +02:00
search = atob ( location . pathname . substr ( 4 ) )
2019-05-08 13:40:46 +02:00
if ( search . substr ( 0 , 4 ) == "http" )
{
safelyNavigate ( search )
return finish ( )
}
}
2019-07-14 04:00:22 +02:00
} )
2018-06-15 21:35:23 +02:00
}
2019-05-08 13:40:46 +02:00
if ( document . querySelector ( "input[type='hidden'][name='newwpsafelink'][value]" ) )
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
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( atob ( s . get ( "go" ) ) )
return finish ( )
2018-11-20 09:58:17 +01:00
}
2019-05-08 13:40:46 +02:00
}
//Shorte.st
if ( typeof app != "undefined" && document . querySelector ( ".skip-add-container .first-img[alt='Shorte.st']" ) )
{
window . setInterval = f => setInterval ( f , 800 )
2019-06-01 05:13:19 +02:00
return crowdBypass ( )
2019-03-06 06:31:51 +01:00
}
2019-05-08 13:40:46 +02:00
//Other Templates
2019-08-09 10:33:53 +02:00
ifElement ( ".timed-content-client_show_0_30_0" , d => { //technicoz.com
d . classList . remove ( "timed-content-client_show_0_30_0" )
d . style . display = "block"
domainBypass ( "technicoz.com" , ( ) => {
safelyNavigate ( d . querySelector ( "a" ) . href )
} )
finish ( )
} )
2019-10-07 01:56:04 +02:00
if (
document . getElementById ( "getlink" ) && document . getElementById ( "gotolink" ) && (
document . getElementById ( "timer" ) //tetewlink.me,vehicle-techno.cf#86
|| document . getElementById ( "count" ) //keisekaikuy.blogspot.com#493
) )
2019-05-08 13:40:46 +02:00
{
document . getElementById ( "gotolink" ) . removeAttribute ( "disabled" )
document . getElementById ( "gotolink" ) . click ( )
return finish ( )
}
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 )
return finish ( )
}
if ( document . querySelector ( "#yangDihilangkan > a" ) && document . querySelector ( "#downloadArea > .text-center" ) ) //rathestation.bid
{
safelyNavigate ( document . querySelector ( "#yangDihilangkan > a" ) . href )
return finish ( )
}
if ( document . querySelector ( "a#btn-main.disabled" ) && typeof Countdown == "function" ) //Croco,CPMLink,Sloomp.space
{
safelyNavigate ( document . querySelector ( "a#btn-main.disabled" ) . href )
return finish ( )
}
if ( document . querySelector ( "a.redirectBTN.disabled" ) && document . querySelector ( ".timer" ) ) //Arablionz.online
{
safelyNavigate ( document . querySelector ( "a.redirectBTN.disabled" ) . href )
return finish ( )
}
if ( typeof generate == "function" ) //lewat.wibuindo.com
{
2019-07-14 04:00:22 +02:00
ifElement ( "#download > a.akani[href]" , b => safelyNavigate ( b . href ) )
2019-05-08 13:40:46 +02:00
}
if ( document . querySelector ( ".shortened_link a[href][ng-href][target='_blank']" ) ) //Go2to.com,Go2too.com,Golink.to
2019-02-05 22:40:01 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( document . querySelector ( ".shortened_link a[href][ng-href][target='_blank']" ) . href )
2019-02-05 22:40:01 +01:00
}
2019-05-08 13:40:46 +02:00
if ( document . querySelector ( "a[href^='https://linkshrink.net/homepage'] > img.lgo" ) ) //LinkShrink.net
2018-06-15 21:35:23 +02:00
{
2019-05-08 13:40:46 +02:00
let p = document . getElementById ( "pause" ) , s = document . getElementById ( "skip" )
if ( p && s )
{
//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
}
2019-09-25 08:01:52 +02:00
if ( document . querySelector ( "lv-linkvertise" ) ) //Link-to.net
2018-12-30 12:25:26 +01:00
{
2019-09-25 08:01:52 +02:00
console . log ( "Linkvertise" )
let xhr = new XMLHttpRequest ( )
xhr . onload = ( ) => {
let json = JSON . parse ( xhr . responseText )
if ( json && json . data && json . data . link )
{
safelyNavigate ( json . data . link . target )
}
}
xhr . open ( "GET" , "https://linkvertise.net/api/v1/redirect/link/static" + location . pathname )
xhr . send ( )
2018-12-30 12:25:26 +01:00
}
2019-09-25 08:01:52 +02:00
if ( document . querySelectorAll ( "img[src='/assets/img/logo.png'][alt='Openload']" ) . length )
2018-05-28 01:40:02 +02:00
{
2019-05-08 13:40:46 +02:00
if ( typeof secondsdl != "undefined" )
2018-05-28 01:40:02 +02:00
{
2019-05-08 13:40:46 +02:00
secondsdl = 0
2018-05-28 01:40:02 +02:00
}
2019-05-08 13:40:46 +02:00
return finish ( )
2018-05-28 01:40:02 +02:00
}
2019-08-14 11:46:49 +02:00
if ( location . search . startsWith ( "?n=" ) ) //viralking.xyz,indian4uh.com
{
ifElement ( "center a[name=a][href]" , a => {
safelyNavigate ( a . href )
finish ( )
} )
}
2019-10-12 12:30:23 +02:00
if ( document . querySelector ( "script[src='https://duit.cc/js/jquery.1.8.3.js']" ) )
2019-08-29 05:14:48 +02:00
{
ifElement ( "input[type='hidden'][name='geturl'][value^='http']" , i => {
safelyNavigate ( i . value )
finish ( )
} )
}
2019-09-21 05:55:03 +02:00
if ( typeof adblock _message == "string" && adblock _message . indexOf ( "mm1.ink" ) > - 1 && typeof goto == "function" ) //mm1.ink#442
{
$ = ( ) => ( { attr : ( n , v ) => safelyNavigate ( atob ( v ) ) } )
goto ( )
}
2019-09-25 08:08:37 +02:00
if ( document . querySelector ( "#templatemo_footer > a[href='http://teknosafe.kertashitam.com/']" ) && document . querySelector ( "#templatemo_content > div > a[href]" ) ) //teknosafe.kertashitam.com,teknosafe.teknologilink.com
{
safelyNavigate ( document . querySelector ( "#templatemo_content > div > a[href]" ) . href )
2019-10-24 14:49:33 +02:00
return finish ( )
2019-09-25 08:08:37 +02:00
}
2019-10-24 14:49:33 +02:00
ifElement ( "button#makingdifferenttimer[onclick^='window.location.replace']" , b => { //#522
b . click ( )
finish ( )
} )
2019-05-08 13:40:46 +02:00
let t = document . querySelector ( "title" )
2019-10-24 14:49:33 +02:00
if ( ! bypassed && t )
2019-02-02 22:00:42 +01:00
{
2019-05-08 13:40:46 +02:00
t = t . textContent . trim ( )
2019-06-01 05:32:33 +02:00
switch ( t )
2019-02-02 22:00:42 +01:00
{
2019-06-01 05:32:33 +02:00
case "Viid.su" :
2019-02-02 22:00:42 +01:00
{
2019-07-14 04:00:22 +02:00
let b = document . querySelector ( "#link-success-button[data-url]" )
if ( b )
2019-06-01 05:32:33 +02:00
{
safelyNavigate ( b . getAttribute ( "data-url" ) )
return finish ( )
}
2019-02-02 22:00:42 +01:00
}
2019-06-01 05:32:33 +02:00
break ;
case "shortadd : 302 Moved" :
crowdBypass ( )
let lT = setInterval ( ( ) => {
if ( typeof $ != "undefined" )
2019-05-08 13:40:46 +02:00
{
2019-06-01 05:32:33 +02:00
clearInterval ( lT )
let _ajax = $ . ajax , req = 0
$ . ajax = d => {
if ( typeof d == "object" && "success" in d && "dataType" in d && d . dataType == "json" && "url" in d && d . url . length > 15 && d . url . substr ( d . url . length - 11 ) == "/skip_timer" )
{
if ( "data" in d && "adblock" in d . data )
{
d . data . adblock = false
}
if ( ++ req == 2 )
{
d . success = res => {
contributeAndNavigate ( res . messages . url )
}
}
}
_ajax ( d )
}
2019-05-08 13:40:46 +02:00
}
2019-06-01 05:32:33 +02:00
} , 10 )
break ;
2019-09-13 04:31:06 +02:00
case "Glinks!" :
2019-10-03 23:20:54 +02:00
ifElement ( "form[method='POST'] > input[type='submit'][name='btn'].btn" , i => {
if ( i . parentNode . querySelector ( ".g-recaptcha" ) == null )
{
i . click ( )
}
} , ( ) => {
2019-09-13 04:31:06 +02:00
ifElement ( ".btnx" , a => a . click ( ) )
} )
break ;
2019-09-30 14:37:00 +02:00
case "AdFly - Click Allow to continue" :
safelyNavigate ( ( new URLSearchParams ( location . search ) ) . get ( "dest" ) )
break ;
2019-06-01 05:32:33 +02:00
default :
2019-10-24 14:49:33 +02:00
ifElement ( "a#makingdifferenttimer[href]" , b => {
if ( isGoodLink ( t ) )
{
unsafelyNavigate ( t )
}
else
{
safelyNavigate ( b . href )
}
} )
2019-02-02 22:00:42 +01:00
}
}
2019-06-26 17:31:07 +02:00
//Monitor DOM for disturbances for 10 seconds.
2019-05-08 13:40:46 +02:00
let dT = setInterval ( ( ) => {
//Shorte.st Embed
if ( document . querySelector ( ".lay-sh.active-sh" ) )
{
let elm = document . querySelectorAll ( ".lay-sh.active-sh" ) [ 0 ]
elm . parentNode . removeChild ( elm )
}
//AdLinkFly
if ( typeof app _vars == "object" )
{
2019-08-23 20:09:09 +02:00
if ( location . search . substr ( 0 , 3 ) == "?a=" )
2019-05-30 03:24:31 +02:00
{
2019-08-23 20:09:09 +02:00
if ( document . querySelector ( "img[alt='SafelinkU']" ) )
{
window . setInterval = f => setInterval ( f , 10 )
}
2019-08-06 20:37:45 +02:00
crowdPath ( location . search . substr ( 3 ) )
2019-05-30 03:24:31 +02:00
}
2019-09-13 08:25:14 +02:00
domainBypass ( "adcoinfly.com" , ( ) => {
2019-09-14 10:17:12 +02:00
document . querySelectorAll ( "a.btn[href=''], a.btn[href*='clickme']" ) . forEach ( e => {
2019-09-13 08:25:14 +02:00
e . parentNode . removeChild ( e )
} )
} )
2019-09-04 11:14:15 +02:00
domainBypass ( /(semawur|bercara)\\.com|in11\\.site/ , ( ) => {
2019-09-04 10:36:53 +02:00
ifElement ( "input[type='hidden'][name='alias'][value]" , i => crowdPath ( i . value ) , ( ) => crowdPath ( location . hash . substr ( 1 ) ) )
} )
2019-10-25 19:44:39 +02:00
domainBypass ( /movienear\\.me|lewat\\.club/ , ( ) => {
2019-10-25 15:43:05 +02:00
ifElement ( "input[type='hidden'][name='alias'][value]" , i => {
i . parentNode . action += "#" + i . value + ( ignoreCrowdBypass ? "#ignoreCrowdBypass" : "" )
crowdPath ( i . value )
} , ( ) => {
crowdPath ( location . hash . substr ( 1 ) )
} )
} )
2019-09-02 09:17:02 +02:00
domainBypass ( /(atv|adlink)\\.pw|safe\\.mirrordown\\.com|kabarviral\\.blog|lewat\\.club/ , ( ) => {
2019-08-09 10:21:02 +02:00
crowdPath ( location . search . substr ( 1 ) . split ( "=" ) [ 0 ] )
2019-08-06 18:38:10 +02:00
} )
2019-08-25 03:52:00 +02:00
document . documentElement . setAttribute ( "`+message_channel.adlinkfly_info+`" , "" )
2019-05-08 13:40:46 +02:00
let iT = setInterval ( ( ) => {
2019-08-29 07:48:04 +02:00
if ( document . documentElement . hasAttribute ( "`+message_channel.adlinkfly_target+`" ) )
2019-01-01 18:43:20 +01:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( iT )
2019-08-25 03:52:00 +02:00
let t = document . documentElement . getAttribute ( "`+message_channel.adlinkfly_target+`" )
2019-05-08 13:40:46 +02:00
if ( t == "" )
{
crowdBypass ( ( ) => {
let cT = setInterval ( ( ) => {
2019-09-14 10:15:19 +02:00
let a = document . querySelector ( "a.get-link:not(.disabled)" )
2019-02-02 22:00:42 +01:00
if ( ! a )
{
2019-05-08 13:40:46 +02:00
a = document . querySelector ( ".skip-ad a[href]" )
if ( ! a )
{
a = document . querySelector ( "[enlace]" ) //adigp.com
}
2019-02-02 22:00:42 +01:00
}
2019-05-08 13:40:46 +02:00
if ( a )
2019-01-01 18:43:20 +01:00
{
2019-05-08 13:40:46 +02:00
h = a . href
if ( ! isGoodLink ( h ) && a . hasAttribute ( "data-href" ) ) //cuio.io
{
h = a . getAttribute ( "data-href" )
}
if ( ! isGoodLink ( h ) && a . hasAttribute ( "enlace" ) )
{
h = a . getAttribute ( "enlace" )
}
if ( isGoodLink ( h ) )
{
clearInterval ( cT )
a . parentNode . removeChild ( a )
contributeAndNavigate ( h )
}
2019-01-01 18:43:20 +01:00
}
2019-05-08 13:40:46 +02:00
} , 20 )
} )
}
else
{
contributeAndNavigate ( t )
}
2019-01-01 18:43:20 +01:00
}
2019-05-08 13:40:46 +02:00
} , 50 )
2019-07-19 16:05:24 +02:00
domainBypass ( /123l\\.pw|123link|oke\\.io/ , ( ) => {
2019-05-17 03:53:57 +02:00
window . setInterval = f => setInterval ( f , 1 )
} )
2019-05-08 13:40:46 +02:00
clearInterval ( dT )
}
2019-09-06 11:56:14 +02:00
//GemPixel/KBRMedia Premium URL Shortener
if ( typeof appurl == "string" && typeof token == "string" )
{
2019-09-15 13:14:00 +02:00
const regex = /var count = [0-9]*;var countdown = setInterval\\\(function\\\(\\\){\\\$\\\("[a-z\\\-.# ]+"\\\)(\\\.attr\\\("href","#pleasewait"\\\))?(\\\.attr\\\("disabled",""\\\))?\\\.html\\\(count( \\\+ ".+")?\\\);if \\\(count < 1\\\) {clearInterval\\\(countdown\\\);(\\\$\\\("[a-z\\\-.# ]+"\\\)\\\.attr\\\("href",|window\\\.location=)"(https?:\\\/\\\/[^"]+)"( \\\+ hash)?\\\)?(\\\.removeAttr\\\("disabled"\\\)\\\.removeClass\\\("disabled"\\\))?(\\\.html\\\(".+"\\\))?;}count--;}, 1000\\\);/
2019-10-22 16:53:33 +02:00
let contribute = false
2019-09-06 11:56:14 +02:00
document . querySelectorAll ( "script" ) . forEach ( script => {
let matches = regex . exec ( script . textContent )
if ( matches && matches [ 5 ] )
{
2019-10-22 16:53:33 +02:00
if ( contribute )
2019-10-22 21:24:54 +07:00
{
contributeAndNavigate ( matches [ 5 ] )
}
else
{
safelyNavigate ( matches [ 5 ] )
}
2019-09-06 11:56:14 +02:00
}
} )
if ( ! bypassed )
{
domainBypass ( /al\\.ly|ally\\.sh|dausel\\.co/ , ( ) => {
2019-10-22 21:24:54 +07:00
crowdBypass ( )
2019-10-22 16:53:33 +02:00
contribute = true
2019-09-06 11:56:14 +02:00
let e = document . getElementById ( "html_element" )
if ( e )
{
let m = document . getElementById ( "messa" )
if ( m )
{
m . parentNode . removeChild ( m )
}
e . classList . remove ( "hidden" )
}
} )
}
2019-09-14 10:39:39 +02:00
clearInterval ( dT )
2019-09-06 11:56:14 +02:00
}
2019-05-08 13:40:46 +02:00
} , 100 )
setTimeout ( ( ) => {
2019-01-01 18:43:20 +01:00
clearInterval ( dT )
2019-05-08 13:40:46 +02:00
} , 10000 )
} ) `
let dO = new MutationObserver ( mutations => { //
2019-08-25 03:52:00 +02:00
if ( document . documentElement . hasAttribute ( message _channel . stop _watching ) )
2019-02-17 13:15:59 +01:00
{
2019-08-25 03:52:00 +02:00
document . documentElement . removeAttribute ( message _channel . stop _watching )
2019-02-17 13:15:59 +01:00
dO . disconnect ( )
}
2019-08-25 03:52:00 +02:00
else if ( document . documentElement . hasAttribute ( message _channel . crowd _path ) )
2019-05-30 03:24:31 +02:00
{
2019-08-25 03:52:00 +02:00
crowdPath = document . documentElement . getAttribute ( message _channel . crowd _path )
document . documentElement . removeAttribute ( message _channel . crowd _path )
2019-05-30 03:24:31 +02:00
}
2019-08-25 03:52:00 +02:00
else if ( document . documentElement . hasAttribute ( message _channel . crowd _query ) )
2019-02-17 13:15:59 +01:00
{
2019-08-25 03:52:00 +02:00
document . documentElement . removeAttribute ( message _channel . crowd _query )
2019-02-17 13:15:59 +01:00
let xhr = new XMLHttpRequest ( )
xhr . onreadystatechange = ( ) => {
2019-10-13 07:20:33 +02:00
if ( xhr . readyState == 4 )
2019-02-17 13:15:59 +01:00
{
2019-10-13 07:20:33 +02:00
if ( xhr . status == 200 && xhr . responseText != "" )
{
location . assign ( "https://universal-bypass.org/crowd-bypassed?target=" + encodeURIComponent ( xhr . responseText ) + "&referer=" + encodeURIComponent ( location . href ) )
//The background script will intercept the request and redirect to html/crowd-bypassed.html
}
else
{
document . documentElement . setAttribute ( message _channel . crowd _queried , "" )
}
2019-05-08 13:40:46 +02:00
}
2019-02-17 13:15:59 +01:00
}
xhr . open ( "POST" , "https://universal-bypass.org/crowd/query_v1" , true )
xhr . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" )
2019-05-30 03:24:31 +02:00
xhr . send ( "domain=" + encodeURIComponent ( domain ) + "&path=" + encodeURIComponent ( crowdPath ) )
2019-02-17 13:15:59 +01:00
}
2019-08-25 03:52:00 +02:00
else if ( document . documentElement . hasAttribute ( message _channel . crowd _contribute ) )
2019-02-17 13:15:59 +01:00
{
2019-08-25 03:52:00 +02:00
const target = document . documentElement . getAttribute ( message _channel . crowd _contribute )
document . documentElement . removeAttribute ( message _channel . crowd _contribute )
2019-04-10 19:47:18 +02:00
brws . runtime . sendMessage ( {
type : "crowd-contribute" ,
2019-05-30 03:24:31 +02:00
data : "domain=" + encodeURIComponent ( domain ) + "&path=" + encodeURIComponent ( crowdPath ) + "&target=" + encodeURIComponent ( target )
2019-04-10 19:47:18 +02:00
} )
2019-02-17 13:15:59 +01:00
}
2019-08-25 03:52:00 +02:00
else if ( document . documentElement . hasAttribute ( message _channel . adlinkfly _info ) )
2019-01-11 19:28:26 +01:00
{
2019-08-25 03:52:00 +02:00
document . documentElement . removeAttribute ( message _channel . adlinkfly _info )
2019-09-04 10:34:50 +02:00
if ( crowdPath == location . pathname . substr ( 1 ) )
{
let port = brws . runtime . connect ( { name : "adlinkfly-info" } )
port . onMessage . addListener ( msg => {
document . documentElement . setAttribute ( message _channel . adlinkfly _target , msg )
port . disconnect ( )
} )
port . postMessage ( location . href )
}
else
{
document . documentElement . setAttribute ( message _channel . adlinkfly _target , "" )
}
2018-10-15 06:55:21 +02:00
}
2019-02-17 13:15:59 +01:00
} ) ,
2019-05-30 03:24:31 +02:00
domain = location . hostname ,
crowdPath = location . pathname . substr ( 1 )
2019-03-18 16:53:33 +01:00
if ( domain == "api.rurafs.me" )
{
return
}
2019-02-17 13:15:59 +01:00
if ( domain . substr ( 0 , 4 ) == "www." )
{
domain = domain . substr ( 4 )
}
2019-03-09 12:47:57 +01:00
dO . observe ( document . documentElement , { attributes : true } )
script . innerHTML += "\n" + res . userscript + "\n})()"
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
}