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.

Remove double exist check

+14 -15
+1
CHANGELOG.md
··· 12 12 - Changes the keyboard shortcuts for seeking and changing tracks (see overview on about page) 13 13 - Dark mode for the about page 14 14 - Enforces usage of a secure context (HTTPS, localhost, etc) 15 + - Fixes audio preloading on non-Safari browsers on Apple devices 15 16 - Fixes issue with shuffle algorithm 16 17 - Fixes issue with WebDAV 17 18 - Fixes playback issues (eg. clicking same track multiple times)
+1 -1
package.json
··· 34 34 "subworkers": "^1.0.1", 35 35 "timer.js": "^1.0.4", 36 36 "tocca": "^2.0.9", 37 - "webnative": "0.21.1" 37 + "webnative": "0.21.2" 38 38 } 39 39 }
+4 -4
pnpm-lock.yaml
··· 13 13 subworkers: 1.0.1 14 14 timer.js: 1.0.4 15 15 tocca: 2.0.9 16 - webnative: 0.21.1 16 + webnative: 0.21.2 17 17 devDependencies: 18 18 elm-review: 2.3.3 19 19 elm-tailwind-css: 1.0.1_tailwindcss@1.9.6 ··· 5637 5637 dev: false 5638 5638 resolution: 5639 5639 integrity: sha512-l+UtsuV4zrBKyVAj9VCtwWgscTgadCsdGgL1OvbV102cvydWwJCGXlFIXauzWLzfheIDHfPNRWfgMuwyC6ZfIA== 5640 - /webnative/0.21.1: 5640 + /webnative/0.21.2: 5641 5641 dependencies: 5642 5642 base58-universal: 1.0.0 5643 5643 borc: 2.1.2 ··· 5654 5654 engines: 5655 5655 node: '>=10.21.0' 5656 5656 resolution: 5657 - integrity: sha512-N4oawXhTa/2t+UnZmPtKTofaN2VRSZspdpcaPg6u5+u2IZNbtaRSlMO1uM6jlTk9fF/K7ELQv7S2q2MGc10nJg== 5657 + integrity: sha512-uDW1RF8auYQV70a3kWxbKoNoghClkAzDSXcag1uABqgSLMG9DO+tWrZGW05zQK+84rxOIxJhZAna79MFJs18iA== 5658 5658 /webpack-cli/3.3.12_webpack@4.45.0: 5659 5659 dependencies: 5660 5660 chalk: 2.4.2 ··· 5886 5886 terser: ^5.0.0 5887 5887 timer.js: ^1.0.4 5888 5888 tocca: ^2.0.9 5889 - webnative: 0.21.1 5889 + webnative: 0.21.2 5890 5890 webpack: ^4.44.1 5891 5891 webpack-cli: ^3.3.12
+8 -10
src/Javascript/Brain/user.js
··· 167 167 switch (event.data.file) { 168 168 169 169 case "playlists.json": 170 - return wnfs.exists(PLAYLISTS_PATH).then(exists => { 170 + return (() => { 171 171 if (!exists) return wnfs 172 172 .read(wnfs.appPath([ event.data.file ])) 173 173 .then(a => a ? new TextDecoder().decode(a) : null) 174 174 .then(sendJsonData_) 175 175 176 - return wnfs.ls(PLAYLISTS_PATH).then(result => 177 - Object.values(result).map(r => 176 + return wnfs.ls(PLAYLISTS_PATH).then(result => { 177 + return Promise.all(Object.values(result).map(r => 178 178 wnfs 179 179 .read(PLAYLISTS_PATH + r.name) 180 180 .then(p => new TextDecoder().decode(p)) 181 181 .then(j => JSON.parse(j)) 182 - ) 183 - ) 184 - }) 185 - .then(promises => 186 - Promise.all(promises) 187 - ).then(playlists => 182 + )) 183 + }) 184 + })() 185 + .then(playlists => { 188 186 sendData(app, event)(playlists) 189 - ) 187 + }) 190 188 191 189 default: 192 190 return wnfs