web2img/x.js
2021-09-09 23:49:22 +08:00

2 lines
3.2 KiB
JavaScript

!function(){var e="7yi8oLYtst4MGP0dkOwa5fVDv0e7yAPljWzg0STnl1Y=",n=["https://article.biliimg.com/bfs/article/b7d7c4d281537e27c63fa995f2b111fe1629c1c6.png","https://pic1.zhimg.com/80/v2-66361cf1aa278ddfe0fe8d72dcd1c432.png","https://upload-images.jianshu.io/upload_images/6294093-ffa222e981a6e476.png"],t=120;function a(e){return e.split("?")[0].replace(/[^/]+$/,"")}self.document?function(){var o=document.documentElement;function r(e){var n=document.getElementsByTagName("noscript");n.length>0&&(e=n[0].innerHTML),o.innerHTML=e}var i,c=document.currentScript,s=c.src;if(s){var f=navigator.serviceWorker;if(!f)return void r("Service Worker is not supported");var u=f.register(s).catch((function(e){r(e.message)}));i=a(s)}else i=c.dataset.root;function h(n,a){var o=JSON.stringify({hash:e,time:Date.now()}),r=new Response(o),c=[a.put(i+".cache-info",r),u],s=function(e){var n=e.indexOf(13),a=e.subarray(0,n),o=(new TextDecoder).decode(a),r=JSON.parse(o),i=n+1;for(var c in r){var s=r[c],f=/\.html$/.test(c)?5:t;s["cache-control"]="max-age="+f;var u=s["content-length"],h=e.subarray(i,i+u);r[c]=new Response(h,{headers:s}),i+=u}return r}(n);for(var f in s)r=s[f],c.push(a.put(i+f,r));Promise.all(c).then((function(){location.reload()}))}function d(n){n?crypto.subtle.digest("SHA-256",n).then((function(t){var a=new Uint8Array(t),o=btoa(String.fromCharCode.apply(null,a));if(e===o){var r,i,c,s=(r=new Uint32Array(n),i=new Uint8Array(3*r.length),c=0,r.forEach((function(e){i[c++]=e,i[c++]=e>>8,i[c++]=e>>16})),i);caches.delete(".web2img").then((function(){caches.open(".web2img").then((function(e){h(s,e)}))}))}else m()})):m()}var l=function(e){var n=new Image;n.onload=function(){var e=document.createElement("canvas");e.width=n.width,e.height=n.height;var t=e.getContext("2d");t.drawImage(n,0,0);var a=t.getImageData(0,0,n.width,n.height).data.buffer;parent.postMessage(a,"*",[a])},n.onerror=function(){parent.postMessage("","*")},n.crossOrigin=1,n.src=e.data},p=document.createElement("iframe");p.src="data:text/html,<script>onmessage="+l+"<\/script>",p.style.display="none",p.onload=m,o.appendChild(p);var g=p.contentWindow;function m(){var e=n.shift();e?g.postMessage(e,"*"):r("failed to load resources")}self.onmessage=function(e){e.source===g&&d(e.data)}}():function(){var e,n=location.href,t=a(n),o=1;function r(e){return caches.open(".web2img").then((function(n){return n.match(e)}))}function i(){r(t+".cache-info").then((function(t){t&&t.json().then((function(t){Date.now()-t.time<12e4||("cache"in Request.prototype?fetch(n,{cache:"no-cache"}):fetch(n+"?t="+Date.now())).then((function(n){n.text().then((function(n){-1===n.indexOf(t.hash)&&(e=n,console.log("[web2img] new version found"))}))}))}))}))}setInterval(i,12e4),onfetch=function(n){o&&(o=0,i());var a=n.request;if(!a.url.indexOf(t)){var c;if(e&&"navigate"===a.mode)c=new Response('<script data-root="'+t+'">'+e+"<\/script>",{headers:{"content-type":"text/html"}}),e="",console.log("[web2img] updating");else{var s=new URL(a.url).pathname.replace(/\/{2,}/g,"/").replace(/\/$/,"/index.html");c=r(s).then((function(e){return e||r(t+"404.html").then((function(e){return e||new Response("file not found: "+s,{status:404})}))}))}n.respondWith(c)}},oninstall=function(){skipWaiting()}}()}();