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" ) ,
2019-11-10 09:50:56 +01:00
getMessage = k => brws . i18n . getMessage ( k ) . split ( "\\" ) . join ( "\\\\" ) . split ( "\"" ) . join ( "\\\"" ) ,
2019-08-25 03:52:00 +02:00
gen _chan = ( ) => "data-" + Math . random ( ) . toString ( ) . substr ( 2 ) ,
message _channel = {
stop _watching : gen _chan ( ) ,
2019-11-23 08:57:35 +01:00
crowd _domain : gen _chan ( ) ,
2019-08-25 03:52:00 +02:00
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-11-23 08:57:35 +01:00
crowdDomain = d => {
if ( crowdEnabled && d )
{
document . documentElement . setAttribute ( "`+message_channel.crowd_domain+`" , d )
}
} ,
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-11-25 15:26:37 +01:00
crowdBypass = ( f , a ) => {
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-11-10 09:50:56 +01:00
insertInfoBox ( "`+getMessage(" crowdWait ")+`" )
2019-05-08 13:40:46 +02:00
f ( )
}
} , 20 )
2018-12-30 12:25:26 +01:00
}
}
2019-11-25 15:26:37 +01:00
else if ( a )
{
f ( )
}
2019-10-13 07:20:33 +02:00
else
{
2019-11-10 09:50:56 +01:00
insertInfoBox ( "`+getMessage(" crowdDisabled ")+`" )
2019-10-13 07:20:33 +02:00
}
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-11-10 09:50:56 +01:00
span . textContent = "`+getMessage(" infoBoxHide ")+`"
2019-10-13 07:20:33 +02:00
}
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-11-23 08:57:35 +01:00
if ( [ "bc.vc" , "bcvc.live" ] . indexOf ( domain ) < 0 )
2019-09-16 00:18:03 +02:00
{
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 )
2019-11-25 05:01:59 +01:00
} ,
get : ( ) => "undefined"
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/" )
2019-11-23 06:15:57 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( "/goii/" + location . pathname . substr ( 2 ) + "?ref=" + location . hostname + location . pathname )
2019-11-23 06:15:57 +01:00
}
2018-06-01 18:45:23 +02:00
} )
2019-11-23 06:15:57 +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 / , ( ) = > l o c a t i o n . h r e f = " h t t p s : / / 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 ? 1 " )
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-11-23 06:15:57 +01:00
hrefBypass ( / 1 v \ \ . t o \ \ / t \ \ / . * / , ( ) = > l o c a t i o n . p a t h n a m e = l o c a t i o n . p a t h n a m e . s p l i t ( " / t / " ) . j o i n ( " / s a l i e n d o / " ) )
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-11-23 08:57:35 +01:00
domainBypass ( /bc\\.vc|bcvc\\.live/ , ( ) => {
crowdDomain ( "bc.vc" )
2019-05-08 13:40:46 +02:00
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" )
2019-11-25 15:26:37 +01:00
xhr . send ( "id=" + location . hash . substr ( 1 ) )
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-11-23 06:15:57 +01: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-11-23 06:15:57 +01:00
hrefBypass ( / ( p r o x 7 7 | a g d d 5 b r ) \ \ . c o m \ \ / a n a l y z e \ \ / ( . + ) / , m = > l o c a t i o n . p a t h n a m e = " / r e s u l t / " + m [ 2 ] )
2019-10-31 01:25:39 +01:00
hrefBypass ( /sfile\\.(mobi|xyz)/ , ( ) => {
ODP ( window , "downloadButton" , {
set : a => {
if ( a && a . href )
{
safelyNavigate ( a . href )
}
}
} )
} )
2019-11-09 06:32:11 +01:00
hrefBypass ( / g i x e n \ \ . c o m \ \ / h o m e _ 1 \ \ . p h p / , ( ) = > {
const sid = document . cookie . match ( /sessionid=(\d+)/ ) [ 1 ]
if ( sid )
2019-11-07 23:53:05 +01:00
{
2019-11-09 06:32:11 +01:00
let f = document . createElement ( "form" )
f . method = "POST"
f . action = "home_2.php?sessionid=" + sid
f . innerHTML = '<input type="hidden" name="gixenlinkcontinue" value="1">'
2019-11-07 23:53:05 +01:00
document . documentElement . appendChild ( f )
f . submit ( )
}
} )
2019-11-22 02:13:21 +01:00
domainBypass ( "linkduit.net" , ( ) => {
window . setInterval = f => setInterval ( f , 1 )
awaitElement ( "a#download[itemlink]" , a => {
if ( isGoodLink ( a . getAttribute ( "itemlink" ) ) )
{
location . href = a . getAttribute ( "itemlink" )
}
} )
awaitElement ( "a.mirror_link[href]" , a => safelyNavigate ( a . href ) )
} )
2019-11-24 01:40:56 +01:00
domainBypass ( "mispuani.xyz" , ( ) => {
window . setInterval = f => setInterval ( f , 1 )
awaitElement ( "button#buttondewa.mispuanibuttonlink" , b => b . onclick ( ) )
} )
2019-05-08 13:40:46 +02:00
//Insertion point 1 — insert bypasses running before the DOM is loaded above this comment
2019-11-23 10:48:04 +01:00
hrefBypass ( / ( n j i i r | h e a l t h y k k | l i n k a s m | d x d r i v e ) \ \ . c o m | p u n c h s u b s \ \ . 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 | 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 / , ( ) = > w i n d o w . s e t I n t e r v a l = f = > s e t I n t e r v a l ( f , 1 ) )
2019-11-23 07:36:51 +01:00
domainBypass ( /(racaty|longfiles)\\.com|indishare\\.org|datei\\.to/ , ( ) => window . setTimeout = f => setTimeout ( f , 1 ) )
2019-05-08 13:40:46 +02:00
if ( bypassed )
{
return
}
ensureDomLoaded ( ( ) => {
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 ( "bluemediafiles.com" , ( ) => {
if ( typeof FinishMessage == "string" && FinishMessage . indexOf ( "<a href=" ) > - 1 )
{
document . write ( FinishMessage )
2019-11-23 07:21:46 +01:00
safelyNavigate ( document . querySelector ( "a" ) . href )
2019-05-08 13:40:46 +02:00
}
} )
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
} )
2019-11-23 06:38:24 +01:00
domainBypass ( "won.pe" , ( ) => ifElement ( "#progress" , p => {
p . setAttribute ( "aria-valuenow" , "100" )
awaitElement ( "#skip_button[href]:not([href=''])" , b => safelyNavigate ( window . longURL ) )
} ) )
2019-11-23 06:15:57 +01:00
domainBypass ( "gotoo.loncat.in" , ( ) => ifElement ( "a[href^='http://gotoo.loncat.in/go.php?open=']" , a => safelyNavigate ( a . href ) ) )
domainBypass ( "idnation.net" , ( ) => ifElement ( "#linko[href]" , b => safelyNavigate ( b . href ) ) )
domainBypass ( "mazika2day.com" , ( ) => ifElement ( ".linkbtn[href]" , b => safelyNavigate ( b . href ) ) )
2019-10-31 01:30:43 +01:00
domainBypass ( "ux9.de" , ( ) => {
2019-07-31 21:32:42 +02:00
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
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "rapidcrypt.net" , ( ) => ifElement ( ".push_button.blue[href]" , b => safelyNavigate ( b . href ) ) )
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 ( )
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "goou.in" , ( ) => 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
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "shirosafe.web.id" , ( ) => safelyNavigate ( document . querySelector ( "#generate > center > a[style]" ) . href ) )
2019-05-08 13:40:46 +02:00
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
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "drivehub.link" , ( ) => ifElement ( "a#proceed[href]" , a => safelyNavigate ( a . href ) ) )
2019-11-14 20:45:23 +01:00
domainBypass ( /oxy\\.(cloud|st)/ , ( ) => {
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-11-23 06:15:57 +01:00
domainBypass ( "daunshorte.teknologilink.com" , ( ) => location . href = document . querySelector ( "a[href^='https://teknosafe.teknologilink.com/linkteknolink/safelinkscript.php?']" ) . href )
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-11-23 06:25:45 +01:00
domainBypass ( /sub2unlock\\.(com|net)/ , ( ) => safelyNavigate ( document . getElementById ( "theGetLink" ) . 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-11-23 06:15:57 +01:00
domainBypass ( "boostme.gg" , ( ) => safelyNavigate ( document . querySelector ( "a[href]#go" ) . href ) )
domainBypass ( "driverays.com" , ( ) => safelyNavigate ( document . querySelector ( "a#link[href]" ) . href ) )
domainBypass ( "wikitrik.com" , ( ) => document . querySelector ( "#download > form[action='/getlink.php'] > input[type='submit'].button" ) . click ( ) )
domainBypass ( "dawnstation.com" , ( ) => safelyNavigate ( document . querySelector ( "#tidakakanselamanya.hiddenPlace > a" ) . href ) )
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-11-23 10:46:29 +01:00
domainBypass ( /get-click2\\.blogspot\\.com|pastikan\\.me|informations-library\\.blogspot\\.com/ , ( ) => {
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-11-23 06:15:57 +01: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-11-23 06:15:57 +01:00
domainBypass ( /spacetica\\.com|linkpoi\\.in/ , ( ) => ifElement ( "a.btn.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-11-23 06:15:57 +01:00
hrefBypass ( / m i r r o r e d \ \ . t o \ \ / f i l e s \ \ / / , ( ) = > i f E l e m e n t ( " # d l _ f o r m b u t t o n " , b = > b . c l i c k ( ) ) )
hrefBypass ( / m i r r o r e d \ \ . t o \ \ / d o w n l i n k \ \ / / , ( ) = > i f E l e m e n t ( " . c e n t e r e d . h i g h l i g h t a [ h r e f ] " , a = > s a f e l y N a v i g a t e ( a . h r e f ) ) )
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 ( )
} )
2019-11-23 06:15:57 +01:00
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" , ( ) => {
2019-11-16 17:38:44 +01:00
let _open = window . open
2019-09-30 12:50:51 +02:00
window . open = ( ) => { }
document . querySelectorAll ( ".post-support-options > .gate-btn-box > span > a" ) . forEach ( a => {
a . href = "#"
a . target = ""
a . click ( )
} )
2019-11-16 17:38:44 +01:00
window . open = _open
2019-09-30 12:50:51 +02:00
let dT = setInterval ( ( ) => {
if ( ! b . classList . contains ( "disabled" ) )
{
clearInterval ( dT )
location . hash = "#done"
location . reload ( )
}
} , 100 )
} )
} )
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "st.flashsubs.web.id" , ( ) => safelyNavigate ( document . querySelector ( "a#proceed" ) . href ) )
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-11-23 06:15:57 +01:00
domainBypass ( /(prox77|agdd5br)\\.com/ , ( ) => document . querySelector ( "#Sbutton" ) . click ( ) )
domainBypass ( "kuliahmatematika.my.id" , ( ) => safelyNavigate ( atob ( document . querySelector ( "input[name='data']" ) . value ) ) )
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-11-23 06:15:57 +01: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-11-09 09:29:40 +01:00
domainBypass ( /realsht\\.mobi|sairman\\.com/ , ( ) => {
2019-11-09 06:41:38 +01:00
ifElement ( "a#hapus" , a => location . href = a . href , ( ) => {
ifElement ( "input[type='hidden'][name='mylink'][value^='http']" , i => safelyNavigate ( i . value ) )
} )
2019-10-30 09:40:48 +01:00
} )
2019-11-23 06:15:57 +01:00
hrefBypass ( /mirrorace\\.com\\/m \ \ / [ a - zA - Z0 - 9 ] + \ \ / [ 0 - 9 ] + / , ( ) = > l o c a t i o n . h r e f = d o c u m e n t . q u e r y S e l e c t o r ( " a [ h r e f * = ' " + l o c a t i o n . s e a r c h + " ' ] : n o t ( [ h i d d e n ] ) " ) . h r e f )
2019-11-21 09:20:21 +01:00
domainBypass ( "mirrorace.com" , ( ) => {
ifElement ( ".uk-modal-close" , b => {
if ( b . textContent == "I have a VPN already" )
{
b . click ( )
}
} )
2019-10-30 09:47:46 +01:00
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "pucuktranslation.pw" , ( ) => ifElement ( "a.button.primary[href]" , a => safelyNavigate ( a . href ) ) )
2019-11-07 07:17:12 +01:00
domainBypass ( /linkvertise\\.(com|net)|link-to\\.net/ , ( ) => {
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 ( )
} )
2019-11-23 06:15:57 +01:00
domainBypass ( "gsu.st" , ( ) => ifElement ( "#Subform input[type='submit'][name='btn'].btn" , b => b . click ( ) ) )
2019-11-23 03:22:24 +01:00
domainBypass ( "mangalist.org" , ( ) => {
awaitElement ( "#btt > button.btn.btn-primary.text-center[onclick^='window.location.assign(']" , b => {
let o = b . getAttribute ( "onclick" )
safelyNavigate ( o . substr ( 24 , o . length - 3 ) )
} )
} )
2019-11-23 06:06:10 +01:00
domainBypass ( "terbit21.club" , ( ) => ifElement ( "a#downloadbutton[href]" , a => location . href = a . href ) )
2019-11-23 06:44:51 +01:00
domainBypass ( "onepieceex.net" , ( ) => ifElement ( "noscript" , n => safelyNavigate ( n . textContent ) ) )
2019-11-23 13:26:47 +07:00
domainBypass ( "zflas.com" , ( ) => {
if ( typeof _bh . decode == "function" )
{
safelyNavigate ( _bh . decode ( location . href . substr ( location . href . indexOf ( "?go=" ) + 4 ) ) )
}
} )
2019-11-23 10:51:46 +01:00
domainBypass ( "felanovia.com" , ( ) => ifElement ( "form" , f => f . submit ( ) ) )
2019-11-23 11:33:31 +01:00
domainBypass ( "redir.animenine.net" , ( ) => ifElement ( "a#lanjutkeun[href]" , a => safelyNavigate ( a . href ) ) )
2019-11-23 11:39:02 +01:00
hrefBypass ( / d o w n l o a d \ \ . i d \ \ / d o w n l o a d f i l e \ \ / / , ( ) = > {
if ( typeof download == "function" )
{
let div = document . createElement ( "div" )
div . id = "link"
div = document . body . appendChild ( div )
download ( )
safelyNavigate ( div . querySelector ( "a" ) . href )
}
} )
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 ( )
}
2019-11-25 15:26:37 +01:00
if ( document . querySelector ( "form#landing" ) )
2019-11-25 18:56:39 +07:00
{
2019-11-25 15:26:37 +01:00
let f = document . querySelector ( "form#landing" ) , i
if ( document . querySelector ( "form#landing > div#landing" ) && document . querySelector ( ".soractrl" ) )
{
i = location . hash . substr ( 1 )
if ( i . substr ( 0 , 18 ) == "ignoreCrowdBypass#" )
{
i = i . substr ( 18 ) + "#ignoreCrowdBypass"
}
}
else
{
i = location . search . split ( "?id=" ) [ 1 ]
}
f . id = ""
crowdPath ( i )
crowdBypass ( ( ) => {
if ( f . action . substr ( f . action . length - 18 ) == "#ignoreCrowdBypass" )
{
f . action = f . action . substr ( 0 , f . action . length - 18 ) + "#" + i + "#ignoreCrowdBypass"
}
else
{
f . action += "#" + i
}
f . submit ( )
} , true )
2019-11-25 18:56:39 +07:00
}
if ( document . querySelector ( "img.spoint#showlink" ) && document . querySelector ( ".soractrl" ) )
{
2019-11-25 15:26:37 +01:00
if ( ! ignoreCrowdBypass )
{
insertInfoBox ( crowdEnabled ? "`+getMessage(" crowdWait ")+`" : "`+getMessage(" crowdDisabled ")+`" )
}
const hash = location . hash . substr ( 1 )
history . pushState ( { } , document . querySelector ( "title" ) . textContent , location . href . split ( "#" ) [ 0 ] )
ensureDomLoaded ( ( ) => {
2019-11-25 18:56:39 +07:00
( function ( $ ) {
let defaults = {
url : null ,
values : null ,
method : "POST" ,
target : null ,
traditional : false ,
redirectTop : false
}
2019-11-25 15:26:37 +01:00
$ . redirect = ( url , values , method , target , traditional , redirectTop ) => {
2019-11-25 18:56:39 +07:00
let opts = url
2019-11-25 15:26:37 +01:00
if ( typeof url != "object" )
{
2019-11-25 18:56:39 +07:00
opts = {
2019-11-25 15:26:37 +01:00
url : url + "&soralink_contribute=" + hash ,
2019-11-25 18:56:39 +07:00
values : values ,
method : method ,
target : "_self" ,
traditional : traditional ,
redirectTop : redirectTop
}
}
let config = $ . extend ( { } , defaults , opts )
let generatedForm = $ . redirect . getForm ( config . url , config . values , config . method , config . target , config . traditional )
2019-11-25 15:26:37 +01:00
$ ( "body" , config . redirectTop ? window . top . document : undefined ) . append ( generatedForm . form )
2019-11-25 18:56:39 +07:00
generatedForm . submit ( )
generatedForm . form . remove ( )
}
2019-11-25 15:26:37 +01:00
$ . redirect . getForm = ( url , values , method , target , traditional ) => {
2019-11-25 18:56:39 +07:00
method = ( method && [ "GET" , "POST" , "PUT" , "DELETE" ] . indexOf ( method . toUpperCase ( ) ) !== - 1 ) ? method . toUpperCase ( ) : 'POST'
url = url . split ( "#" )
let hash = url [ 1 ] ? ( "#" + url [ 1 ] ) : ""
url = url [ 0 ]
2019-11-25 15:26:37 +01:00
if ( ! values )
{
2019-11-25 18:56:39 +07:00
let obj = $ . parseUrl ( url )
url = obj . url
values = obj . params
}
values = removeNulls ( values )
2019-11-25 15:26:37 +01:00
let form = $ ( "<form>" ) . attr ( "method" , method ) . attr ( "action" , url + hash )
if ( target )
{
2019-11-25 18:56:39 +07:00
form . attr ( "target" , target )
}
let submit = form [ 0 ] . submit
iterateValues ( values , [ ] , form , null , traditional )
2019-11-25 15:26:37 +01:00
return {
form : form ,
submit : ( ) => submit . call ( form [ 0 ] )
}
2019-11-25 18:56:39 +07:00
}
2019-11-25 15:26:37 +01:00
$ . parseUrl = url => {
if ( url . indexOf ( "?" ) < 0 )
{
return {
2019-11-25 18:56:39 +07:00
url : url ,
params : { }
}
}
2019-11-25 15:26:37 +01:00
let parts = url . split ( "?" ) ,
query _string = parts [ 1 ] ,
elems = query _string . split ( "&" )
2019-11-25 18:56:39 +07:00
url = parts [ 0 ]
let i , pair , obj = { }
for ( i = 0 ; i < elems . length ; i += 1 ) {
pair = elems [ i ] . split ( '=' )
obj [ pair [ 0 ] ] = pair [ 1 ]
}
return {
url : url ,
params : obj
}
}
2019-11-25 15:26:37 +01:00
let getInput = ( name , value , parent , array , traditional ) => {
2019-11-25 18:56:39 +07:00
let parentString
2019-11-25 15:26:37 +01:00
if ( parent . length > 0 )
{
2019-11-25 18:56:39 +07:00
parentString = parent [ 0 ]
let i
2019-11-25 15:26:37 +01:00
for ( i = 1 ; i < parent . length ; i += 1 )
{
2019-11-25 18:56:39 +07:00
parentString += "[" + parent [ i ] + "]"
}
2019-11-25 15:26:37 +01:00
if ( array )
{
2019-11-25 18:56:39 +07:00
if ( traditional )
2019-11-25 15:26:37 +01:00
{
2019-11-25 18:56:39 +07:00
name = parentString
2019-11-25 15:26:37 +01:00
}
2019-11-25 18:56:39 +07:00
else
2019-11-25 15:26:37 +01:00
{
2019-11-25 18:56:39 +07:00
name = parentString + "[" + name + "]"
2019-11-25 15:26:37 +01:00
}
}
else
{
2019-11-25 18:56:39 +07:00
name = parentString + "[" + name + "]"
}
}
2019-11-25 15:26:37 +01:00
return $ ( "<input>" ) . attr ( "type" , "hidden" ) . attr ( "name" , name ) . attr ( "value" , value )
2019-11-25 18:56:39 +07:00
}
2019-11-25 15:26:37 +01:00
const iterateValues = ( values , parent , form , isArray , traditional ) => {
2019-11-25 18:56:39 +07:00
let i , iterateParent = [ ]
2019-11-25 15:26:37 +01:00
Object . keys ( values ) . forEach ( i => {
if ( typeof values [ i ] == "object" )
{
2019-11-25 18:56:39 +07:00
iterateParent = parent . slice ( )
iterateParent . push ( i )
iterateValues ( values [ i ] , iterateParent , form , Array . isArray ( values [ i ] ) , traditional )
2019-11-25 15:26:37 +01:00
}
else
{
2019-11-25 18:56:39 +07:00
form . append ( getInput ( i , values [ i ] , parent , isArray , traditional ) )
}
} )
2019-11-25 15:26:37 +01:00
} ,
removeNulls = values => {
const propNames = Object . getOwnPropertyNames ( values )
for ( let i = 0 ; i < propNames . length ; i ++ )
{
2019-11-25 18:56:39 +07:00
let propName = propNames [ i ]
2019-11-25 15:26:37 +01:00
if ( values [ propName ] === null || values [ propName ] === undefined )
{
2019-11-25 18:56:39 +07:00
delete values [ propName ]
2019-11-25 15:26:37 +01:00
}
else if ( typeof values [ propName ] == "object" )
{
2019-11-25 18:56:39 +07:00
values [ propName ] = removeNulls ( values [ propName ] )
2019-11-25 15:26:37 +01:00
}
else if ( values [ propName ] . length < 1 )
{
2019-11-25 18:56:39 +07:00
delete values [ propName ]
}
}
return values
}
} ( window . jQuery || window . Zepto || window . jqlite ) )
2019-11-25 15:26:37 +01:00
} )
2019-11-25 18:56:39 +07:00
}
2019-05-08 13:40:46 +02:00
//Safelink Wordpress Plugin
2019-11-25 15:41:05 +01:00
ifElement ( ".wpsafe-top > form > input.btn.btn-primary[type='submit'][value]" , i => {
i . click ( )
finish ( )
} )
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-11-02 16:12:37 +01:00
ifElement ( "form[action*='?safelink_redirect=']" , f => { //#557
let url = new URL ( f . action ) . searchParams . get ( "safelink_redirect" )
if ( url . substr ( 0 , 23 ) == "http://blankrefer.com/?" )
{
url = url . substr ( 23 )
}
safelyNavigate ( url )
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" ) && (
2019-11-09 06:41:38 +01:00
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 ( )
}
2019-11-23 07:36:51 +01:00
if ( document . querySelector ( "a#btn-main.disabled" ) && typeof Countdown == "function" ) //cpmlink.net
2019-05-08 13:40:46 +02:00
{
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-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-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-11-23 06:22:31 +01:00
ifElement ( "button#link-success-button[data-url]" , b => {
location . href = b . getAttribute ( "data-url" )
finish ( )
} )
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-11-23 06:15:57 +01:00
domainBypass ( /(semawur|bercara)\\.com|in11\\.site/ , ( ) => 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 )
2019-11-23 06:15:57 +01:00
} , ( ) => crowdPath ( location . hash . substr ( 1 ) ) )
2019-08-06 18:38:10 +02:00
} )
2019-11-23 06:15:57 +01:00
domainBypass ( /(atv|adlink)\\.pw|safe\\.mirrordown\\.com|kabarviral\\.blog|lewat\\.club/ , ( ) => crowdPath ( location . search . substr ( 1 ) . split ( "=" ) [ 0 ] ) )
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-11-23 06:15:57 +01:00
domainBypass ( /123l\\.pw|123link|oke\\.io/ , ( ) => 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 )
2019-11-23 06:15:57 +01:00
setTimeout ( ( ) => clearInterval ( dT ) , 10000 )
2019-05-08 13:40:46 +02:00
} ) `
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-11-23 08:57:35 +01:00
else if ( document . documentElement . hasAttribute ( message _channel . crowd _domain ) )
{
domain = document . documentElement . getAttribute ( message _channel . crowd _domain )
document . documentElement . removeAttribute ( message _channel . crowd _domain )
}
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
}