A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Improve update mechanism

+18 -20
+13 -19
src/Javascript/Workers/service.js
··· 46 46 }) 47 47 48 48 49 - self.addEventListener("fetch", async event => { 49 + self.addEventListener("fetch", event => { 50 50 const isInternal = 51 51 !!event.request.url.match(new RegExp("^" + self.location.origin)) 52 52 ··· 81 81 "Bearer " + token 82 82 ) 83 83 84 - // When refreshing the page to update the app 85 - } else if ( 86 - event.request.mode === "navigate" && 87 - event.request.method === "GET" && 88 - registration.waiting && 89 - (await clients.matchAll()).length < 2 90 - ) { 91 - registration.waiting.postMessage("skipWaiting") 92 - event.respondWith(new Response("", { headers: { "Refresh": "0" } })) 93 - 94 84 // Use cache if internal request 95 85 } else if (isInternal) { 96 - let url = new URL(event.request.url) 97 - url.search = "" 86 + event.respondWith( cacheThenNetwork(event) ) 98 87 99 - event.respondWith( 100 - caches 101 - .open(KEY) 102 - .then(cache => cache.match(url)) 103 - .then(match => match || fetch(url)) 104 - ) 105 88 } 106 89 }) 90 + 91 + 92 + function cacheThenNetwork(event) { 93 + let url = new URL(event.request.url) 94 + url.search = "" 95 + 96 + return caches 97 + .open(KEY) 98 + .then(cache => cache.match(url)) 99 + .then(match => match || fetch(url)) 100 + } 107 101 108 102 109 103 addEventListener("message", event => {
+5 -1
src/Javascript/index.js
··· 104 104 }) 105 105 106 106 app.ports.reloadApp.subscribe(_ => { 107 - let timeout = setTimeout(() => location.reload(), 250) 107 + let timeout = setTimeout(() => { 108 + if (reg.waiting) reg.waiting.postMessage("skipWaiting") 109 + location.reload() 110 + }, 250) 108 111 109 112 bc.addEventListener("message", event => { 110 113 if (event.data === "PONG") { ··· 907 910 // ------------ 908 911 909 912 window.addEventListener("touchstart", function onFirstTouch() { 913 + if (!app) return 910 914 app.ports.indicateTouchDevice.send(null) 911 915 window.removeEventListener("touchstart", onFirstTouch, false) 912 916 }, false)