From c39f81de14beda065a48dac4caad63db55c4ee20 Mon Sep 17 00:00:00 2001 From: Ruochen Jia Date: Sat, 2 Nov 2024 00:03:28 +0000 Subject: [PATCH] fix google index --- index.css | 22 ++++++++ index.html | 2 +- index.xht | 1 - index.xml | 1 - main.js | 44 ++++++++-------- manifest.json | 2 +- privacy.txt | 68 ------------------------- privacy.txt.html | 125 +++++++++++++++++++++++++++++++++++++++++++++ terms.txt | 2 - terms.txt.html | 130 +++++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 301 insertions(+), 96 deletions(-) delete mode 120000 index.xht delete mode 120000 index.xml delete mode 100644 privacy.txt create mode 100644 privacy.txt.html delete mode 100644 terms.txt create mode 100644 terms.txt.html diff --git a/index.css b/index.css index ef7fccfc..c175d1a8 100644 --- a/index.css +++ b/index.css @@ -220,6 +220,17 @@ line-height: 40px; } +#s-content { + position: absolute; + display: block; + width: calc(100% - 40px); + height: calc(100% - 90px); + bottom: 0px; + padding: 20px 20px; + overflow-x: hidden; + overflow-y: auto; +} + .adsbygoogle { position: absolute; display: block; @@ -281,6 +292,17 @@ line-height: 20px; } +.text-body>ul { + position: relative; + display: block; + width: calc(100% - 10px); + height: fit-content; + margin: 15px 0px; + padding: 5px; + line-height: 20px; + letter-spacing: 0px; +} + .text-body>code { position: relative; display: block; diff --git a/index.html b/index.html index 39c85541..71888c07 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@ - + diff --git a/index.xht b/index.xht deleted file mode 120000 index 64233a9e..00000000 --- a/index.xht +++ /dev/null @@ -1 +0,0 @@ -index.html \ No newline at end of file diff --git a/index.xml b/index.xml deleted file mode 120000 index 64233a9e..00000000 --- a/index.xml +++ /dev/null @@ -1 +0,0 @@ -index.html \ No newline at end of file diff --git a/main.js b/main.js index c3650d14..c0003bc8 100644 --- a/main.js +++ b/main.js @@ -330,28 +330,28 @@ n}function h(){$=null,q||(t.title="NettleWeb"),v.replaceState(void 0,"","/"),P.s r.body.appendChild(t),r.title="Google"}function m(e,t){return new Promise(((n,r)=>{const o=performance.now().toString(36),i=(e,t,s)=>{e===o&&(z.off("res",i),z.off("disconnect",a),null!=s?r(s):n(t))},a=()=>{z.off("res",i),z.off("disconnect",a),r("Error: Server connection interrupted.")};z.on("res",i),z.on("disconnect",a),z.emit("fetch",o,e,t)}))}var g,b;"complete"!==t.readyState&&await new Promise((e=>{const n=()=>{"complete"===t.readyState&&(t.removeEventListener("readystatechange",n), setTimeout(e,100,null))};t.addEventListener("readystatechange",n,{passive:!0})})),t.title="NettleWeb",Ks._(e),e.focus(),e.onkeydown=e=>{if(e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.shiftKey)switch(e.key){case"h":case"q":e.preventDefault(),e.stopPropagation(),y.replace("https://www.google.com/webhp?igu=1");break;case"b":e.preventDefault(),e.stopPropagation(),C.hasAttribute("style")?C.removeAttribute("style"):C.setAttribute("style","filter: blur(15px);")}},e.onpopstate=e=>{e.preventDefault(), e.stopPropagation(),o("Notice: Please press ctrl+Q to leave this website.")},e.onappinstalled=e=>{e.preventDefault(),e.stopPropagation(),I.style.display="none"},e.onbeforeinstallprompt=e=>{e.preventDefault(),e.stopPropagation(),I.style.display="block",I.onclick=()=>{e.prompt()}} -;const y=e.location,v=e.history,w=y.pathname,E=t.head,C=t.body,x=Ks.$,T=n("error"),A=n("frame"),S=n("frame-view"),L=n("status"),I=n("install"),j=n("content"),_=n("accn-btn"),M=n("comm-btn"),O=n("side-menu"),P=r('meta[name="description"]'),B=r('link[rel="canonical"]');{const{_a:oe,_b:ie,_d:ae,_e:se,_f:ce,_g:le,_h:de,_i:ue,_j:he,_k:pe,_l:fe,_m:me,_n:ge,_o:be,_v:ye,_w:ve,_p:we,_q:ke,_r:Ee}=Us;if((()=>{x(oe,ie);const e=new URL(y.href),n=e.hostname,r=e.origin;switch(e.protocol){case"http:": -if("localhost"!==n)return e.protocol="https:",e.pathname="/",e.host=n,y.replace(e.href),!1;break;case"https:":break;default:return!0}switch(n){case"whitespider.cf":case"whitespider.tk":case"whitespider.dev":case"whitespider.web.app":case"whitespider.pages.dev":case"whitespider.firebaseapp.com":return e.host="nettleweb.com",e.pathname="/",y.replace(e.href),!1}{const e=t[be](de);if(null==e||e[he](ue)!==fe)return!0}for(const e of t[me](ge)){switch(e[he]("type")||""){case"":case"text/javascript": -case"application/javascript":break;default:return e.remove(),!0}const t=e[he]("src");if(!t||e.textContent)return e.remove(),!0;const n=new URL(t.startsWith("//")?"https:"+t:t,r);if(n.origin!==r){if("https:"===n.protocol){const e=n.host.split("."),t=e.length;if("com"===e[t-1]){const n=e[t-2];if(n.indexOf("google")>=0||n.indexOf("firebase")>=0)continue}}return e.remove(),!0}}return B[he]("href")!==ce||null==t[be](we)||null==t[be](ke)||t[Ee]!==oe.slice(2,11)})()){x(se,pe) -;const Ce=(new DOMParser).parseFromString(ye,"application/xhtml+xml");Ce.title=le;const xe=Ce.body;xe.innerHTML=ae;{const Te=Ce.createElement("button");Te.innerHTML=ve,Te.setAttribute("type","button"),Te.addEventListener("click",(()=>{y.replace(ce)}),{passive:!0}),xe.appendChild(Te)}return void t.documentElement.replaceWith(Ce.documentElement)}for(const Ae of Object.getOwnPropertyNames(Us))2===Ae.length&&delete Us[Ae]}if(e!==e.top){ -if("null"===(null===(g=y.ancestorOrigins)||void 0===g?void 0:g.item(0))){const Se=t.createElement("div");return Se.style.padding="15px",Se.textContent="Click here to continue",Se.onclick=()=>{const e=t.createElement("embed");e.type="text/plain",e.width="1280",e.height="720",e.src="https://nettleweb.com/embed.html",f(e)},C.innerHTML="",void C.appendChild(Se)}if("https://nettleweb.com"!==y.origin)return void y.replace("https://nettleweb.com/embed.html")}Ie(N({ -appId:"1:176227430389:web:94270de43b7eb971c03abc",apiKey:"AIzaSyCPXTy7dt3fpcLd8kVTBtXy0xuBdeuhbFc",projectId:"whitespider",authDomain:"whitespider.firebaseapp.com",databaseURL:"https://whitespider-default-rtdb.firebaseio.com",storageBucket:"whitespider.appspot.com",measurementId:"G-F72WBJT57S",messagingSenderId:"176227430389"},"NettleWeb"));const D=t.documentElement.clientWidth<800,R=new es(e),{localStorage:F}=R;let U,H,z,V,W,q,G,J,K,Y,X,Q,Z=[],$=null -;if(null!==(b=e.isSecureContext)&&void 0!==b?b:"https:"===y.protocol){if(R.persistent)try{const Le=await c("/manifest.json","no-cache");if(null!=Le){const je=JSON.parse(Le).version;if(je!==F.get("__mf_version")){C.innerHTML="Updating contents...";const _e=e.caches;for(const Me of await _e.keys())await _e.delete(Me);return F.set("__mf_version",je),void y.reload()}n("version").textContent="v"+je}U=F.get("__secrets_")||void 0 -}catch(Oe){}else o("Warning: Cookies are blocked by your browser. Some features might not work properly, and your game data will NOT be saved.");try{const Pe=e.navigator.serviceWorker;null!=Pe&&(await Pe.register("/sw.js",{type:"classic",scope:"/",updateViaCache:"none"}),await Pe.ready)}catch(Be){}}try{const Ne=await e.fetch("/d/index.json",{mode:"same-origin",cache:"no-cache",method:"GET"});if(!Ne.ok)throw Error("Remote returned error status code: "+Ne.status) -;G=La.decode(Rt(new Uint8Array(await Ne.arrayBuffer())))}catch(De){return void o("Failed to initialize local game list. Message: "+De)}try{const Re=e.top;null!=Re&&(W=Re===e?e:Re.origin===e.origin?Re:null)}catch(Fe){}T.onclick=()=>{T.innerHTML="",T.style.display="none"},n("frame-close").onclick=()=>{A.innerHTML="",S.style.display="none",v.replaceState(void 0,"","/"),P.setAttribute("content",""),B.setAttribute("href","https://nettleweb.com/")},n("frame-newtab").onclick=()=>{ -const e=A.firstElementChild;null!=e&&(A.innerHTML="",S.style.display="none",f(e))},n("content-page").outerHTML=Us.pages;{const Ue=r("link[rel*='icon']"),He=n("backend-url"),ze=n("overlay"),Ve=n("notice"),We=n("theme"),qe=n("tab-cloaking"),Ge=n("stealth-mode");let Je;function Ke(e){if(null!=z&&(z.disconnect(),z.close()),null==V){const{q:e,r:t}=Us;null!=e&&null!=t&&(V=e+t+Gs)}z=k(e||V||"https://service.nettleweb.com/",{path:"/webapi/",secure:!0,upgrade:!0,timeout:1e4,forceNew:!0,multiplex:!1, -protocols:[],transports:["polling","websocket"],autoConnect:!0,reconnection:!0,rememberUpgrade:!0,reconnectionDelay:5e3,closeOnBeforeunload:!0}),L.innerHTML="Connecting...",L.style.color="#808000",z.on("an",(e=>{"string"==typeof e&&e.length>0&&(Ve.textContent=e,Ve.style.display="block")})),"string"!=typeof H&&z.once("lr",(e=>{H=e})),z.io.on("open",(()=>{L.innerHTML="\u2713Connected",L.style.color="#008000"})),z.io.on("close",(()=>{L.innerHTML="\u2715Disconnected",L.style.color="#ff0000"})), -z.io.on("reconnect_attempt",(()=>{L.innerHTML="Connecting...",L.style.color="#808000"})),z.io.on("reconnect_error",(()=>{L.innerHTML="\u2715Disconnected",L.style.color="#ff0000"})),z.io.on("reconnect",(()=>{L.innerHTML="\u2713Connected",L.style.color="#008000",null!=U&&z.emit("login",U)}))}function Ye(e){switch(null==Je&&(Je=t.createElement("link"),Je.rel="stylesheet",Je.type="text/css",Je.href="index.dark.css",E.appendChild(Je)),e){case"light":Je.disabled=!0,Je.removeAttribute("media");break -;case"dark":Je.disabled=!1,Je.removeAttribute("media");break;default:Je.media="all and (prefers-color-scheme: dark)",Je.disabled=!1}}function Xe(e){switch(e){case"empty":q=!0,t.title="\u2060",Ue.type="image/x-icon",Ue.href="/res/empty.ico";break;case"google":q=!0,t.title="Google",Ue.type="image/x-icon",Ue.href="/res/google.ico";break;case"classroom":q=!0,t.title="Home",Ue.type="image/png",Ue.href="/res/classroom.png";break;default:q=!1,t.title="NettleWeb",Ue.type="image/x-icon", -Ue.href="/favicon.ico"}}function Qe(e){switch(e){case"blank":t.onblur=t.onmouseleave=e=>{ze.hasAttribute("data-x")||(e.preventDefault(),e.stopPropagation(),ze.setAttribute("data-x","1"))},t.onmousedown=t.ontouchstart=e=>{ze.hasAttribute("data-x")&&(e.preventDefault(),e.stopPropagation(),ze.removeAttribute("data-x"))},ze.innerHTML="",ze.removeAttribute("data-x");break;case"google":t.onblur=t.onmouseleave=e=>{ze.hasAttribute("data-x")||(e.preventDefault(),e.stopPropagation(), -ze.setAttribute("data-x","1"))},t.onmousedown=t.ontouchstart=e=>{ze.hasAttribute("data-x")&&(e.preventDefault(),e.stopPropagation(),ze.removeAttribute("data-x"))},ze.innerHTML='',ze.removeAttribute("data-x");break;default: -ze.innerHTML="",ze.removeAttribute("data-x"),t.onblur=t.onmouseleave=t.onmousedown=t.ontouchstart=null}}He.onblur=()=>{const e=i(He.value.trim());if(null!=e){const t=e.href;F.set("__backendURL_",t),Ke(He.value=t)}else F.delete("__backendURL_"),Ke(He.value="")},We.onchange=()=>{const e=We.value;Ye(e),F.set("__set_theme",e)},qe.onchange=()=>{const e=qe.value;Xe(e),F.set("__set_tabc",e)},Ge.onchange=()=>{const e=Ge.value;Qe(e),F.set("__set_sm",e)};{const Ze=F.get("__backendURL_")||"";Ke(Ze), -He.value=Ze}{const $e=F.get("__set_theme")||"default";Ye($e),We.value=$e}{const et=F.get("__set_tabc")||"disabled";Xe(et),qe.value=et}{const tt=F.get("__set_sm")||"disabled";Qe(tt),Ge.value=tt}}{const nt=n("headlines");m(47).then((e=>{if(Array.isArray(e)&&0!==e.length){nt.innerHTML="";for(const n of e){const e=t.createElement("div");{const r=t.createElement("img");r.src=n.urlToImage||"/res/preview.svg",r.alt="Preview",r.width=160,r.height=90,r.loading="lazy",r.decoding="async",r.draggable=!1, -e.appendChild(r)}{const r=t.createElement("div");{const e=t.createElement("div");e.className="title",e.textContent=n.title,r.appendChild(e)}{const e=t.createElement("div");e.className="desc",e.textContent=n.description||"Description is not available for this article.",r.appendChild(e)}{const e=t.createElement("div");e.className="time",e.textContent="Source: "+(n.source.name||"unknown")+"; Author: "+(n.author||"unknown")+"; Published at "+s(n.publishedAt),r.appendChild(e)}e.appendChild(r)} -e.onclick=()=>{p(n.url)},nt.appendChild(e)}}else nt.innerHTML="Sorry, no articles are available at this moment."})).catch((e=>{nt.innerHTML="Failed to fetch articles. Message: "+e}))}{ -const rt=n("game-container"),ot=n("player"),it=n("game-page"),at=n("ecode"),st=n("dlink"),ct=n("edit"),lt=n("name"),dt=n("type"),ut=n("tags"),ht=n("date"),pt=n("user"),ft=n("desc"),mt=n("code"),gt=n("lock"),bt=n("e-name"),yt=n("e-tags"),vt=n("e-desc"),wt=n("e-subm"),kt=n("editor"),Et=n("s-games"),Ct=n("controller"),xt=n("gnav-back"),Tt=n("gnav-forward"),At=n("gnav-page-no"),St=n("gnav-page-count"),Lt=[];let It="p",jt="all",_t="",Mt=0;{const Nt=n("game-search"),Ft=r("#game-search>input");let Ut=0 -;Nt.onsubmit=e=>{e.preventDefault(),e.stopPropagation(),_t=Ft.value.trim().toLowerCase(),clearTimeout(Ut),Pt()},Ft.onblur=()=>{_t=Ft.value.trim().toLowerCase(),clearTimeout(Ut),Pt()},Ft.oninput=()=>{clearTimeout(Ut),Ut=setTimeout((()=>{_t=Ft.value.trim().toLowerCase(),Pt()}),1e3)}}{const Ht=t.querySelectorAll("#game-category>button");for(const zt of Ht)zt.onclick=()=>{for(const e of Ht)e.removeAttribute("data-current");jt=zt.getAttribute("data-match")||"all",zt.setAttribute("data-current",""), -Pt()}}{const Vt=n("game-sort");Vt.value=It=F.get("__gamesortorder")||"p",Vt.onchange=()=>{F.set("__gamesortorder",It=Vt.value),Pt()}}function Ot(){switch(jt){case"all":return _t.length>0?G.filter((e=>e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)):[...G];case"html5":return G.filter((e=>"html5"===e.type&&(0===_t.length||e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)));case"flash": +;const y=e.location,v=e.history,w=y.pathname,E=t.head,C=t.body,x=Ks.$,T=n("error"),A=n("frame"),S=n("frame-view"),L=n("status"),I=n("install"),j=n("content"),_=n("accn-btn"),M=n("comm-btn"),O=n("side-menu"),P=r('meta[name="description"]'),B=t.createElement("link");B.setAttribute("rel","canonical"),B.setAttribute("href","https://nettleweb.com/"),E.appendChild(B);{const{_a:oe,_b:ie,_d:ae,_e:se,_f:ce,_g:le,_h:de,_i:ue,_j:he,_k:pe,_l:fe,_m:me,_n:ge,_o:be,_v:ye,_w:ve,_p:we,_q:ke,_r:Ee}=Us;if((()=>{ +x(oe,ie);const e=new URL(y.href),n=e.hostname,r=e.origin;switch(e.protocol){case"http:":if("localhost"!==n)return e.protocol="https:",e.pathname="/",e.host=n,y.replace(e.href),!1;break;case"https:":break;default:return!0}switch(n){case"whitespider.cf":case"whitespider.tk":case"whitespider.dev":case"whitespider.web.app":case"whitespider.pages.dev":case"whitespider.firebaseapp.com":return e.host="nettleweb.com",e.pathname="/",y.replace(e.href),!1}{const e=t[be](de) +;if(null==e||e[he](ue)!==fe)return!0}for(const e of t[me](ge)){switch(e[he]("type")||""){case"":case"text/javascript":case"application/javascript":break;default:return e.remove(),!0}const t=e[he]("src");if(!t||e.textContent)return e.remove(),!0;const n=new URL(t.startsWith("//")?"https:"+t:t,r);if(n.origin!==r){if("https:"===n.protocol){const e=n.host.split("."),t=e.length;if("com"===e[t-1]){const n=e[t-2];if(n.indexOf("google")>=0||n.indexOf("firebase")>=0)continue}}return e.remove(),!0}} +return B[he]("href")!==ce||null==t[be](we)||null==t[be](ke)||t[Ee]!==oe.slice(2,11)})()){x(se,pe);const Ce=(new DOMParser).parseFromString(ye,"application/xhtml+xml");Ce.title=le;const xe=Ce.body;xe.innerHTML=ae;{const Te=Ce.createElement("button");Te.innerHTML=ve,Te.setAttribute("type","button"),Te.addEventListener("click",(()=>{y.replace(ce)}),{passive:!0}),xe.appendChild(Te)}return void t.documentElement.replaceWith(Ce.documentElement)} +for(const Ae of Object.getOwnPropertyNames(Us))2===Ae.length&&delete Us[Ae]}if(e!==e.top){if("null"===(null===(g=y.ancestorOrigins)||void 0===g?void 0:g.item(0))){const Se=t.createElement("div");return Se.style.padding="15px",Se.textContent="Click here to continue",Se.onclick=()=>{const e=t.createElement("embed");e.type="text/plain",e.width="1280",e.height="720",e.src="https://nettleweb.com/embed.html",f(e)},C.innerHTML="",void C.appendChild(Se)} +if("https://nettleweb.com"!==y.origin)return void y.replace("https://nettleweb.com/embed.html")}Ie(N({appId:"1:176227430389:web:94270de43b7eb971c03abc",apiKey:"AIzaSyCPXTy7dt3fpcLd8kVTBtXy0xuBdeuhbFc",projectId:"whitespider",authDomain:"whitespider.firebaseapp.com",databaseURL:"https://whitespider-default-rtdb.firebaseio.com",storageBucket:"whitespider.appspot.com",measurementId:"G-F72WBJT57S",messagingSenderId:"176227430389"},"NettleWeb")) +;const D=t.documentElement.clientWidth<800,R=new es(e),{localStorage:F}=R;let U,H,z,V,W,q,G,J,K,Y,X,Q,Z=[],$=null;if(null!==(b=e.isSecureContext)&&void 0!==b?b:"https:"===y.protocol){if(R.persistent)try{const Le=await c("/manifest.json","no-cache");if(null!=Le){const je=JSON.parse(Le).version;if(je!==F.get("__mf_version")){C.innerHTML="Updating contents...";const _e=e.caches;for(const Me of await _e.keys())await _e.delete(Me);return F.set("__mf_version",je),void y.reload()} +n("version").textContent="v"+je}U=F.get("__secrets_")||void 0}catch(Oe){}else o("Warning: Cookies are blocked by your browser. Some features might not work properly, and your game data will NOT be saved.");try{const Pe=e.navigator.serviceWorker;null!=Pe&&(await Pe.register("/sw.js",{type:"classic",scope:"/",updateViaCache:"none"}),await Pe.ready)}catch(Be){}}try{const Ne=await e.fetch("/d/index.json",{mode:"same-origin",cache:"no-cache",method:"GET"}) +;if(!Ne.ok)throw Error("Remote returned error status code: "+Ne.status);G=La.decode(Rt(new Uint8Array(await Ne.arrayBuffer())))}catch(De){return void o("Failed to initialize local game list. Message: "+De)}try{const Re=e.top;null!=Re&&(W=Re===e?e:Re.origin===e.origin?Re:null)}catch(Fe){}T.onclick=()=>{T.innerHTML="",T.style.display="none"},n("frame-close").onclick=()=>{A.innerHTML="",S.style.display="none",v.replaceState(void 0,"","/"),P.setAttribute("content",""), +B.setAttribute("href","https://nettleweb.com/")},n("frame-newtab").onclick=()=>{const e=A.firstElementChild;null!=e&&(A.innerHTML="",S.style.display="none",f(e))},n("content-page").outerHTML=Us.pages;{const Ue=r("link[rel*='icon']"),He=n("backend-url"),ze=n("overlay"),Ve=n("notice"),We=n("theme"),qe=n("tab-cloaking"),Ge=n("stealth-mode");let Je;function Ke(e){if(null!=z&&(z.disconnect(),z.close()),null==V){const{q:e,r:t}=Us;null!=e&&null!=t&&(V=e+t+Gs)} +z=k(e||V||"https://service.nettleweb.com/",{path:"/webapi/",secure:!0,upgrade:!0,timeout:1e4,forceNew:!0,multiplex:!1,protocols:[],transports:["polling","websocket"],autoConnect:!0,reconnection:!0,rememberUpgrade:!0,reconnectionDelay:5e3,closeOnBeforeunload:!0}),L.innerHTML="Connecting...",L.style.color="#808000",z.on("an",(e=>{"string"==typeof e&&e.length>0&&(Ve.textContent=e,Ve.style.display="block")})),"string"!=typeof H&&z.once("lr",(e=>{H=e})),z.io.on("open",(()=>{ +L.innerHTML="\u2713Connected",L.style.color="#008000"})),z.io.on("close",(()=>{L.innerHTML="\u2715Disconnected",L.style.color="#ff0000"})),z.io.on("reconnect_attempt",(()=>{L.innerHTML="Connecting...",L.style.color="#808000"})),z.io.on("reconnect_error",(()=>{L.innerHTML="\u2715Disconnected",L.style.color="#ff0000"})),z.io.on("reconnect",(()=>{L.innerHTML="\u2713Connected",L.style.color="#008000",null!=U&&z.emit("login",U)}))}function Ye(e){switch(null==Je&&(Je=t.createElement("link"), +Je.rel="stylesheet",Je.type="text/css",Je.href="index.dark.css",E.appendChild(Je)),e){case"light":Je.disabled=!0,Je.removeAttribute("media");break;case"dark":Je.disabled=!1,Je.removeAttribute("media");break;default:Je.media="all and (prefers-color-scheme: dark)",Je.disabled=!1}}function Xe(e){switch(e){case"empty":q=!0,t.title="\u2060",Ue.type="image/x-icon",Ue.href="/res/empty.ico";break;case"google":q=!0,t.title="Google",Ue.type="image/x-icon",Ue.href="/res/google.ico";break;case"classroom": +q=!0,t.title="Home",Ue.type="image/png",Ue.href="/res/classroom.png";break;default:q=!1,t.title="NettleWeb",Ue.type="image/x-icon",Ue.href="/favicon.ico"}}function Qe(e){switch(e){case"blank":t.onblur=t.onmouseleave=e=>{ze.hasAttribute("data-x")||(e.preventDefault(),e.stopPropagation(),ze.setAttribute("data-x","1"))},t.onmousedown=t.ontouchstart=e=>{ze.hasAttribute("data-x")&&(e.preventDefault(),e.stopPropagation(),ze.removeAttribute("data-x"))},ze.innerHTML="",ze.removeAttribute("data-x");break +;case"google":t.onblur=t.onmouseleave=e=>{ze.hasAttribute("data-x")||(e.preventDefault(),e.stopPropagation(),ze.setAttribute("data-x","1"))},t.onmousedown=t.ontouchstart=e=>{ze.hasAttribute("data-x")&&(e.preventDefault(),e.stopPropagation(),ze.removeAttribute("data-x"))}, +ze.innerHTML='',ze.removeAttribute("data-x");break;default:ze.innerHTML="",ze.removeAttribute("data-x"),t.onblur=t.onmouseleave=t.onmousedown=t.ontouchstart=null}}He.onblur=()=>{const e=i(He.value.trim());if(null!=e){ +const t=e.href;F.set("__backendURL_",t),Ke(He.value=t)}else F.delete("__backendURL_"),Ke(He.value="")},We.onchange=()=>{const e=We.value;Ye(e),F.set("__set_theme",e)},qe.onchange=()=>{const e=qe.value;Xe(e),F.set("__set_tabc",e)},Ge.onchange=()=>{const e=Ge.value;Qe(e),F.set("__set_sm",e)};{const Ze=F.get("__backendURL_")||"";Ke(Ze),He.value=Ze}{const $e=F.get("__set_theme")||"default";Ye($e),We.value=$e}{const et=F.get("__set_tabc")||"disabled";Xe(et),qe.value=et}{ +const tt=F.get("__set_sm")||"disabled";Qe(tt),Ge.value=tt}}{const nt=n("headlines");m(47).then((e=>{if(Array.isArray(e)&&0!==e.length){nt.innerHTML="";for(const n of e){const e=t.createElement("div");{const r=t.createElement("img");r.src=n.urlToImage||"/res/preview.svg",r.alt="Preview",r.width=160,r.height=90,r.loading="lazy",r.decoding="async",r.draggable=!1,e.appendChild(r)}{const r=t.createElement("div");{const e=t.createElement("div");e.className="title",e.textContent=n.title, +r.appendChild(e)}{const e=t.createElement("div");e.className="desc",e.textContent=n.description||"Description is not available for this article.",r.appendChild(e)}{const e=t.createElement("div");e.className="time",e.textContent="Source: "+(n.source.name||"unknown")+"; Author: "+(n.author||"unknown")+"; Published at "+s(n.publishedAt),r.appendChild(e)}e.appendChild(r)}e.onclick=()=>{p(n.url)},nt.appendChild(e)}}else nt.innerHTML="Sorry, no articles are available at this moment."})).catch((e=>{ +nt.innerHTML="Failed to fetch articles. Message: "+e}))}{const rt=n("game-container"),ot=n("player"),it=n("game-page"),at=n("ecode"),st=n("dlink"),ct=n("edit"),lt=n("name"),dt=n("type"),ut=n("tags"),ht=n("date"),pt=n("user"),ft=n("desc"),mt=n("code"),gt=n("lock"),bt=n("e-name"),yt=n("e-tags"),vt=n("e-desc"),wt=n("e-subm"),kt=n("editor"),Et=n("s-games"),Ct=n("controller"),xt=n("gnav-back"),Tt=n("gnav-forward"),At=n("gnav-page-no"),St=n("gnav-page-count"),Lt=[];let It="p",jt="all",_t="",Mt=0;{ +const Nt=n("game-search"),Ft=r("#game-search>input");let Ut=0;Nt.onsubmit=e=>{e.preventDefault(),e.stopPropagation(),_t=Ft.value.trim().toLowerCase(),clearTimeout(Ut),Pt()},Ft.onblur=()=>{_t=Ft.value.trim().toLowerCase(),clearTimeout(Ut),Pt()},Ft.oninput=()=>{clearTimeout(Ut),Ut=setTimeout((()=>{_t=Ft.value.trim().toLowerCase(),Pt()}),1e3)}}{const Ht=t.querySelectorAll("#game-category>button");for(const zt of Ht)zt.onclick=()=>{for(const e of Ht)e.removeAttribute("data-current") +;jt=zt.getAttribute("data-match")||"all",zt.setAttribute("data-current",""),Pt()}}{const Vt=n("game-sort");Vt.value=It=F.get("__gamesortorder")||"p",Vt.onchange=()=>{F.set("__gamesortorder",It=Vt.value),Pt()}}function Ot(){switch(jt){case"all":return _t.length>0?G.filter((e=>e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)):[...G];case"html5":return G.filter((e=>"html5"===e.type&&(0===_t.length||e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)));case"flash": return G.filter((e=>"flash"===e.type&&(0===_t.length||e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)));case"dos":return G.filter((e=>"dos"===e.type&&(0===_t.length||e.name.toLowerCase().indexOf(_t)>=0||e.tags.indexOf(_t)>=0)));default:return G.filter((e=>e.tags.split(",").indexOf(jt)>=0&&(0===_t.length||e.name.toLowerCase().indexOf(_t)>=0)))}}function Pt(){Mt=0,Lt.length=0;const e=Ot();if(0===e.length)return xt.disabled=!0,Tt.disabled=!0,void(rt.innerHTML="No results found :(") ;switch(It){case"r":a(e);break;case"d":e.sort(((e,t)=>t.date-e.date));break;case"p":e.sort(((e,t)=>(t.count||0)-(e.count||0)))}for(let t=0;t=Lt.length-1?Tt.disabled=!0:Tt.disabled=!1;for(const e of Lt[Mt]){const{name:n,prev:r,date:i}=e,a=t.createElement("a");a.href=i>0?"/"+i.toString(36):"#",a.title="Play "+n,a.target="_self", a.className="game",a.onclick=t=>{t.ctrlKey||(t.preventDefault(),t.stopPropagation(),X(e).catch((e=>{o("Failed to launch game. Message: "+e)})))},a.style.backgroundImage=null!=r?'url("'+r+'"), url("/res/preview.svg")':'url("/d/'+encodeURIComponent(n)+'.jpg"), url("/res/preview.svg")';{const e=t.createElement("div");e.textContent=n,a.appendChild(e)}if(e.path.startsWith("https://")){const e=t.createElement("img");e.src="/res/cloud.svg",e.alt="Cloud",e.title="Embedded from third-party servers", diff --git a/manifest.json b/manifest.json index 57803e48..a14b4380 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "nettleweb", "name": "NettleWeb", - "version": "6.1.1", + "version": "6.1.2", "short_name": "NettleWeb", "categories": ["games", "social", "shopping"], "description": "Play 3000+ free online HTML5, Flash and classic DOS games. Shop within our online store, and engage in real-time chat with our community. A one-stop platform for gaming, shopping, and socializing.", diff --git a/privacy.txt b/privacy.txt deleted file mode 100644 index 4018215c..00000000 --- a/privacy.txt +++ /dev/null @@ -1,68 +0,0 @@ -# Privacy Policy - -This privacy policy ("policy") will help you understand how WhiteSpider Dev ("us", "we", -"our") uses and protects the data you provide to us when you visit and use -https://whitespider.dev/ ("website", "service"). - -We reserve the right to change this policy at any given time, of which you will be -promptly updated. If you want to make sure that you are up to date with the latest -changes, we advise you to frequently visit this page. - -## What User Data We Collect -When you visit the website, we may collect the following data: - - Your IP address. - - Your contact information and email address. - - Other information such as interests and preferences. - - Data profile regarding your online behavior on our website. - -## Why We Collect Your Data -We are collecting your data for several reasons: - - To better understand your needs. - - To improve our services and products. - - To send you promotional emails containing the information we think you will find interesting. - - To contact you to fill out surveys and participate in other types of market research. - - To customize our website according to your online behavior and personal preferences. - -## Safeguarding and Securing the Data -WhiteSpider Dev is committed to securing your data and keeping it confidential. -WhiteSpider Dev has done all in its power to prevent data theft, unauthorized access, -and disclosure by implementing the latest technologies and software, which help us -safeguard all the information we collect online. - -## Our Cookie Policy -Once you agree to allow our website to use cookies, you also agree to use the data it -collects regarding your online behavior (analyze web traffic, web pages you visit and -spend the most time on). - -The data we collect by using cookies is used to customize our website to your needs. -After we use the data for statistical analysis, the data is completely removed from our -systems. - -Please note that cookies don't allow us to gain control of your computer in any way. -They are strictly used to monitor which pages you find useful and which you do not so -that we can provide a better experience for you. - -If you want to disable cookies, you can do it by accessing the settings of your internet -browser. You can visit https://www.internetcookies.com, which contains comprehensive -information on how to do this on a wide variety of browsers and devices. - -## Links to Other Websites -Our website contains links that lead to other websites. If you click on these links -WhiteSpider Dev is not held responsible for your data and privacy protection. Visiting -those websites is not governed by this privacy policy agreement. Make sure to read the -privacy policy documentation of the website you go to from our website. - -## Restricting the Collection of your Personal Data -At some point, you might wish to restrict the use and collection of your personal data. -You can achieve this by doing the following: - -When you are filling the forms on the website, make sure to check if there is a box -which you can leave unchecked, if you don't want to disclose your personal information. - -If you have already agreed to share your information with us, feel free to contact us via -email and we will be more than happy to change this for you. - -WhiteSpider Dev will not lease, sell or distribute your personal information to any third -parties, unless we have your permission. We might do so if the law forces us. Your -personal information will be used when we need to send you promotional materials if -you agree to this privacy policy. diff --git a/privacy.txt.html b/privacy.txt.html new file mode 100644 index 00000000..bd557a99 --- /dev/null +++ b/privacy.txt.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + Privacy Policy - NettleWeb + + + +
+

Privacy Policy

+
+
+

Introduction

+

Welcome to NettleWeb! We are committed to protecting the privacy and security of our users. This Privacy Policy explains how we collect, use, and share your data, as well as our policy on advertising.

+
+

Data Collection

+

When you use our website, we collect certain information from you, including:

+
    +
  • User IDs and Device Information: We collect your user ID and device information, such as your browser type, operating system, and device model.
  • +
  • Login Information: If you choose to register with us using Google OAuth login, we collect your Google login credentials, including your name, email address, and profile information.
  • +
  • Usage Data: We collect information about your interactions with our website, including the pages you visit, the links you click, and the searches you perform.
  • +
  • Contact Information: If you contact us with a question or concern, we may collect your email address and any additional information you provide to us.
  • +
  • Cookies: We use cookies to remember your login credentials and preferences, as well as to track your interactions with our website.
  • +
  • Analytics Data: We use third-party analytics services to collect information about your interactions with our website, including the pages you visit, the links you click, and the searches you perform.
  • +
+
+

Use of Data

+

We use the data we collect in the following ways:

+
    +
  • To Provide Our Services: We use your data to provide our website and services to you, including to remember your login credentials and preferences.
  • +
  • To Personalize Your Experience: We use your data to personalize your experience on our website, including to show you content and advertisements that are relevant to your interests.
  • +
  • To Improve Our Services: We use your data to improve our website and services, including to fix bugs and to improve the overall user experience.
  • +
+
+

Advertising

+

We use advertising on our website to support our business. We display ads from third-party advertising networks, including Google AdSense. These ads are tailored to your interests based on the data we collect about you. If you have any concerns about advertising, please see the section on "Advertising Choices" below.

+
+

Google OAuth Login

+

If you choose to register with us using Google OAuth login, we collect your Google login credentials and profile information. We do not collect or store your Google login credentials, and you can remove your access to our website at any time by revoking our access to your Google account.

+
+

Advertising Choices

+

If you have concerns about advertising on our website, you can use the following options to opt-out:

+
    +
  • Using a browser extension: You can install a browser extension that blocks advertising on our website.
  • +
  • Disabling cookies: You can disable cookies in your browser to prevent us from collecting data about your interactions with our website.
  • +
  • Contacting us: You can contact us directly with any concerns about advertising on our website.
  • +
+
+

Data Sharing

+

We share data with third parties in the following ways:

+
    +
  • With our affiliates: We share data with our affiliates and partners to support our business.
  • +
  • With vendors: We share data with vendors who provide services to us, such as analytics and advertising services.
  • +
  • As required by law: We share data with law enforcement or other authorities as required by law.
  • +
+
+

Your Rights

+

You have the following rights with respect to your data:

+
    +
  • Right to access: You have the right to access your data and to request a copy of it.
  • +
  • Right to correction: You have the right to correct any inaccuracies in your data.
  • +
  • Right to erasure: You have the right to request that we delete your data.
  • +
  • Right to restriction: You have the right to restrict our use of your data.
  • +
+
+

How We Protect Your Data

+

We take security seriously and use a range of measures to protect your data, including:

+
    +
  • Encryption: We use encryption to protect your data in transit.
  • +
  • Access controls: We use access controls to restrict access to your data.
  • +
  • Regular security audits: We regularly audit our systems to ensure that they are secure.
  • +
+
+

Changes to This Policy

+

We may update this Privacy Policy from time to time. If we do, we will notify you of any changes and, if necessary, obtain your consent.

+
+

Contact Us

+

If you have any concerns or questions about this Privacy Policy, please contact us.

+
+
+

By using our website, you acknowledge that you have read and understand this Privacy Policy.

+
+ +
+ + \ No newline at end of file diff --git a/terms.txt b/terms.txt deleted file mode 100644 index 51420f84..00000000 --- a/terms.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Terms of Service - diff --git a/terms.txt.html b/terms.txt.html new file mode 100644 index 00000000..3a424f24 --- /dev/null +++ b/terms.txt.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + Terms of Service - NettleWeb + + + +
+

Terms of Service

+
Last Updated: 11/01/2024
+
Please read these Terms of Service ("Terms") carefully before using the Website. By accessing or using the Website, you agree to be bound by these Terms. If you do not agree to these Terms, please do not use the Website.
+
+

1. Acceptance of Terms

+

1.1. These Terms constitute a binding contract between you (the "User") and NettleWeb (the "Company"), governing your use of the Website.

+

1.2. By accessing or using the Website, you acknowledge that you have read, understood, and agree to be bound by these Terms.

+

1.3. If you do not agree to these Terms, please do not use the Website.

+
+

2. Intellectual Property

+

2.1. The Company owns all intellectual property rights to the Website, including but not limited to, copyrights, trademarks, and patents.

+

2.2. You are not permitted to use, copy, distribute, or modify any content from the Website without the prior written consent of the Company.

+

2.3. Any unauthorized use of the Company's intellectual property rights may result in legal action.

+
+

3. Usage Rules

+

3.1. You must be at least 18 years old to use the Website.

+

3.2. You must provide accurate and complete information when registering for an account.

+

3.3. You are responsible for maintaining the confidentiality of your account and password.

+

3.4. You are responsible for any activity that occurs under your account.

+

3.5. You must comply with all applicable laws and regulations when using the Website.

+

3.6. You are not permitted to use the Website for any unlawful or unauthorized purpose.

+
+

4. Content

+

4.1. The Company reserves the right to modify, suspend, or terminate any content on the Website at any time.

+

4.2. The Company is not responsible for any content that you may find on the Website.

+

4.3. The Company is not responsible for any content that you may generate or upload to the Website.

+
+

5. Privacy Policy

+

5.1. The Company's Privacy Policy governs the collection, use, and disclosure of personal information.

+

5.2. By using the Website, you acknowledge that you have read and understood the Privacy Policy.

+

5.3. Any changes to the Privacy Policy will be posted on the Website.

+
+

6. Security

+

6.1. The Company uses reasonable security measures to protect your personal information.

+

6.2. You are responsible for maintaining the security of your account and data.

+

6.3. The Company is not responsible for any loss or damage resulting from a breach of your account or data.

+
+

7. Dispute Resolution

+

7.1. Any disputes arising from these Terms will be resolved in accordance with the laws of the United States.

+

7.2. You and the Company each agree to submit to the exclusive jurisdiction of the courts of the United States.

+

7.3. Any claims or disputes must be brought within two weeks.

+
+

8. Changes to Terms

+

8.1. The Company reserves the right to modify these Terms at any time.

+

8.2. Changes to these Terms will be posted on the Website.

+

8.3. If you continue to use the Website after changes have been made, you agree to be bound by the revised Terms.

+
+

9. Governing Law

+

9.1. These Terms will be governed by and construed in accordance with the laws of the United States.

+

9.2. Any disputes arising from these Terms will be resolved in accordance with the laws of the United States.

+
+

10. Entire Agreement

+

10.1. These Terms constitute the entire agreement between you and the Company.

+

10.2. These Terms supersede all prior or contemporaneous agreements or understandings.

+
+

11. Waiver

+

11.1. The Company's failure to enforce any provision of these Terms will not be deemed a waiver of such provision.

+
+

12. Notice

+

12.1. Any notices to the Company must be in writing and sent to \[Insert Address].

+

12.2. Any notices to you will be posted on the Website or sent to you via email.

+
+

13. Severability

+

13.1. If any provision of these Terms is held to be invalid or unenforceable, such provision will be modified to the extent necessary to make it valid and enforceable.

+
+

14. Assignment

+

14.1. These Terms may not be assigned or delegated by you.

+
+

15. No Waiver

+

15.1. The Company's failure to enforce any provision of these Terms will not be deemed a waiver of such provision.

+
+

16. Contact Information

+

16.1. If you have any questions or concerns about these Terms, please contact us.

+
+
+

By using the Website, you acknowledge that you have read, understood, and agree to be bound by these Terms.

+

These Terms were last updated on 11/01/2024.

+
+ +
+ + \ No newline at end of file