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-01-20 20:11:09 +01:00
let 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
}
2018-11-11 15:54:54 +01:00
let script = document . createElement ( "script" )
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 ) } } ,
//Copying eval, etc. to prevent issues with other extensions, such as uBlockOrigin. Also, note that this is the page level, so there are no security risks in using eval.
eval = window . eval , 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
} )
2018-12-30 12:25:26 +01: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-05-08 13:40:46 +02:00
location . href = "https://universal-bypass.org/before-navigate?target=" + encodeURIComponent ( target )
//The background script will intercept the request and redirect to html/before-navigate.html or to the target depending on the user's settings.
} ,
safelyNavigate = target => {
if ( navigated || ! isGoodLink ( target ) )
{
return false
}
bypassed = true
let url
try { url = new URL ( target ) } catch ( e ) { }
if ( ! url || ! url . hash )
{
target += location . hash
}
unsafelyNavigate ( target )
return true
} ,
finish = ( ) => {
bypassed = true
document . documentElement . setAttribute ( "data-universal-bypass-stop-watching" , "" )
} ,
domainBypass = ( domain , f ) => {
if ( ! bypassed && ( location . hostname == domain || location . hostname . substr ( location . hostname . length - ( domain . length + 1 ) ) == "." + domain ) )
2019-01-11 19:28:26 +01:00
{
f ( )
}
2019-05-08 13:40:46 +02:00
} ,
hrefBypass = ( regex , f ) => {
if ( ! bypassed && regex . test ( location . href ) )
2019-01-11 19:28:26 +01:00
{
2019-05-08 13:40:46 +02:00
f ( )
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-05-30 03:24:31 +02:00
crowdPath = p => {
if ( crowdEnabled )
{
document . documentElement . setAttribute ( "data-universal-bypass-crowd-path" , p )
}
} ,
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-05-08 13:40:46 +02:00
if ( location . href . substr ( location . href . length - 18 ) == "#ignoreCrowdBypass" )
2018-12-30 12:25:26 +01:00
{
2019-05-08 13:40:46 +02:00
document . querySelectorAll ( "form[action]" ) . forEach ( e => e . action += "#ignoreCrowdBypass" )
document . querySelectorAll ( "a[href]" ) . forEach ( e => e . href += "#ignoreCrowdBypass" )
history . pushState ( { } , document . querySelector ( "title" ) . textContent , location . href . substr ( 0 , location . href . length - 18 ) )
f ( )
2018-12-30 12:25:26 +01:00
}
else
{
2019-05-08 13:40:46 +02:00
document . documentElement . setAttribute ( "data-universal-bypass-crowd-query" , "" )
let iT = setInterval ( ( ) => {
if ( document . documentElement . hasAttribute ( "data-universal-bypass-crowd-queried" ) )
{
2019-06-01 05:13:19 +02:00
clearInterval ( iT )
2019-05-08 13:40:46 +02:00
document . documentElement . removeAttribute ( "data-universal-bypass-crowd-queried" )
f ( )
}
} , 20 )
2018-12-30 12:25:26 +01: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 )
{
document . documentElement . setAttribute ( "data-universal-bypass-crowd-contribute" , target )
setTimeout ( ( ) => {
unsafelyNavigate ( target )
} , 10 )
}
else
{
unsafelyNavigate ( target )
}
}
}
var navigated = false ,
bypassed = false ,
domain = location . hostname
if ( domain . substr ( 0 , 4 ) == "www." )
{
domain = domain . substr ( 4 )
}
ODP ( window , "blurred" , {
value : false ,
writable : false
} )
//adf.ly
ODP ( window , "ysmm" ,
{
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
} ,
get : ( ) => 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 ]
} )
}
//YetiShare
let actual _web _root
ODP ( window , "WEB_ROOT" , {
set : v => {
ODP ( window , "seconds" , {
value : 0 ,
writable : false
} )
actual _web _root = v
} ,
get : ( ) => actual _web _root
2018-05-29 19:11:25 +02:00
} )
2019-05-08 13:40:46 +02:00
//Shorte.st
2019-05-18 23:04:42 +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-05-08 13:40:46 +02:00
hrefBypass ( /ur\\.ly|urly\\.mobi/ , ( ) => {
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 ( "cshort.org" , ( ) => {
ODP ( window , "adblock" , {
value : false ,
writable : false
} )
ODP ( window , "i" , {
value : 0 ,
writable : false
} )
ensureDomLoaded ( ( ) =>
{
let lT = setInterval ( ( ) =>
{
if ( document . querySelector ( ".next[href]" ) )
{
clearInterval ( lT )
safelyNavigate ( atob ( atob ( document . querySelector ( ".next[href]" ) . getAttribute ( "href" ) ) ) )
}
} , 100 )
} )
2018-06-11 06:43:52 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "link.tl" , ( ) => {
ODP ( window , "countdown" , {
value : 0 ,
writable : false
} )
let lT = setInterval ( ( ) =>
{
if ( document . querySelector ( ".skip > .btn" ) )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( lT )
document . querySelector ( ".skip > .btn" ) . click ( )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
} , 100 )
} )
domainBypass ( "onepiece-ex.com.br" , ( ) => {
ODP ( window , "seconds" , {
value : 1 ,
writable : false
} )
let lT = setInterval ( ( ) => {
if ( document . getElementById ( "continuar" ) )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( lT )
safelyNavigate ( document . getElementById ( "continuar" ) . href )
2019-04-30 00:12:26 +02:00
}
2018-06-11 06:43:52 +02:00
} , 100 )
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
} )
let lT = setInterval ( ( ) => {
if ( document . querySelector ( ".download_button" ) )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( lT )
safelyNavigate ( document . querySelector ( ".download_button" ) . href )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
} , 100 )
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-05-08 13:40:46 +02:00
domainBypass ( "mylink.zone" , ( ) => {
ODP ( window , "seconde" , {
set : _ => { } ,
get : ( ) => {
return - 1
}
} )
2019-04-30 00:12:26 +02:00
} )
2019-05-08 13:40:46 +02:00
domainBypass ( "sourceforge.net" , ( ) => {
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 ( ( ) => {
window . eval = c => {
let j = eval ( c )
if ( j . message && j . message . url )
{
contributeAndNavigate ( j . message . url )
return { }
}
return j
}
} )
let sT = setInterval ( ( ) => {
let a = document . querySelector ( ".skip_btt > #skip_btt" )
if ( a )
{
clearInterval ( sT )
a . click ( )
}
} , 50 )
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-05-08 13:40:46 +02:00
//Insertion point 1 — insert bypasses running before the DOM is loaded above this comment
2019-06-01 20:56:48 +02:00
hrefBypass ( / 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 )
} )
hrefBypass ( /uploadrar\\.com|longfiles\\.com|datei\\.to|id-share19\\.com/ , ( ) => {
window . setTimeout = f => setTimeout ( f , 1 )
} )
if ( bypassed )
{
return
}
ensureDomLoaded ( ( ) => {
domainBypass ( "adfoc.us" , ( ) => {
let b = document . querySelector ( ".skip[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "sub2unlock.com" , ( ) => {
if ( location . pathname . substr ( 0 , 10 ) == "/link/get/" )
{
safelyNavigate ( document . getElementById ( "link" ) . href )
}
else
{
let f = document . getElementById ( "getLinkNow" )
if ( f )
document . getElementById ( "getLinkNow" ) . submit ( )
}
} )
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" , ( ) => {
let f = document . querySelector ( ".edit_link" )
if ( f )
{
f . submit ( )
}
} )
domainBypass ( "ysear.ch" , ( ) => {
let b = document . querySelector ( "#NextVideo[href]" )
if ( b )
{
safelyNavigate ( b . href )
}
} )
hrefBypass ( /1ink\\.(cc|live)/ , ( ) => {
if ( typeof SkipAd == "function" )
{
SkipAd ( )
}
} )
domainBypass ( "losstor.com" , ( ) => {
let b = document . getElementById ( "re_link" )
2019-04-30 00:12:26 +02:00
if ( b )
{
window . open = safelyNavigate
2019-05-08 13:40:46 +02:00
b . click ( )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "fshare.vn" , ( ) => {
if ( "$" in window )
{
let f = $ ( "#form-download" )
if ( f . length )
{
$ . ajax ( {
"url" : f . attr ( "action" ) ,
"type" : "POST" ,
"data" : f . serialize ( )
} ) . done ( data => safelyNavigate ( data . url ) )
}
}
} )
domainBypass ( "dwindly.io" , ( ) => {
let b = document . getElementById ( "btd1" )
if ( b )
2019-04-30 00:12:26 +02:00
{
window . open = ( ) => { }
2019-05-08 13:40:46 +02:00
b . click ( )
}
else
{
b = document . getElementById ( "btd" )
if ( b )
{
window . open = safelyNavigate
eval ( "(" + b . onclick . toString ( ) . split ( ";" ) [ 0 ] + "})()" )
}
}
} )
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 )
setInterval ( ( ) => clearInterval ( bT ) , 10000 )
} )
domainBypass ( "hidelink.club" , ( ) => {
if ( hash )
safelyNavigate ( decodeURIComponent ( atob ( hash ) ) . replace ( "%23" , "#" ) )
} )
domainBypass ( "won.pe" , ( ) =>
{
if ( document . querySelector ( ".captcha_loader .progress-bar" ) )
document . querySelector ( ".captcha_loader .progress-bar" ) . setAttribute ( "aria-valuenow" , "100" )
} )
domainBypass ( "stealive.club" , ( ) => {
if ( document . getElementById ( "counter" ) )
document . getElementById ( "counter" ) . innerHTML = "0"
} )
domainBypass ( "gotoo.loncat.in" , ( ) => {
let a = document . querySelector ( "a[href^='http://gotoo.loncat.in/go.php?open=']" )
if ( a )
safelyNavigate ( a . href )
} )
domainBypass ( "idnation.net" , ( ) => {
let b = document . querySelector ( "#linko[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "mazika2day.com" , ( ) => {
let b = document . querySelector ( ".linkbtn[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "ux9.de" , ( ) => {
let m = document . querySelector ( "meta[http-equiv='refresh'][content]" )
if ( m && m . content . indexOf ( ";url=http" ) )
{
safelyNavigate ( m . content . split ( ";url=" ) [ 1 ] )
}
} )
domainBypass ( "telolet.in" , ( ) => {
let b = document . querySelector ( "a#skip[href]" )
if ( ! b )
b = document . querySelector ( ".redirect_url > a[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "vipdirect.cc" , ( ) => {
if ( typeof ab == "number" && typeof asdf == "function" )
{
ab = 5
window . open = safelyNavigate
asdf ( )
}
} )
domainBypass ( "rapidcrypt.net" , ( ) => {
let b = document . querySelector ( ".push_button.blue[href]" )
if ( b )
safelyNavigate ( b . href )
} )
domainBypass ( "shrink-service.it" , ( ) => {
if ( typeof $ == "function" && typeof $ . ajax == "function" && typeof screenApi == "function" )
{
let _a = $ . ajax
$ . ajax = a => ( a . data && a . data . set _one ? safelyNavigate ( atob ( a . data . set _one ) ) : _a ( a ) )
screenApi ( )
}
} )
domainBypass ( "rom.io" , ( ) => crowdBypass ( ( ) => {
let cT = setInterval ( ( ) => {
let a = document . querySelector ( "a.final-button[href]" )
if ( a && isGoodLink ( a . href ) )
{
clearInterval ( cT )
a . parentNode . removeChild ( a )
contributeAndNavigate ( a . href )
}
} , 50 )
} ) )
domainBypass ( "show.co" , ( ) => {
let s = document . getElementById ( "show-campaign-data" )
if ( s )
{
let d = JSON . parse ( s . textContent )
if ( d && "title" in d && "unlockable" in d )
{
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 ( )
}
} )
domainBypass ( "runtyurl.com" , ( ) => {
let b = document . getElementById ( "go_next" )
if ( b && isGoodLink ( b . href ) )
{
location . href = b . href
}
else
{
b = document . getElementById ( "download" )
if ( b )
{
safelyNavigate ( b . href )
}
}
} )
hrefBypass ( / 4 s n i p \ \ . p w \ \ / o u t \ \ / / , ( ) = > {
let f = document . querySelector ( "form[action^='../out2/']" )
f . setAttribute ( "action" , f . getAttribute ( "action" ) . replace ( "../out2/" , "../outlink/" ) )
f . submit ( )
} )
domainBypass ( "douploads.com" , ( ) => {
if ( document . querySelectorAll ( ".seconds" ) . length == 1 )
document . querySelector ( ".seconds" ) . textContent = "1"
} )
domainBypass ( "elsfile.org" , ( ) => {
let form = document . createElement ( "form" )
form . method = "POST"
2019-05-30 03:24:31 +02:00
form . innerHTML = '<input type="hidden" name="op" value="download1"><input type="hidden" name="usr_login" value="C"><input type="hidden" name="id" value="' + location . pathname . 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">'
2019-05-08 13:40:46 +02:00
form = document . documentElement . appendChild ( form )
form . submit ( )
return finish ( )
} )
domainBypass ( "goou.in" , ( ) => {
let a = document . querySelector ( "div#download_link > a#download[href]" )
if ( a )
{
safelyNavigate ( a . href )
}
} )
domainBypass ( "skinnycat.org" , ( ) => {
let a = document . querySelector ( "a.redirect[href]" )
if ( a )
{
safelyNavigate ( a . href )
}
} )
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" , ( ) => {
let a = document . querySelector ( "#post_download > a[onclick]" )
if ( a )
{
redireciona = safelyNavigate
a . onclick ( )
}
} )
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 )
if ( json . paste )
{
safelyNavigate ( json . paste . url )
}
}
xhr . open ( "GET" , location . pathname + ".json" )
document . cookie = "referrer=1"
xhr . send ( )
} )
hrefBypass ( /ouo\\.(io|press)/ , ( ) => {
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
} )
hrefBypass ( /tetew\\.info|siherp\\.com/ , ( ) => {
let a = document . querySelector ( "div.download-link > a[href]" )
if ( a )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
let u = new URL ( a . href )
if ( u . searchParams . has ( "r" ) )
2019-04-30 00:12:26 +02:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( atob ( u . searchParams . get ( "r" ) ) )
2019-04-30 00:12:26 +02:00
}
2019-05-08 13:40:46 +02:00
else
2018-12-08 13:33:32 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( a . href )
2018-12-08 13:33:32 +01:00
}
}
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "drivehub.link" , ( ) => {
let a = document . querySelector ( "a#proceed[href]" )
if ( a )
safelyNavigate ( a . href )
} )
domainBypass ( "oxy.cloud" , ( ) => {
2019-05-13 22:16:23 +02:00
location . href = new URL ( document . querySelector ( "#divdownload > a[href]" ) . href ) . searchParams . get ( "predirect" )
2019-05-08 13:40:46 +02:00
} )
domainBypass ( "linkduit.net" , ( ) => {
2019-06-01 05:42:18 +02:00
safelyNavigate ( document . querySelector ( "h1" ) . textContent )
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
} )
domainBypass ( "teknosafe.teknologilink.com" , ( ) => {
safelyNavigate ( document . querySelector ( "#templatemo_content > div > a[href]" ) . 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-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-05-08 13:40:46 +02:00
if ( typeof changeLink == "function" )
{
let cLT = setInterval ( ( ) => {
if ( ( document . querySelector ( "img#pleasewait" ) && document . querySelector ( ".wait" ) )
|| document . getElementById ( "showlink" )
|| document . getElementById ( "download" )
|| document . getElementsByTagName ( "style='margin-top:" ) . length
|| document . querySelector ( ".Visit_Link" ) //yametesenpai.xyz
|| document . getElementById ( "daplong" ) //converthinks.xyz
)
{
clearInterval ( cLT )
let _open = window . open
window . open = l => {
if ( l . substr ( 0 , 22 ) == "https://api.rurafs.me/" )
{
window . open = _open
}
else
{
safelyNavigate ( l )
}
}
if ( typeof changeLink == "function" )
2019-03-11 18:16:49 +01:00
{
2019-05-08 13:40:46 +02:00
changeLink ( )
2019-03-11 18:16:49 +01:00
}
2019-05-08 13:40:46 +02:00
else if ( document . getElementById ( "link-download" ) ) //hightech.web.id
2019-03-11 18:16:49 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( document . getElementById ( "link-download" ) . href )
2019-03-11 18:16:49 +01:00
}
}
2019-05-08 13:40:46 +02:00
} , 100 )
}
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
if ( document . querySelector ( ".wp-safelink-button" ) )
{
window . setInterval = f => setInterval ( f , 1 )
let lT = setInterval ( ( ) => {
if ( document . querySelector ( ".wp-safelink-button.wp-safelink-success-color" ) )
2019-03-06 14:32:59 +01:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( lT )
window . open = safelyNavigate
document . querySelector ( ".wp-safelink-button.wp-safelink-success-color" ) . click ( )
2019-03-06 14:32:59 +01:00
}
2019-05-08 13:40:46 +02:00
} , 100 )
}
if ( document . getElementById ( "wpsafe-generate" ) && typeof wpsafegenerate == "function" )
{
let a = document . querySelector ( "#wpsafegenerate > #wpsafe-link > a[href]" )
if ( a )
{
safelyNavigate ( a . href )
return finish ( )
2019-03-06 14:32:59 +01:00
}
2019-05-08 13:40:46 +02:00
else
2018-07-18 22:07:19 +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 ( )
}
}
2018-07-18 22:07:19 +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
}
//GemPixel/KBRMedia Premium URL Shortener
if ( typeof appurl == "string" && typeof token == "string" )
{
let 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\\\);/
document . querySelectorAll ( "script" ) . forEach ( script => {
let matches = regex . exec ( script . textContent )
if ( matches && matches [ 5 ] )
2018-11-20 09:58:17 +01:00
{
2019-05-08 13:40:46 +02:00
safelyNavigate ( matches [ 5 ] )
2018-11-20 09:58:17 +01:00
}
2019-05-08 13:40:46 +02:00
} )
if ( ! bypassed )
{
hrefBypass ( /al\\.ly|ally\\.sh|dausel\\.co/ , ( ) => {
let e = document . getElementById ( "html_element" )
if ( e )
{
let m = document . getElementById ( "messa" )
if ( m )
{
m . parentNode . removeChild ( m )
}
e . classList . remove ( "hidden" )
}
} )
2018-10-18 01:30:48 +02:00
}
2018-06-15 21:35:23 +02: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
if ( document . querySelector ( ".timed-content-client_show_0_30_0" ) ) //technicoz.com
{
document . querySelector ( ".timed-content-client_show_0_30_0" ) . classList . remove ( "timed-content-client_show_0_30_0" )
return finish ( )
}
if ( document . getElementById ( "getlink" ) && document . getElementById ( "gotolink" ) && document . getElementById ( "timer" ) ) //tetewlink.me,vehicle-techno.cf
{
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
{
let b = document . querySelector ( "#download > a.akani[href]" )
if ( b )
{
safelyNavigate ( b . href )
2019-03-06 06:31:51 +01:00
}
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-05-08 13:40:46 +02:00
if ( document . querySelector ( ".top-bar a[href='https://linkvertise.net']" ) && typeof app != "undefined" && app . handleRedirect ) //Linkvertise.net
2018-12-30 12:25:26 +01:00
{
2019-05-08 13:40:46 +02:00
app . countdown = 0
$ . post = ( u , c ) => c ( )
app . handleRedirect ( )
2018-12-30 12:25:26 +01:00
}
2019-05-08 13:40:46 +02:00
if ( document . querySelectorAll ( "img[src='/assets/img/logo.png'][alt='Openload']" ) . length ) //OpenLoad
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-05-08 13:40:46 +02:00
let t = document . querySelector ( "title" )
if ( 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-06-01 05:32:33 +02:00
let b = document . getElementById ( "link-success-button" )
if ( b && b . getAttribute ( "data-url" ) )
{
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 ;
default :
{
let b = document . querySelector ( "a#makingdifferenttimer[href]" )
if ( b )
2019-05-08 13:40:46 +02:00
{
2019-06-01 05:32:33 +02:00
if ( isGoodLink ( t ) )
{
unsafelyNavigate ( t )
}
else
{
safelyNavigate ( b . href )
}
2019-05-08 13:40:46 +02:00
}
2019-02-02 22:00:42 +01:00
}
}
}
2019-05-08 13:40:46 +02:00
//Monitor DOM for disturbances for 3 seconds.
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-05-30 03:24:31 +02:00
if ( ( document . querySelector ( ".navbar-brand" ) && document . querySelector ( ".navbar-brand" ) . textContent == "SafelinkU" ) || ( document . querySelector ( "b[style='color: #3e66b3']" ) && document . querySelector ( "b[style='color: #3e66b3']" ) . textContent == "SafelinkU" ) )
{
//SafelinkU
window . setInterval = f => setInterval ( f , 10 )
if ( location . search . substr ( 0 , 3 ) == "?a=" )
{
crowdPath ( location . search . substr ( 3 ) )
}
}
2019-05-08 13:40:46 +02:00
document . documentElement . setAttribute ( "data-universal-bypass-adlinkfly-info" , "" )
let iT = setInterval ( ( ) => {
if ( document . documentElement . hasAttribute ( "data-universal-bypass-adlinkfly-target" ) )
2019-01-01 18:43:20 +01:00
{
2019-05-08 13:40:46 +02:00
clearInterval ( iT )
let t = document . documentElement . getAttribute ( "data-universal-bypass-adlinkfly-target" )
if ( t == "" )
{
crowdBypass ( ( ) => {
let cT = setInterval ( ( ) => {
let a = document . querySelector ( "a.get-link" )
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-05-17 03:53:57 +02:00
hrefBypass ( /123l\\.pw|123link|oke\\.io/ , ( ) => {
window . setInterval = f => setInterval ( f , 1 )
} )
2019-05-08 13:40:46 +02:00
clearInterval ( dT )
}
} , 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-02-17 13:15:59 +01:00
if ( document . documentElement . hasAttribute ( "data-universal-bypass-stop-watching" ) )
{
document . documentElement . removeAttribute ( "data-universal-bypass-stop-watching" )
dO . disconnect ( )
}
2019-05-30 03:24:31 +02:00
else if ( document . documentElement . hasAttribute ( "data-universal-bypass-crowd-path" ) )
{
crowdPath = document . documentElement . getAttribute ( "data-universal-bypass-crowd-path" )
document . documentElement . removeAttribute ( "data-universal-bypass-crowd-path" )
}
2019-02-17 13:15:59 +01:00
else if ( document . documentElement . hasAttribute ( "data-universal-bypass-crowd-query" ) )
{
document . documentElement . removeAttribute ( "data-universal-bypass-crowd-query" )
let xhr = new XMLHttpRequest ( )
xhr . onreadystatechange = ( ) => {
if ( xhr . readyState == 4 && xhr . status == 200 && xhr . responseText != "" )
{
2019-03-03 03:24:08 +01:00
location . href = "https://universal-bypass.org/crowd-bypassed?target=" + encodeURIComponent ( xhr . responseText ) + "&back=" + encodeURIComponent ( location . href )
//The background script will intercept the request and redirect to html/crowd-bypassed.html
2019-02-17 13:15:59 +01:00
}
2019-05-08 13:40:46 +02:00
else
{
document . documentElement . setAttribute ( "data-universal-bypass-crowd-queried" , "" )
}
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
}
else if ( document . documentElement . hasAttribute ( "data-universal-bypass-crowd-contribute" ) )
{
2019-05-30 03:24:31 +02:00
const target = document . documentElement . getAttribute ( "data-universal-bypass-crowd-contribute" )
2019-02-17 13:15:59 +01:00
document . documentElement . removeAttribute ( "data-universal-bypass-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
}
else if ( document . documentElement . hasAttribute ( "data-universal-bypass-adlinkfly-info" ) )
2019-01-11 19:28:26 +01:00
{
document . documentElement . removeAttribute ( "data-universal-bypass-adlinkfly-info" )
2019-04-13 09:11:13 +02:00
let port = brws . runtime . connect ( { name : "adlinkfly-info" } )
port . onMessage . addListener ( msg => {
document . documentElement . setAttribute ( "data-universal-bypass-adlinkfly-target" , msg )
port . disconnect ( )
2019-04-02 12:13:14 +02:00
} )
2019-04-13 09:11:13 +02:00
port . postMessage ( location . href )
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
}