diff --git a/.circleci/config.yml b/.circleci/config.yml index 1ac3ccfd..b15cbeb7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -83,12 +83,6 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 - - run: - name: Reinstall proper rust node module - command: | - cd ./node_modules/cider_utils - yarn run prebuild-downloads --platform=win32 --verbose - cd ../.. - run: name: Generate Builds (Windows) command: yarn electron-builder -w --x64 -p never @@ -114,12 +108,6 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 - - run: - name: Reinstall proper rust node module - command: | - cd ./node_modules/cider_utils - yarn run prebuild-downloads --platform=win32 --verbose - cd ../.. - run: name: Generate Builds (Winget) command: yarn electron-builder --win -c winget.json -p never diff --git a/package.json b/package.json index 4e4080a2..7b37c78a 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "airtunes2": "git+https://github.com/ciderapp/node_airtunes2.git", "castv2-client": "^1.2.0", "chokidar": "^3.5.3", - "cider_utils": "git+https://github.com/ciderapp/cider_utils.git", "discord-auto-rpc": "^1.0.16", "dns-js": "git+https://github.com/ciderapp/node-dns-js.git", "ejs": "^3.1.6", @@ -122,9 +121,9 @@ } ], "build": { - "electronVersion": "18.3.5", + "electronVersion": "19.0.8", "electronDownload": { - "version": "18.3.5+wvcus", + "version": "20.0.0-beta.11+wvcus", "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", diff --git a/resources/afterPack.js b/resources/afterPack.js index 16bdbee8..7cbae403 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -24,10 +24,7 @@ exports.default = function(context) { // execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'}) // if (fs.existsSync('dist/mac-arm64')) // execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'}) - - if (fs.existsSync('dist/mac-x64') || fs.existsSync('dist/mac-universal--x64') ) - execSync('cd ./node_modules/cider_utils; yarn run prebuild-downloads --platform=darwin --arch=arm64 --verbose; cd ../..',{stdio: 'inherit'}) - + // console.log('VMP signing complete') } diff --git a/src/main/providers/local/index.ts b/src/main/providers/local/index.ts index 157ac85e..bdcf547c 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 = []; @@ -36,21 +35,18 @@ export class LocalFiles { ProviderDB.init() let folders = utils.getStoreValue("libraryPrefs.localPaths") if (folders == null || folders.length == null || folders.length == 0) folders = [] - 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')} + + let supporttedformats = ["mp3", "aac", "webm", "flac", "m4a", "ogg", "wav", "opus"] + let audiofiles = files.filter(f => supporttedformats.includes(f.substring(f.lastIndexOf('.') + 1))); let metadatalist = [] let metadatalistart = [] let numid = 0; - - // 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; @@ -119,85 +115,21 @@ 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)} - } - - // 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 ?? audio.substring(audio.lastIndexOf('\\') + 1), - "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)} + } catch (e) {console.error("localfiles 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") @@ -217,15 +149,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") diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less index f4c9e228..719bb79d 100644 --- a/src/renderer/less/elements.less +++ b/src/renderer/less/elements.less @@ -2402,5 +2402,4 @@ input[type=checkbox][switch]:checked:active::before { .md-input-number{ min-width: 12em; } - } \ No newline at end of file diff --git a/src/renderer/views/components/settings-window.ejs b/src/renderer/views/components/settings-window.ejs index 8e4c4f08..b970bdf6 100644 --- a/src/renderer/views/components/settings-window.ejs +++ b/src/renderer/views/components/settings-window.ejs @@ -1213,21 +1213,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 @@ > -