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

fix: improve offline behaviour

Changed files
+23 -14
src
Javascript
+2
src/Javascript/index.ts
··· 481 481 482 482 483 483 function loadAlbumCoversFromDom({ coverView, list }) { 484 + if (!navigator.onLine) return 485 + 484 486 let nodes: HTMLElement[] = [] 485 487 486 488 if (list) nodes = nodes.concat(Array.from(
+21 -14
src/Javascript/processing.ts
··· 63 63 const musicMetadata = await import("music-metadata-browser").then((a) => a.default); 64 64 const httpTokenizer = await import("@tokenizer/http").then((a) => a.default); 65 65 66 - const tokenizer = await httpTokenizer.makeTokenizer(headUrl); 67 - tokenizer.fileInfo.url = getUrl; 66 + let tokenizer 67 + let mmResult 68 68 69 - // @ts-ignore 70 - if (tokenizer.rangeRequestClient) { 71 - // @ts-ignore 72 - tokenizer.rangeRequestClient.url = getUrl; 69 + try { 70 + tokenizer = await httpTokenizer.makeTokenizer(headUrl); 71 + tokenizer.fileInfo.url = getUrl; 72 + 73 73 // @ts-ignore 74 - tokenizer.rangeRequestClient.resolvedUrl = undefined; 75 - } 74 + if (tokenizer.rangeRequestClient) { 75 + // @ts-ignore 76 + tokenizer.rangeRequestClient.url = getUrl; 77 + // @ts-ignore 78 + tokenizer.rangeRequestClient.resolvedUrl = undefined; 79 + } 76 80 77 - const mmResult = await musicMetadata.parseFromTokenizer( 78 - tokenizer, 79 - { skipCovers: !covers } 80 - ).catch(err => { 81 + mmResult = await musicMetadata.parseFromTokenizer( 82 + tokenizer, 83 + { skipCovers: !covers } 84 + ).catch(err => { 85 + console.warn(err) 86 + return null 87 + }); 88 + } catch (err) { 81 89 console.warn(err) 82 - return null 83 - }); 90 + } 84 91 85 92 const mmTags = mmResult && pickTagsFromMusicMetadata(filename, mmResult); 86 93 if (mmTags) return mmTags;