Universal-Bypass/content_script.js
Tim Speckhals 016ca76ba2
5.2.1
2018-07-04 22:49:12 +02:00

831 lines
26 KiB
JavaScript

if(document instanceof HTMLDocument)
{
let injectionCode=()=>{
let msgs={},//The translated messages will be loaded in this object for use with the notifications.
ODP=Object.defineProperty,ev=window.eval,sT=window.setTimeout,sI=window.setInterval,//We're cloning these functions to avoid problems with uBlockOrigin, etc.
navigated=false,//We only want to navigate once, e.g. to avoid issues with window.open being called multiple times on some sites.
safelyNavigate=(target)=>{
if(!navigated&&target&&target!=location.href)
{
navigated=true
debugger//Don't want to navigate away just yet when dev tools are open
window.onbeforeunload=null
location.href=target
}
},
bypassed=false,//We keep track if we have already executed a bypass to stop all checks
domainBypass=(domain,func)=>{
if(!bypassed&&(location.hostname==domain||location.hostname.substr(location.hostname.length-(domain.length+1))=="."+domain))
{
func()
bypassed=true
}
},
hrefBypass=(hrefregex,func)=>{
if(!bypassed&&hrefregex.test(location.href))
{
func()
bypassed=true
}
},
ensureDomLoaded=(func)=>{
if(["interactive","complete"].indexOf(document.readyState)>-1)
func()
else document.addEventListener("DOMContentLoaded",()=>sT(func,1))
},
showNotification=(msg)=>ensureDomLoaded(()=>{//I think this is the only way to transfer data between the injection script and content script which is efficient enough to work with Universal Bypass.
if(document.getElementById("UNIVERSAL_BYPASS_NO_NOTIFICATIONS"))
return
let div=document.createElement("div")
div.setAttribute("style","position:fixed;right:0;bottom:0;box-shadow:0 0 10px 0 rgba(0,0,0,0.75);color:#000;background:#fff;overflow:hidden;border-radius:3px;padding:10px;margin:20px;z-index:100000;line-height:16px;font-size:18px;font-family:sans-serif;direction:ltr")
div.innerHTML="<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDwAACw8BkvkDpQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAAFnSURBVDhPY8AFdAJr1ugEVr/WD6gygwqRBnSCau63LD7wXz+k9qNOQK0lVJh4ADJg55WX/2duvwg0pO6TdlCtNVSKOAAz4NyLXxBDgms/6wVU20ClEUA3sCZEN6hmPwxrB9aagsSB/r81fet5sAFwQ0KwGKIXWC+mHVztAMNaofU8YHGgQgOgBpBGgobgAiCFIKcTNEQvsFJHN7C6RzewqhcZ6wXXmgNpC6Ahb+fuvgI3ZBbQEIOQus9a/lUGYAN0gyqUgAY0oGPtwBp9nYBKe5PIps/LD9+GGzB181lQoD7XCqlQARuACwAD2A+o+duKo3fgmieuP/Uf6LLnOkGVGmBFIFOAoZ+AjnUCqiuAmn8ja+5dc/y/XlANQjMI6AZVu+gE1s5Hx0AvfF6w9xpcc9fKo/+BBqNqxgeQE1LH8sOkaQYBmAEdy4CaA6tJ0wwCIAOKJm8iTzMIALPzNJ2g6hv4NTMwAAD+oRymmiME5wAAAABJRU5ErkJggg==\"> "+msg
div=document.body.appendChild(div)
sT(()=>{
document.body.removeChild(div)
},5000)
})
let actual_app_vars
ODP(this,"app_vars",{//
set:(v)=>{
actual_app_vars=v
ODP(this,"blurred",{
value:false,
writable:false
})
//SafelinkU
if(document.querySelector("b[style='color: #3e66b3']")&&document.querySelector("b[style='color: #3e66b3']").textContent=="SafelinkU")
{
bypassed=true
window.setInterval=(f)=>{
showNotification(msgs.timerSkip)
return sI(f,10)
}
let lT=sI(()=>{
if(document.querySelector("a.btn.btn-primary.btn-lg.get-link[href]")&&document.querySelector("a.btn.btn-primary.btn-lg.get-link[href]").getAttribute("href").substr(0,11)!="javascript:")
{
clearInterval(lT)
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector("a.btn.btn-primary.btn-lg.get-link[href]").href)
}
},100)
}
else if(!document.querySelector("b[style='color : #3e66b3']")||document.querySelector("b[style='color: #3e66b3']").textContent!="Shortener url?")
{
//AdLinkFly
showNotification(msgs.backend)
}
},
get:()=>actual_app_vars
})
ODP(this,"ysmm",//Adf.ly
{
set:(r)=>{
let I=X=""
for(let m=0;m<r.length;m++)
if(m%2==0)I+=r.charAt(m);else X=r.charAt(m)+X
r=I+X
let U=r.split("")
for(m=0;m<U.length;m++)if(!isNaN(U[m]))for(let R=m+1;R<U.length;R++)
if(!isNaN(U[R])){let S=U[m]^U[R];if(S<10)U[m]=S;m=R;R=U.length}
r=U.join("")
r=atob(r)
r=r.substring(r.length-(r.length-16))
r=r.substring(0,r.length-16)
if(r&&(r.indexOf("http://")==0||r.indexOf("https://")==0))
{
showNotification(msgs.timerSkip)
safelyNavigate(r)
}
}
})
//LinkBucks
var actualInitLbjs
ODP(this,"initLbjs",{
set:(_)=>actualInitLbjs=_,
get:()=>(a,p)=>{
p.Countdown--
actualInitLbjs(a,p)
showNotification(msgs.timerLeap.replace("%secs%","1"))
}
})
//Safelink
let actual_safelink=forced_safelink={counter:0}
ODP(this,"safelink",
{
set:(_)=>{
ODP(window,"blurred",{
value:false,
writable:false
})
for(let k in _)
{
let v=_[k]
if(forced_safelink[k]===undefined)
actual_safelink[k]=v
}
showNotification(msgs.timerSkip)
},
get:()=>actual_safelink
})
for(let key in forced_safelink)
{
ODP(safelink,key,
{
writable:false,
value:forced_safelink[key]
})
}
//YetiShare
let actual_web_root
ODP(this,"WEB_ROOT",{
set:(v)=>{
ODP(this,"seconds",{
value:0,
writable:false
})
actual_web_root=v
},
get:()=>actual_web_root
})
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)
})
domainBypass("cshort.org",()=>{
ODP(this,"adblock",{
value:false,
writable:false
})
ODP(this,"i",{
value:0,
writable:false
})
ensureDomLoaded(()=>
{
let lT=sI(()=>
{
if(document.querySelector(".next[href]"))
{
clearInterval(lT)
showNotification(msgs.timerSkip)
safelyNavigate(atob(atob(document.querySelector(".next[href]").getAttribute("href"))))
}
},100)
})
})
domainBypass("link.tl",()=>{
ODP(this,"countdown",{
value:0,
writable:false
})
let lT=sI(()=>
{
if(document.querySelector(".skip > .btn"))
{
showNotification(msgs.timerSkip)
document.querySelector(".skip > .btn").click()
}
},100)
})
domainBypass("onepiece-ex.com.br",()=>{
ODP(this,"seconds",{
value:1,
writable:false
})
let lT=sI(()=>{
if(document.getElementById("continuar"))
{
clearInterval(lT)
showNotification(msgs.timerSkip)
safelyNavigate(document.getElementById("continuar").href)
}
},100)
})
domainBypass("akoam.net",()=>{
ODP(this,"timer",{
value:0,
writable:false
})
let lT=sI(()=>{
if(document.querySelector(".download_button"))
{
clearInterval(lT)
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector(".download_button").href)
}
},100)
})
hrefBypass(/1v\.to\/t\/.*/,()=>{
location.pathname=location.pathname.split("/t/").join("/saliendo/")
})
domainBypass("share-online.biz",()=>{
ODP(this,"wait",{
set:(_)=>{},
get:()=>{
showNotification(msgs.timerLeap.replace("%secs%","13"))
return 2
}
})
})
hrefBypass(/sfile\.(mobi|xyz)/,()=>{
ODP(this,"downloadButton",{
set:function(b)
{
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
}
})
})
domainBypass("mylink.zone",()=>{
ODP(this,"seconde",{
set:(_)=>{},
get:()=>{
showNotification(msgs.timerSkip)
return -1
}
})
})
domainBypass("sourceforge.net",()=>{
var b=document.createElement("button"),d=false
b.className="direct-download"
b.style.display="none"
document.documentElement.appendChild(b)
ODP(this,"log",{
value:(m)=>{
console.log(m)
if(m=="triggering downloader:start")
{
showNotification(msgs.timerSkip)
d=true
}
},
writable:false
})
ensureDomLoaded(()=>{
let bT=sI(()=>{
if(d)
clearInterval(bT)
else b.click()
},100)
})
})
domainBypass("bc.vc",()=>{
window.setInterval=(f)=>{
showNotification(msgs.timerLeap.replace("%secs%","1"))
return sI(f,800)
}
})
domainBypass("shortly.xyz",()=>{
if(location.pathname.substr(0,3)=="/r/")
document.getElementById=()=>({submit:()=>{
let f=document.querySelector("form")
f.action="/link#"+document.querySelector("input[name='id']").value
f.submit()
}})
else if(location.pathname=="/link")
{
let xhr=new XMLHttpRequest()
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200)
{
showNotification(msgs.timerSkip)
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("#",""))
}
})
if(!bypassed)
ensureDomLoaded(()=>{
hrefBypass(/ouo\.(io|press)/,()=>showNotification(msgs.backend))
domainBypass("rom.io",()=>showNotification(msgs.backend))
domainBypass("adfoc.us",()=>{
let b=document.querySelector(".skip")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
})
domainBypass("linkshrink.net",()=>{
let p=document.getElementById("pause"),s=document.getElementById("skip")
if(p&&s)
{
p.style.display="none"
s.style.display="block"
showNotification(msgs.timerSkip)
}
})
domainBypass("sub2unlock.com",()=>{
$(document).ready(()=>{
let steps=document.querySelectorAll(".uk.unlock-step-link.check")
if(steps.length)
{
for(let i in steps)
if(i!=0&&steps[i] instanceof HTMLElement&&steps[i].className.substr(0,3)=="uk ")
steps[i].className = steps[i].className.substr(3)
steps[0].removeAttribute("target")
steps[0].setAttribute("href","#")
steps[0].click()
showNotification(msgs.timerSkip)
document.getElementById("link").click()
}
})
})
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.body.appendChild(f)
showNotification(msgs.timerSkip)
f.submit()
}
})
domainBypass("admy.link",()=>{
let f=document.querySelector(".edit_link")
if(f)
{
showNotification(msgs.timerSkip)
f.submit()
}
})
domainBypass("ysear.ch",()=>{
let b=document.getElementById("NextVideo")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
})
domainBypass("1ink.cc",()=>{
if(typeof SkipAd=="function")
{
showNotification(msgs.timerSkip)
SkipAd()
}
})
domainBypass("losstor.com",()=>{
let b=document.getElementById("re_link")
if(b)
{
window.open=safelyNavigate
showNotification(msgs.timerSkip)
b.click()
}
})
domainBypass("bagisoft.net",()=>{
let b=document.getElementById("makingdifferenttimer")
if(b)
{
window.open=safelyNavigate
showNotification(msgs.timerSkip)
b.click()
}
else
jQuery.prototype.animateProgress=(p,f)=>f()
})
domainBypass("skinnycat.net",()=>{
let b=document.getElementById("dl")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
})
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)=>{
showNotification(msgs.timerSkip)
safelyNavigate(data.url)
})
}
}
})
domainBypass("dwindly.io",()=>{
//We trick the site into running window.open for the target site by eval'ing the right onclick handler. Please note that eval is needed for this to work.
let b=document.getElementById("btd1")
if(b)
{
window.open=()=>{}
b.click()
}
else
{
b=document.getElementById("btd")
if(b)
{
window.open=safelyNavigate
ev("("+b.onclick.toString().split(";")[0]+"})()")
}
}
showNotification(msgs.timerSkip)
})
domainBypass("vpsat.net",()=>{
showNotification(msgs.timerSkip)
safelyNavigate(url)
})
domainBypass("bluemediafiles.com",()=>{
if(typeof FinishMessage=="string"&&FinishMessage.indexOf("<a href=")>-1)
{
showNotification(msgs.timerSkip)
//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 jT=sI(()=>{
if(typeof $=="function")
{
clearInterval(jT)
$(document).ready(()=>sT(()=>{
window.open=(h)=>({location:{href:h}})
window.setTimeout=(f)=>f()
let bs=document.querySelectorAll("[data-main-url]")
for(let i in bs)
{
let b=bs[i]
if(b instanceof HTMLElement)
b.click()
}
},100))
}
},100)
})
domainBypass("hidelink.club",()=>{
if(hash)
{
showNotification(msgs.timerSkip)
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")
showNotification(msgs.timerSkip)
}
})
domainBypass("stealive.club",()=>{
if(document.getElementById("counter"))
{
document.getElementById("counter").innerHTML="0"
showNotification(msgs.timerSkip)
}
})
hrefBypass(/(binerfile|pafpaf)\.info/,()=>{//KuroSafe
showNotification(msgs.timerSkip)
safelyNavigate(document.getElementById("mybutton").href)
})
domainBypass("gotoo.loncat.in",()=>{
safelyNavigate(document.querySelector("a[href^='http://gotoo.loncat.in/go.php?open=']").href)
showNotification(msgs.timerSkip)
})
domainBypass("id-share19.com",()=>{
let not=false
this.setTimeout=(f)=>{
if(!not)
{
showNotification(msgs.timerSkip)
not=true
}
return sT(f,1)
}
return
})
domainBypass("idnation.net",()=>{
let b=document.getElementById("linko")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
})
domainBypass("mazika2day.com",()=>{
let b=document.querySelector(".linkbtn")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
})
if(bypassed)
return
if(typeof appurl!="undefined"&&typeof token!="undefined")//GemPixel Premium URL Shortener
{
//For this bypass to work, we detect a certain inline script and we might have to modify and execute (eval) it. Please note that eval is needed for this to work.
let scripts=document.getElementsByTagName("script")
for(let i in scripts)
{
let script=scripts[i]
if(script instanceof HTMLScriptElement)
{
let cont=script.textContent
if(cont.indexOf('clearInterval(countdown);')>-1)
{
if(typeof countdown!="undefined")
clearInterval(countdown)
if(!document.querySelector("a.redirect"))
{
let a=document.createElement("a")
a.href="#"
a.className="redirect"
document.body.appendChild(a)
}
if(cont.indexOf("var count = ")>-1)
{
cont=cont.split(/var count = [0-9]*;/).join("let count=0;")
}
else
{
cont="let count=0;"+cont
}
cont=cont.split("$(window).on('load', ").join("let r=(f)=>f();r(")
window.setInterval=(f)=>f()
ev(cont)
window.setInterval=sI
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector("a.redirect").href)
return
}
else if(cont.trim().substr(0,69)=='!function(a){a(document).ready(function(){var b,c=a(".link-content"),')
{
showNotification(msgs.timerSkip)
safelyNavigate(cont.trim().substr(104).split('",e=0,f=a(".count-timer"),g=f.attr("data-timer"),h=setInterval(')[0])
}
}
}
if(document.getElementById("messa")&&document.getElementById("html_element"))//Ally Captcha
{
document.getElementById("messa").className+=" hidden"
document.getElementById("html_element").className=document.getElementById("html_element").className.split("hidden").join("").trim()
}
}
//Soralink Plugin
if(document.querySelector(".sorasubmit"))
{
showNotification(msgs.timerSkip)
document.querySelector(".sorasubmit").click()
return
}
if(typeof changeLink=="function"
||typeof bukalink=="function"//gosavelink.com
)
{
let cLT=sI(()=>{
if((document.querySelectorAll("img#pleasewait").length&&document.querySelector(".wait"))
||document.getElementById("showlink")
||document.getElementById("download")
||document.querySelector(".Visit_Link")//yametesenpai.xyz
||document.getElementsByTagName("style='margin-top:").length
)
{
clearInterval(cLT)
window.open=safelyNavigate
showNotification(msgs.timerSkip)
if(typeof changeLink=="function")
changeLink()
else if(typeof bukalink=="function")
bukalink()
if(document.getElementById("link-download"))//hightech.web.id
{
safelyNavigate(document.getElementById("link-download").href)
}
}
},100)
}
if(document.querySelector("#lanjut > #goes"))
{
let b=document.querySelector("#lanjut > #goes")
if(b&&b.href)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href)
}
return
}
if(document.getElementById("waktu")&&document.getElementById("goto"))
{
showNotification(msgs.timerSkip)
safelyNavigate(document.getElementById("goto").href)
return
}
//Other Templates
if(document.querySelector("a#btn-main.disabled")&&typeof Countdown=="function")//Croco,CPMLink,Sloomp.space
{
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector("a#btn-main.disabled").href)
return
}
if(document.querySelector("a.redirectBTN.disabled")&&document.querySelector(".timer"))//Arablionz.online
{
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector("a.redirectBTN.disabled").href)
return
}
if(document.querySelector(".shortened_link a[href][ng-href][target='_blank']"))//Go2to.com,Go2too.com,Golink.to
{
showNotification(msgs.timerSkip)
safelyNavigate(document.querySelector(".shortened_link a[href][ng-href][target='_blank']").href)
}
if(document.querySelector("form#skip")&&document.getElementById("btn-main")&&!document.querySelector(".g-recaptcha"))
{
showNotification(msgs.timerSkip)
document.querySelector("form#skip").submit()
return
}
if(document.getElementById("countdown")&&document.querySelector(".seconds"))
{
if(document.querySelector(".err")&&document.querySelector(".err").textContent=="Skipped countdown")//Mexashare.com
{
showNotification(msgs.backend)
}
else
{
showNotification(msgs.timerSkip)
document.querySelector(".seconds").textContent="0"
}
return
}
if(document.querySelector("#ddl #download_link .btn"))
{
showNotification(msgs.timerSkip)
window.open=safelyNavigate
document.querySelector("#ddl #download_link > .btn").click()
return
}
if(typeof file_download=="function")
{
window.setInterval=(f)=>{
showNotification(msgs.timerSkip)
return sI(f,1)
}
return
}
if(document.querySelector("input[type=\"submit\"][name=\"method_free\"]"))
{
showNotification(msgs.timerSkip)
document.querySelector("input[type=\"submit\"][name=\"method_free\"]").click()
return
}
if(document.getElementById("frmdlcenter")&&document.getElementById("pay_modes"))//elsfile.org Timer
{
let form=document.createElement("form")
form.method="POST"
form.innerHTML='<input type="hidden" name="op" value="download1"><input type="hidden" name="usr_login" value="C"><input type="hidden" name="id" value="'+location.pathname.toString().substr(1)+'"><input type="hidden" name="fname" value="'+document.querySelectorAll("div#container > div > div > table > tbody > tr > td")[2].textContent+'"><input type="hidden" name="referer" value="q"><input type="hidden" name="method_free" value="Free Download">'
form=document.body.appendChild(form)
showNotification(msgs.timerSkip)
form.submit()
return
}
if(typeof app!="undefined"&&"options"in app&&"intermediate"in app.options)//Shorte.st
{
app.options.intermediate.timeToWait=3
showNotification(msgs.timerLeap.replace("%secs%","2"))
let b=document.getElementById(app.options.intermediate.skipButtonId),
lT=sI(()=>{
if(b.className.indexOf("show")>-1)
{
clearInterval(lT)
safelyNavigate(app.options.intermediate.destinationUrl)
}
},100)
return
}
if(document.querySelector(".img-responsive[alt='Gets URL']")&&typeof x!="undefined")//GetsURL.com
{
let b=document.getElementById("link")
if(b)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.href+"&ab"+x)
return
}
}
if(document.querySelector(".logo > a[href='http://linkvertise.net'] > img[src='/assets/img/linkvertise.png']"))//Linkvertise.net
{
let b=document.querySelector("[data-download]")
if(b)
{
showNotification(msgs.timerSkip)
safelyNavigate(b.getAttribute("data-download"))
return
}
}
if(document.querySelectorAll("img[src='/assets/img/logo.png'][alt='Openload']").length)//OpenLoad
{
if(typeof secondsdl!=="undefined")
{
secondsdl=0
showNotification(msgs.timerSkip)
}
return
}
//SafeLinkReview.com
if(document.querySelector(".navbar-brand")&&document.querySelector(".navbar-brand").textContent.trim()=="Safe Link Review"&&document.querySelector(".button.green"))
{
window.open=safelyNavigate
showNotification(msgs.timerSkip)
document.querySelector(".button.green").click()
return
}
if(location.hostname=="decrypt2.safelinkconverter.com"&&document.querySelector(".redirect_url a"))
{
window.open=safelyNavigate
showNotification(msgs.timerSkip)
document.querySelector(".redirect_url a").click()
return
}
let t=document.querySelector("title")
if(t)
{
if(t.textContent.trim()=="Viid.su")//Viid.su
{
let b=document.getElementById("link-success-button")
if(b&&b.getAttribute("data-url"))
{
showNotification(msgs.timerSkip)
safelyNavigate(b.getAttribute("data-url"))
return
}
}
}
sI(()=>{
if(document.querySelectorAll(".lay-sh.active-sh").length)//Shorte.st Embed
{
let elm=document.querySelectorAll(".lay-sh.active-sh")[0]
elm.parentNode.removeChild(elm)
}
},500)
})
},//
//This method of injecting the script seems to be the fastest (faster than uBlockOrigin — which is crucial)
injectScript=(text)=>{
let script=document.createElement("script")
script.innerHTML=text
script=document.documentElement.appendChild(script)
setTimeout(()=>{
document.documentElement.removeChild(script)
},10)
//10ms seem to be enough time for any browser to execute the injected script
}
//Inserting the translation strings into our injection code and injecting it into the website.
injectScript("("+injectionCode.toString().replace("let msgs={},","let msgs={timerSkip:\""+chrome.i18n.getMessage("notificationTimerSkip")+"\",timerLeap:\""+chrome.i18n.getMessage("notificationTimerLeap")+"\",backend:\""+chrome.i18n.getMessage("notificationBackend")+"\"},")+")()")
chrome.storage.sync.get(["no_notifications"],(result)=>{
if(result&&result.no_notifications&&result.no_notifications==="true")
{
let evalResult=()=>{
//As mentioned before, I think this is the best method for transfering data to the injected script
let div=document.createElement("div")
div.id="UNIVERSAL_BYPASS_NO_NOTIFICATIONS"
div.style.display="none"
document.body.appendChild(div)
}
if(["interactive","complete"].indexOf(document.readyState)>-1)evalResult();else document.addEventListener("DOMContentLoaded",evalResult)
}
})
chrome.storage.local.get(["custom_bypasses"],(result)=>
{
let evalResult=(result)=>{
if(result&&result.custom_bypasses)
{
let customBypasses=JSON.parse(result.custom_bypasses)
for(let name in customBypasses)
{
let customBypass=customBypasses[name]
if(customBypass.domains=="*")
injectScript(customBypass.content)
else
{
let domains=customBypass.domains.split(",")
for(let i in domains)
{
let domain=domains[i]
if(location.hostname==domain||location.hostname.substr(location.hostname.length-(domain.length+1))=="."+domain)
injectScript(customBypass.content)
}
}
}
}
}
if(["interactive","complete"].indexOf(document.readyState)>-1)evalResult(result);else document.addEventListener("DOMContentLoaded",()=>evalResult(result))
})
}