From af78d7f5fee904972a07b60234fcb5b58a22f38d Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 1 Aug 2022 22:43:06 +0700 Subject: [PATCH 01/13] okie --- src/renderer/views/components/hello-world.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/components/hello-world.ejs b/src/renderer/views/components/hello-world.ejs index acbac471..a4411528 100644 --- a/src/renderer/views/components/hello-world.ejs +++ b/src/renderer/views/components/hello-world.ejs @@ -11,4 +11,4 @@ } } }); - \ No newline at end of file + \ No newline at end of file From f4c8edb10a542fb36e0f399e6722d67985d47294 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 1 Aug 2022 23:33:11 +0700 Subject: [PATCH 02/13] weird --- src/main/plugins/raop.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/plugins/raop.ts b/src/main/plugins/raop.ts index 0116746d..b532c681 100644 --- a/src/main/plugins/raop.ts +++ b/src/main/plugins/raop.ts @@ -89,10 +89,10 @@ export default class RAOP { `; private ondeviceup(name: any, host: any, port: any, addresses: any, text: any, airplay2: any = null) { - console.log(this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )})) + // console.log(this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )})) if (this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )}) == -1) { this.castDevices.push({ - name: host.replace(".local",""), + name: (host ?? "Unknown").replace(".local",""), host: addresses ? addresses[0] : '', port: port, addresses: addresses, From 6e62df408ee2b6cf035809de4e2fd6d67fc41eb1 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 1 Aug 2022 23:37:55 +0700 Subject: [PATCH 03/13] Fix --- src/main/plugins/raop.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/plugins/raop.ts b/src/main/plugins/raop.ts index b532c681..9f0300d6 100644 --- a/src/main/plugins/raop.ts +++ b/src/main/plugins/raop.ts @@ -90,7 +90,7 @@ export default class RAOP { private ondeviceup(name: any, host: any, port: any, addresses: any, text: any, airplay2: any = null) { // console.log(this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )})) - if (this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )}) == -1) { + if (this.castDevices.findIndex((item: any) => {return (item != null && item.name == (host ?? "Unknown").replace(".local","") && item.port == port )}) == -1) { this.castDevices.push({ name: (host ?? "Unknown").replace(".local",""), host: addresses ? addresses[0] : '', From 792fe067f4bc65e668dc55dfa8ceba564e2fd02d Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 2 Aug 2022 00:07:18 +0700 Subject: [PATCH 04/13] Update package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e51e8009..34eb6bd9 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "react": "^18.0.0", "react-dom": "^18.0.0", "run-script-os": "^1.1.6", + "request": "^2.88.2", "source-map-support": "^0.5.21", "ts-md5": "^1.2.11", "v8-compile-cache": "^2.3.0", From 23c9816a1f7f3301b1c739e89d9fc1cbc30b96f6 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 1 Aug 2022 22:53:42 +0700 Subject: [PATCH 05/13] force ci to run --- src/renderer/views/components/hello-world.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/components/hello-world.ejs b/src/renderer/views/components/hello-world.ejs index a4411528..acbac471 100644 --- a/src/renderer/views/components/hello-world.ejs +++ b/src/renderer/views/components/hello-world.ejs @@ -11,4 +11,4 @@ } } }); - \ No newline at end of file + \ No newline at end of file From b70ab0b522ac77bf4e539d8fbda2718bc8afbf14 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Sun, 24 Jul 2022 13:35:10 -0700 Subject: [PATCH 06/13] Revert back to music metadata --- src/main/providers/local/index.ts | 113 +++++------------------------- 1 file changed, 19 insertions(+), 94 deletions(-) diff --git a/src/main/providers/local/index.ts b/src/main/providers/local/index.ts index 289cad82..0c32b042 100644 --- a/src/main/providers/local/index.ts +++ b/src/main/providers/local/index.ts @@ -6,7 +6,6 @@ import * as mm from 'music-metadata'; import {Md5} from 'ts-md5/dist/md5'; import e from "express"; import { EventEmitter } from 'events'; -import { parseFile, recursiveFolderSearch } from 'cider_utils'; export class LocalFiles { static localSongs: any = []; @@ -35,23 +34,22 @@ export class LocalFiles { static async scanLibrary() { ProviderDB.init() let folders = utils.getStoreValue("libraryPrefs.localPaths") - if (folders == null || folders.length == null || folders.length == 0) folders = [] + if (folders == null || folders.length == null || folders.length == 0) folders = ["D:\\Music"] console.log('folders', folders) - let parseFileQueue: any[] = []; let mmQueue: any[] = [] + let files: any[] = [] for (var folder of folders) { - // Recursively search and add - let result = await recursiveFolderSearch(folder) - parseFileQueue = parseFileQueue.concat(result.parseFile) - mmQueue = mmQueue.concat(result.musicMetadata) + // get files from the Music folder + files = files.concat(await LocalFiles.getFiles(folder)) } - if (parseFileQueue.length !== 0 || mmQueue.length !== 0) {console.log('Recursive Folder Search in Cider Utils worki')} + + //console.log("cider.files", files2); + let supporttedformats = ["mp3", "aac", "webm", "flac", "m4a", "ogg", "wav", "opus"] + let audiofiles = files.filter(f => supporttedformats.includes(f.substring(f.lastIndexOf('.') + 1))); + // console.log("cider.files2", audiofiles, audiofiles.length); let metadatalist = [] let metadatalistart = [] let numid = 0; - mmQueue = mmQueue.concat(parseFileQueue) - parseFileQueue = [] - // Music Metadata fallback - for (var audio of mmQueue) { + for (var audio of audiofiles) { try { const metadata = await mm.parseFile(audio); let lochash = Md5.hashStr(audio) ?? numid; @@ -122,83 +120,19 @@ export class LocalFiles { } } catch (e) {console.error("error:", e)} } - - // Cider-Utils supported formats. - for (var audio of parseFileQueue) { - try { - const metadata = await parseFile(audio); - let lochash = Md5.hashStr(audio) ?? numid; - if (metadata != null) { - let form = { - "id": "ciderlocal" + lochash, - "_id": "ciderlocal" + lochash, - "type": "podcast-episodes", - "href": audio, - "attributes": { - "artwork": { - "width": 3000, - "height": 3000, - "url": "/ciderlocalart/" + "ciderlocal" + lochash, - }, - "topics": [], - "url": "", - "subscribable": true, - "mediaKind": "audio", - "genreNames": [ - "" - ], - // "playParams": { - // "id": "ciderlocal" + numid, - // "kind": "podcast", - // "isLibrary": true, - // "reporting": false }, - "trackNumber": metadata.track_number ?? 0, - "discNumber": metadata.disc_number ?? 0, - "name": metadata.title == 0 ? audio.substring(audio.lastIndexOf('\\') + 1) : metadata.title, - "albumName": metadata.album, - "artistName": metadata.artist, - "copyright": metadata.copyright ?? "", - "assetUrl": "file:///" + audio, - "contentAdvisory": "", - "releaseDateTime": `${metadata.year ?? '2022'}-05-13T00:23:00Z`, - "durationInMillis": metadata.duration_in_ms ?? 0, - "bitrate": metadata.bitrate ?? 0, - "offers": [ - { - "kind": "get", - "type": "STDQ" - } - ], - "contentRating": "clean" - }, - flavor: metadata.bitrate, - localFilesMetadata: { - lossless: metadata.lossless, - container: metadata.container, - bitDepth: metadata.bit_depth, - sampleRate: metadata.sample_rate ?? 0, - }, - }; - let art = { - id: "ciderlocal" + lochash, - _id: "ciderlocalart" + lochash, - url: metadata.artwork != undefined ? metadata.artwork : "", - } - metadatalistart.push(art) - numid += 1; - ProviderDB.db.putIfNotExists(form) - ProviderDB.db.putIfNotExists(art) - metadatalist.push(form) - - if (this.localSongs.length === 0 && numid % 10 === 0) { // send updated chunks only if there is no previous database - this.eventEmitter.emit('newtracks', metadatalist)} - } - } catch (e) {console.error("error:", e)} - } + // console.log('metadatalist', metadatalist); this.localSongs = metadatalist; this.localSongsArts = metadatalistart; return metadatalist; } + static async getFiles(dir: any) { + const dirents = await readdir(dir, { withFileTypes: true }); + const files = await Promise.all(dirents.map((dirent: any) => { + const res = path.resolve(dir, dirent.name); + return dirent.isDirectory() ? this.getFiles(res) : res; + })); + return Array.prototype.concat(...files); + } static async cleanUpDB(){ let folders = utils.getStoreValue("libraryPrefs.localPaths") @@ -218,15 +152,6 @@ export class LocalFiles { } } - static async getFiles(dir: any) { - const dirents = await readdir(dir, { withFileTypes: true }); - const files = await Promise.all(dirents.map((dirent: any) => { - const res = path.resolve(dir, dirent.name); - return dirent.isDirectory() ? this.getFiles(res) : res; - })); - return Array.prototype.concat(...files); - } - static setupHandlers () { const app = utils.getExpress() console.log("Setting up handlers for local files") From 2dee6ade9602d57a9560978311d1ca4dd3139465 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Sun, 24 Jul 2022 13:37:17 -0700 Subject: [PATCH 07/13] gimp v2 --- src/main/providers/local/index.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/providers/local/index.ts b/src/main/providers/local/index.ts index 0c32b042..bdcf547c 100644 --- a/src/main/providers/local/index.ts +++ b/src/main/providers/local/index.ts @@ -34,18 +34,15 @@ export class LocalFiles { static async scanLibrary() { ProviderDB.init() let folders = utils.getStoreValue("libraryPrefs.localPaths") - if (folders == null || folders.length == null || folders.length == 0) folders = ["D:\\Music"] - console.log('folders', folders) + if (folders == null || folders.length == null || folders.length == 0) folders = [] let files: any[] = [] for (var folder of folders) { // get files from the Music folder files = files.concat(await LocalFiles.getFiles(folder)) } - //console.log("cider.files", files2); let supporttedformats = ["mp3", "aac", "webm", "flac", "m4a", "ogg", "wav", "opus"] let audiofiles = files.filter(f => supporttedformats.includes(f.substring(f.lastIndexOf('.') + 1))); - // console.log("cider.files2", audiofiles, audiofiles.length); let metadatalist = [] let metadatalistart = [] let numid = 0; @@ -118,7 +115,7 @@ export class LocalFiles { if (this.localSongs.length === 0 && numid % 10 === 0) { // send updated chunks only if there is no previous database this.eventEmitter.emit('newtracks', metadatalist)} } - } catch (e) {console.error("error:", e)} + } catch (e) {console.error("localfiles error:", e)} } // console.log('metadatalist', metadatalist); this.localSongs = metadatalist; From 8f09ba5e93c6da9feca5474f64a8c620eed08dc1 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Sun, 24 Jul 2022 13:46:47 -0700 Subject: [PATCH 08/13] remove local files as experiment --- src/renderer/views/components/settings-window.ejs | 15 --------------- src/renderer/views/components/sidebar.ejs | 2 +- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/renderer/views/components/settings-window.ejs b/src/renderer/views/components/settings-window.ejs index e1000337..a4d9f9aa 100644 --- a/src/renderer/views/components/settings-window.ejs +++ b/src/renderer/views/components/settings-window.ejs @@ -1210,21 +1210,6 @@ - -
-
- Local Files -
-
- -
-
-
{{$root.getLz('settings.option.experimental.compactUI')}} diff --git a/src/renderer/views/components/sidebar.ejs b/src/renderer/views/components/sidebar.ejs index ae664b66..ad88b271 100644 --- a/src/renderer/views/components/sidebar.ejs +++ b/src/renderer/views/components/sidebar.ejs @@ -138,7 +138,7 @@ > -