Main page
Account
Lubux
Requests
Login
+
vars.push(v.split(" ")[0].split("=")[0].split("\\")[0].split(";")[0])) leScript.split("var ").forEach(v=>vars.push(v.split(" ")[0].split("=")[0].split("\\")[0].split(";")[0])) }catch(e){console.warn(e);console.log(leScript)} } }) } } if(false){setTimeout(()=>{ ;["click","submit"].forEach(p=>{ for(let e of document.querySelectorAll("[on"+p+"]")){ let script = e.getAttribute("on"+p); if(!script){continue} e.setAttribute("on"+p,""); script = script.split("this.").join("thisUsefulElement."); e.addEventListener(p,ev=>{ if(p==="submit"){ev.preventDefault()} return eval("thisUsefulElement=>{"+script+"//\n/* */}")(ev.target) }) } }) },20)} document.body.scrollTop = 0 return r } document.body.style.overflow = "hidden" var aller = (url,manuel)=>{ if(manuel && url.startsWith("javascript:") && confirm("Executing JavaScript code is dangerous and your Lublox account could get hacked.\nDo you still want to execute it ?")){ try{ eval(url.replace("javascript:","")) }catch(e){ alert("Error when executing:\n"+e) } WEBurl.value = WEBpage return } if(manuel && url.toLowerCase() == "update"){ return avecdts({lubloxwebupdate:true}) } if(!url.startsWith("/")){return} if(url === "/web" || url.startsWith("/web/") || url.startsWith("/web#") || url.startsWith("/web?")){return} if(url.startsWith("http") && !manuel){ document.location.href = url }else{ fetch(url,{},{remplace:true}) } } aller(WEBpage) window.onhashchange = ()=>{ let nouv = document.location.hash.replace("#",!document.location.hash.startsWith("#http") && "/" || "") if(WEBpage!=nouv){aller(nouv,true)} } window.addEventListener('popstate', function(event) { nohistory = true setTimeout(()=>{nohistory=false},50) }, false); let plusCooldown = false function clicPlus(){ if(plusCooldown){ if(WEBplus.innerText == "+"){ window.close() }else{ window.open("//lublox.xyz/web") } }else{ plusCooldown = true setTimeout(()=>{ plusCooldown = false },999) } if(WEBplus.innerText == "+"){ WEBcadre.style.height = "calc(100% - 40px)" WEBcadre.style.marginTop = "90px" WEBhaut.style.top = "0px" WEBplus.innerText = "-" }else{ WEBcadre.style.height = "calc(100% - 0px)" WEBcadre.style.marginTop = "50px" WEBhaut.style.top = "-40px" WEBplus.innerText = "+" } } WEBnotif = function(nom,txt,options2){ let options = options2 || {} options.title = options.title || nom options.body = options.body || txt options.icon = options.icon || WEBico.href options.badge = options.badge || WEBico.href let n = SW.showNotification(options.title,options) if(options2.son){ let son = document.createElement("audio") son.src = options2.son son.play() son.addEventListener("ended",()=>{ son.remove() }) } } kits = { _loader: async (nom)=>{ if(kits[nom]===null){return} if(!kitsloades.includes(nom)){kitsloades.push(nom) if(kits[nom] && kits[nom].reset){kits[nom].reset()} } if(kits[nom]){return kits[nom]} kits[nom] = null let r = await vraiFetch("/kits/"+nom+".js") let txt = await r.text() let kit;eval("kit="+txt) if(kit.html){ document.body.insertAdjacentHTML("beforeend",kit.html) } kits[nom] = kit kits[nom] = kit.js && (await kit.js()) || kit return kits[nom] }, } var onWEBwsStop; let creerSocket if(true){ let pingN = 0; let first; creerSocket = ()=>{if(WEBws){return} if (false && !!window.SharedWorker) { WEBws = new SharedWorker("sws.js"); WEBws.send = (...a)=>WEBws.port.postMessage(...a) WEBws.port.onmessage = (json) => { avecdts(json) }; return} if(console.WSlogs){console.log("Creating socket equivalent...")} WEBws = new EventSource("/web/ws?tabid="+WEBtab+"&url="+encodeURIComponent(WEBpage)+(WEBglobales.tv ? "&tv="+WEBglobales.tv : ""), { includeCredentials:true, }); WEBws.addEventListener("PING", event=>{ if(console.WSlogs){console.info("Received ping.")} pingN++ if(+new Date()-lastActivity>15*60000){ fetch("/web/pong") } }) WEBws.addEventListener("JSON", event=>{ if(console.WSlogs){console.info(event.data)} /*if(event.data.startsWith("ERR:")){ return console.error(event.data); } if(event.data.startsWith("PING")){ pingN++; while(event.data.startsWith("PING")){ event.data = event.data.substr(4); } if(!event.data){return} }*/ let json; try{ json = JSON.parse(event.data); }catch(e){ console.error("Couldn't parse into JSON:"); console.error(event.data); return; } avecdts(json); }); WEBws.addEventListener("message",event=>{ if(console.WSlogs){console.info(event.data)} }) WEBws.addEventListener("close", event=>{ console.warn("Ended WS request..."); if(!WEBws){return} WEBws = false; if (COUL.content == "#08f") { WEBcouler("#2f0"); } setTimeout(creerSocket, 60000); }); WEBws.addEventListener("error", function (event) { console.warn("WS error:",event+""); console.warn(event); if(!WEBws){return} WEBws.close() WEBws = false; if(COUL.content == "#0f8"){ WEBcouler("#0f0"); } if(onWEBwsStop){ onWEBwsStop(); } setTimeout(creerSocket, 5000); }); if (COUL.content == "#0f0") { WEBcouler("#0f8"); } }; creerSocket() } if(false){ let observer = new MutationObserver(()=>{ if(statustxt.dataset.code){ let code = statustxt.dataset.code statustxt.dataset.code = "" statustxt.dataset.codesave = code if(!WEBpage.startsWith("/")){ return setTimeout(()=>{statustxt.dataset.close = "true"}, 100) } creerSocket() if(WEBglobales.onActivityLogin){ let f = WEBglobales.onActivityLogin delete WEBglobales.onActivityLogin f(code) } } }) observer.observe(statustxt,{attributes:true}) vraiFetch("/.proxy/eruda/eruda").then(async r=>{eval(await r.text());eruda.init()}) if(WEBpage === "/activity/cooldowns" || WEBpage.startsWith("/netherbot")){ statustxt.dataset.scopes = "identify rpc.activities.write" }else if(WEBpage.startsWith("/discord/auth")){ statustxt.dataset.scopes = WEBpage.slice(WEBpage.indexOf("?")+1).split(" ") }else if(customId?.startsWith("join.")){ statustxt.dataset.scopes = "identify guilds.join" } for(let e of ["click", "submit"]){ document.addEventListener(e, ev=>{ if(ev.target?.hasAttribute("on"+e)){ ev.preventDefault() let script = ev.target.getAttribute("on"+e).split("this.").join("thisUsefulElement."); return eval("thisUsefulElement=>{"+script+"//\n/* */}")(ev.target) } }) } } if(false){ // Failed experiment document.addEventListener("click", ()=>{ silentAudio.play() }, {once:true}) silentAudio.volume = 0 } }catch(e){WEBcadre.innerText = "ERROR:"+e}