From ec8389563e982b4be5f9b5ff3aed2d2b2f76329d Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sat, 27 Aug 2022 22:56:12 +0700 Subject: [PATCH 1/2] remove local playback ( it's a mess) --- .circleci/config.yml | 10 +- package.json | 7 -- src/main/base/browserwindow.ts | 15 +-- src/main/providers/local/db/index.ts | 24 ++--- src/main/providers/local/index.ts | 100 +++++++++--------- src/renderer/audio/audio.js | 2 +- .../views/components/settings-window.ejs | 4 +- src/renderer/views/components/sidebar.ejs | 4 +- 8 files changed, 80 insertions(+), 86 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ccb0392..4da1dde0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,11 +22,11 @@ jobs: - run: name: Fetch Application Version command: ./resources/version.sh || true - # - restore_cache: - # key: dependency-cache-{{ checksum "pnpm-lock.yaml" }} - # - run: - # name: Clear node_airtunes2 cache - # command: rm -rf ~/.pnpm-store/tmp/cf5bc2de2629636ca224995234b8eaa1 || true + - restore_cache: + key: dependency-cache-{{ checksum "pnpm-lock.yaml" }} + - run: + name: Clear node_airtunes2 cache + command: rm -rf ~/.pnpm-store/tmp/cf5bc2de2629636ca224995234b8eaa1 || true - run: name: Install Node Dependencies command: pnpm install --frozen-lockfile diff --git a/package.json b/package.json index aa4eed1c..1df7103f 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,6 @@ "dependencies": { "@sentry/electron": "^4.0.0", "@sentry/integrations": "^7.8.1", - "@types/pouchdb": "^6.4.0", - "@types/pouchdb-node": "^6.1.4", "adm-zip": "0.4.10", "airtunes2": "git+https://github.com/ciderapp/node_airtunes2.git", "castv2-client": "^1.2.0", @@ -60,16 +58,11 @@ "get-port": "5.1.1", "jimp": "^0.16.1", "lastfmapi": "^0.1.1", - "level": "^8.0.0", - "leveldown": "^6.1.1", "mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git", "mpris-service": "^2.1.2", "music-metadata": "7.12.6", "node-gyp": "^9.1.0", "node-ssdp": "^4.0.1", - "pouchdb-adapter-leveldb": "^7.3.0", - "pouchdb-node": "^7.3.0", - "pouchdb-upsert": "^2.2.0", "qrcode": "^1.5.1", "request": "^2.88.2", "run-script-os": "^1.1.6", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 4bd5f5dd..52d32099 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -1178,13 +1178,14 @@ export class BrowserWindow { `); }); - ipcMain.handle("scanLibrary", async (event, folders) => { - const oldmetadatalist = await LocalFiles.sendOldLibrary(); - BrowserWindow.win.webContents.send("getUpdatedLocalList", oldmetadatalist); - const metadatalist = await LocalFiles.scanLibrary(); - BrowserWindow.win.webContents.send("getUpdatedLocalList", metadatalist); - LocalFiles.cleanUpDB(); - }); + // ipcMain.handle("scanLibrary", async (event, folders) => { + // // const oldmetadatalist = await LocalFiles.sendOldLibrary(); + // // BrowserWindow.win.webContents.send("getUpdatedLocalList", oldmetadatalist); + // const metadatalist = await LocalFiles.scanLibrary(); + // BrowserWindow.win.webContents.send("getUpdatedLocalList", metadatalist); + // LocalFiles.localSongs = metadatalist; + // // LocalFiles.cleanUpDB(); + // }); LocalFiles.eventEmitter.on("newtracks", (data) => { BrowserWindow.win.webContents.send("getUpdatedLocalList", data); diff --git a/src/main/providers/local/db/index.ts b/src/main/providers/local/db/index.ts index c07c722a..25261efe 100644 --- a/src/main/providers/local/db/index.ts +++ b/src/main/providers/local/db/index.ts @@ -1,12 +1,12 @@ -import * as PouchDB from "pouchdb-node"; -import { join } from "path"; -import { app } from "electron"; -PouchDB.plugin(require("pouchdb-upsert")); -export class ProviderDB { - public static db: any = null; - static init() { - if (ProviderDB.db == null) { - ProviderDB.db = new PouchDB(join(app.getPath("userData"), "tracksdb")); - } - } -} +// import * as PouchDB from "pouchdb-node"; +// import { join } from "path"; +// import { app } from "electron"; +// PouchDB.plugin(require("pouchdb-upsert")); +// export class ProviderDB { +// public static db: any = null; +// static init() { +// if (ProviderDB.db == null) { +// ProviderDB.db = new PouchDB(join(app.getPath("userData"), "tracksdb")); +// } +// } +// } diff --git a/src/main/providers/local/index.ts b/src/main/providers/local/index.ts index 05ffc259..f83b6978 100644 --- a/src/main/providers/local/index.ts +++ b/src/main/providers/local/index.ts @@ -1,4 +1,4 @@ -import { ProviderDB } from "./db"; +// import { ProviderDB } from "./db"; import * as path from "path"; const { readdir } = require("fs").promises; import { utils } from "../../base/utils"; @@ -10,7 +10,7 @@ import { EventEmitter } from "events"; export class LocalFiles { static localSongs: any = []; static localSongsArts: any = []; - public static DB = ProviderDB.db; + // public static DB = ProviderDB.db; static eventEmitter = new EventEmitter(); static getDataType(item_id: String | any) { @@ -18,24 +18,24 @@ export class LocalFiles { else if ((item_id ?? "").startsWith("ciderlocal")) return "track"; } - static async sendOldLibrary() { - ProviderDB.init(); - let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => { - return item.doc; - }); - let tracks = rows.filter((item: any) => { - return this.getDataType(item._id) == "track"; - }); - let arts = rows.filter((item: any) => { - return this.getDataType(item._id) == "artwork"; - }); - this.localSongs = tracks; - this.localSongsArts = arts; - return tracks; - } + // static async sendOldLibrary() { + // ProviderDB.init(); + // let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => { + // return item.doc; + // }); + // let tracks = rows.filter((item: any) => { + // return this.getDataType(item._id) == "track"; + // }); + // let arts = rows.filter((item: any) => { + // return this.getDataType(item._id) == "artwork"; + // }); + // this.localSongs = tracks; + // this.localSongsArts = arts; + // return tracks; + // } static async scanLibrary() { - ProviderDB.init(); + // ProviderDB.init(); let folders = utils.getStoreValue("libraryPrefs.localPaths"); if (folders == null || folders.length == null || folders.length == 0) folders = []; let files: any[] = []; @@ -109,8 +109,8 @@ export class LocalFiles { }; metadatalistart.push(art); numid += 1; - ProviderDB.db.putIfNotExists(form); - ProviderDB.db.putIfNotExists(art); + // ProviderDB.db.putIfNotExists(form); + // ProviderDB.db.putIfNotExists(art); metadatalist.push(form); if (this.localSongs.length === 0 && numid % 10 === 0) { @@ -138,42 +138,42 @@ export class LocalFiles { return Array.prototype.concat(...files); } - static async cleanUpDB() { - let folders = utils.getStoreValue("libraryPrefs.localPaths"); - let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => { - return item.doc; - }); - let tracks = rows.filter((item: any) => { - return ( - this.getDataType(item._id) == "track" && - !folders.some((i: String) => { - return item["attributes"]["assetUrl"].startsWith("file:///" + i); - }) - ); - }); - let hashs = tracks.map((i: any) => { - return i._id; - }); - for (let hash of hashs) { - try { - ProviderDB.db.get(hash).then(function (doc: any) { - return ProviderDB.db.remove(doc); - }); - } catch (e) {} - try { - ProviderDB.db.get(hash.replace("ciderlocal", "ciderlocalart")).then(function (doc: any) { - return ProviderDB.db.remove(doc); - }); - } catch (e) {} - } - } + // static async cleanUpDB() { + // let folders = utils.getStoreValue("libraryPrefs.localPaths"); + // let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => { + // return item.doc; + // }); + // let tracks = rows.filter((item: any) => { + // return ( + // this.getDataType(item._id) == "track" && + // !folders.some((i: String) => { + // return item["attributes"]["assetUrl"].startsWith("file:///" + i); + // }) + // ); + // }); + // let hashs = tracks.map((i: any) => { + // return i._id; + // }); + // for (let hash of hashs) { + // try { + // ProviderDB.db.get(hash).then(function (doc: any) { + // return ProviderDB.db.remove(doc); + // }); + // } catch (e) {} + // try { + // ProviderDB.db.get(hash.replace("ciderlocal", "ciderlocalart")).then(function (doc: any) { + // return ProviderDB.db.remove(doc); + // }); + // } catch (e) {} + // } + // } static setupHandlers() { const app = utils.getExpress(); console.log("Setting up handlers for local files"); app.get("/ciderlocal/:songs", (req: any, res: any) => { const audio = atob(req.params.songs.replace(/_/g, "/").replace(/-/g, "+")); - //console.log('auss', audio) + // console.log('auss', LocalFiles.localSongs) let data = { data: LocalFiles.localSongs.filter((f: any) => audio.split(",").includes(f.id)), }; diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 62df318d..cc49585f 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -397,7 +397,7 @@ const CiderAudio = { constructor() { super(); - this._bufferSize = 1024; + this._bufferSize = 128; this._buffers = null; this._initBuffer(); } diff --git a/src/renderer/views/components/settings-window.ejs b/src/renderer/views/components/settings-window.ejs index 065dc8f5..99e188b2 100644 --- a/src/renderer/views/components/settings-window.ejs +++ b/src/renderer/views/components/settings-window.ejs @@ -262,7 +262,7 @@ -
+
diff --git a/src/renderer/views/components/sidebar.ejs b/src/renderer/views/components/sidebar.ejs index e11944eb..baf16fe4 100644 --- a/src/renderer/views/components/sidebar.ejs +++ b/src/renderer/views/components/sidebar.ejs @@ -139,7 +139,7 @@ > -