remove local playback ( it's a mess)
This commit is contained in:
parent
43c07b1168
commit
ec8389563e
8 changed files with 80 additions and 86 deletions
|
@ -22,11 +22,11 @@ jobs:
|
||||||
- run:
|
- run:
|
||||||
name: Fetch Application Version
|
name: Fetch Application Version
|
||||||
command: ./resources/version.sh || true
|
command: ./resources/version.sh || true
|
||||||
# - restore_cache:
|
- restore_cache:
|
||||||
# key: dependency-cache-{{ checksum "pnpm-lock.yaml" }}
|
key: dependency-cache-{{ checksum "pnpm-lock.yaml" }}
|
||||||
# - run:
|
- run:
|
||||||
# name: Clear node_airtunes2 cache
|
name: Clear node_airtunes2 cache
|
||||||
# command: rm -rf ~/.pnpm-store/tmp/cf5bc2de2629636ca224995234b8eaa1 || true
|
command: rm -rf ~/.pnpm-store/tmp/cf5bc2de2629636ca224995234b8eaa1 || true
|
||||||
- run:
|
- run:
|
||||||
name: Install Node Dependencies
|
name: Install Node Dependencies
|
||||||
command: pnpm install --frozen-lockfile
|
command: pnpm install --frozen-lockfile
|
||||||
|
|
|
@ -41,8 +41,6 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/electron": "^4.0.0",
|
"@sentry/electron": "^4.0.0",
|
||||||
"@sentry/integrations": "^7.8.1",
|
"@sentry/integrations": "^7.8.1",
|
||||||
"@types/pouchdb": "^6.4.0",
|
|
||||||
"@types/pouchdb-node": "^6.1.4",
|
|
||||||
"adm-zip": "0.4.10",
|
"adm-zip": "0.4.10",
|
||||||
"airtunes2": "git+https://github.com/ciderapp/node_airtunes2.git",
|
"airtunes2": "git+https://github.com/ciderapp/node_airtunes2.git",
|
||||||
"castv2-client": "^1.2.0",
|
"castv2-client": "^1.2.0",
|
||||||
|
@ -60,16 +58,11 @@
|
||||||
"get-port": "5.1.1",
|
"get-port": "5.1.1",
|
||||||
"jimp": "^0.16.1",
|
"jimp": "^0.16.1",
|
||||||
"lastfmapi": "^0.1.1",
|
"lastfmapi": "^0.1.1",
|
||||||
"level": "^8.0.0",
|
|
||||||
"leveldown": "^6.1.1",
|
|
||||||
"mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git",
|
"mdns-js": "git+https://github.com/ciderapp/node-mdns-js.git",
|
||||||
"mpris-service": "^2.1.2",
|
"mpris-service": "^2.1.2",
|
||||||
"music-metadata": "7.12.6",
|
"music-metadata": "7.12.6",
|
||||||
"node-gyp": "^9.1.0",
|
"node-gyp": "^9.1.0",
|
||||||
"node-ssdp": "^4.0.1",
|
"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",
|
"qrcode": "^1.5.1",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
"run-script-os": "^1.1.6",
|
"run-script-os": "^1.1.6",
|
||||||
|
|
|
@ -1178,13 +1178,14 @@ export class BrowserWindow {
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.handle("scanLibrary", async (event, folders) => {
|
// ipcMain.handle("scanLibrary", async (event, folders) => {
|
||||||
const oldmetadatalist = await LocalFiles.sendOldLibrary();
|
// // const oldmetadatalist = await LocalFiles.sendOldLibrary();
|
||||||
BrowserWindow.win.webContents.send("getUpdatedLocalList", oldmetadatalist);
|
// // BrowserWindow.win.webContents.send("getUpdatedLocalList", oldmetadatalist);
|
||||||
const metadatalist = await LocalFiles.scanLibrary();
|
// const metadatalist = await LocalFiles.scanLibrary();
|
||||||
BrowserWindow.win.webContents.send("getUpdatedLocalList", metadatalist);
|
// BrowserWindow.win.webContents.send("getUpdatedLocalList", metadatalist);
|
||||||
LocalFiles.cleanUpDB();
|
// LocalFiles.localSongs = metadatalist;
|
||||||
});
|
// // LocalFiles.cleanUpDB();
|
||||||
|
// });
|
||||||
|
|
||||||
LocalFiles.eventEmitter.on("newtracks", (data) => {
|
LocalFiles.eventEmitter.on("newtracks", (data) => {
|
||||||
BrowserWindow.win.webContents.send("getUpdatedLocalList", data);
|
BrowserWindow.win.webContents.send("getUpdatedLocalList", data);
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import * as PouchDB from "pouchdb-node";
|
// import * as PouchDB from "pouchdb-node";
|
||||||
import { join } from "path";
|
// import { join } from "path";
|
||||||
import { app } from "electron";
|
// import { app } from "electron";
|
||||||
PouchDB.plugin(require("pouchdb-upsert"));
|
// PouchDB.plugin(require("pouchdb-upsert"));
|
||||||
export class ProviderDB {
|
// export class ProviderDB {
|
||||||
public static db: any = null;
|
// public static db: any = null;
|
||||||
static init() {
|
// static init() {
|
||||||
if (ProviderDB.db == null) {
|
// if (ProviderDB.db == null) {
|
||||||
ProviderDB.db = new PouchDB(join(app.getPath("userData"), "tracksdb"));
|
// ProviderDB.db = new PouchDB(join(app.getPath("userData"), "tracksdb"));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ProviderDB } from "./db";
|
// import { ProviderDB } from "./db";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
const { readdir } = require("fs").promises;
|
const { readdir } = require("fs").promises;
|
||||||
import { utils } from "../../base/utils";
|
import { utils } from "../../base/utils";
|
||||||
|
@ -10,7 +10,7 @@ import { EventEmitter } from "events";
|
||||||
export class LocalFiles {
|
export class LocalFiles {
|
||||||
static localSongs: any = [];
|
static localSongs: any = [];
|
||||||
static localSongsArts: any = [];
|
static localSongsArts: any = [];
|
||||||
public static DB = ProviderDB.db;
|
// public static DB = ProviderDB.db;
|
||||||
static eventEmitter = new EventEmitter();
|
static eventEmitter = new EventEmitter();
|
||||||
|
|
||||||
static getDataType(item_id: String | any) {
|
static getDataType(item_id: String | any) {
|
||||||
|
@ -18,24 +18,24 @@ export class LocalFiles {
|
||||||
else if ((item_id ?? "").startsWith("ciderlocal")) return "track";
|
else if ((item_id ?? "").startsWith("ciderlocal")) return "track";
|
||||||
}
|
}
|
||||||
|
|
||||||
static async sendOldLibrary() {
|
// static async sendOldLibrary() {
|
||||||
ProviderDB.init();
|
// ProviderDB.init();
|
||||||
let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => {
|
// let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => {
|
||||||
return item.doc;
|
// return item.doc;
|
||||||
});
|
// });
|
||||||
let tracks = rows.filter((item: any) => {
|
// let tracks = rows.filter((item: any) => {
|
||||||
return this.getDataType(item._id) == "track";
|
// return this.getDataType(item._id) == "track";
|
||||||
});
|
// });
|
||||||
let arts = rows.filter((item: any) => {
|
// let arts = rows.filter((item: any) => {
|
||||||
return this.getDataType(item._id) == "artwork";
|
// return this.getDataType(item._id) == "artwork";
|
||||||
});
|
// });
|
||||||
this.localSongs = tracks;
|
// this.localSongs = tracks;
|
||||||
this.localSongsArts = arts;
|
// this.localSongsArts = arts;
|
||||||
return tracks;
|
// return tracks;
|
||||||
}
|
// }
|
||||||
|
|
||||||
static async scanLibrary() {
|
static async scanLibrary() {
|
||||||
ProviderDB.init();
|
// ProviderDB.init();
|
||||||
let folders = utils.getStoreValue("libraryPrefs.localPaths");
|
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 = [];
|
||||||
let files: any[] = [];
|
let files: any[] = [];
|
||||||
|
@ -109,8 +109,8 @@ export class LocalFiles {
|
||||||
};
|
};
|
||||||
metadatalistart.push(art);
|
metadatalistart.push(art);
|
||||||
numid += 1;
|
numid += 1;
|
||||||
ProviderDB.db.putIfNotExists(form);
|
// ProviderDB.db.putIfNotExists(form);
|
||||||
ProviderDB.db.putIfNotExists(art);
|
// ProviderDB.db.putIfNotExists(art);
|
||||||
metadatalist.push(form);
|
metadatalist.push(form);
|
||||||
|
|
||||||
if (this.localSongs.length === 0 && numid % 10 === 0) {
|
if (this.localSongs.length === 0 && numid % 10 === 0) {
|
||||||
|
@ -138,42 +138,42 @@ export class LocalFiles {
|
||||||
return Array.prototype.concat(...files);
|
return Array.prototype.concat(...files);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async cleanUpDB() {
|
// static async cleanUpDB() {
|
||||||
let folders = utils.getStoreValue("libraryPrefs.localPaths");
|
// let folders = utils.getStoreValue("libraryPrefs.localPaths");
|
||||||
let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => {
|
// let rows = (await ProviderDB.db.allDocs({ include_docs: true, attachments: true })).rows.map((item: any) => {
|
||||||
return item.doc;
|
// return item.doc;
|
||||||
});
|
// });
|
||||||
let tracks = rows.filter((item: any) => {
|
// let tracks = rows.filter((item: any) => {
|
||||||
return (
|
// return (
|
||||||
this.getDataType(item._id) == "track" &&
|
// this.getDataType(item._id) == "track" &&
|
||||||
!folders.some((i: String) => {
|
// !folders.some((i: String) => {
|
||||||
return item["attributes"]["assetUrl"].startsWith("file:///" + i);
|
// return item["attributes"]["assetUrl"].startsWith("file:///" + i);
|
||||||
})
|
// })
|
||||||
);
|
// );
|
||||||
});
|
// });
|
||||||
let hashs = tracks.map((i: any) => {
|
// let hashs = tracks.map((i: any) => {
|
||||||
return i._id;
|
// return i._id;
|
||||||
});
|
// });
|
||||||
for (let hash of hashs) {
|
// for (let hash of hashs) {
|
||||||
try {
|
// try {
|
||||||
ProviderDB.db.get(hash).then(function (doc: any) {
|
// ProviderDB.db.get(hash).then(function (doc: any) {
|
||||||
return ProviderDB.db.remove(doc);
|
// return ProviderDB.db.remove(doc);
|
||||||
});
|
// });
|
||||||
} catch (e) {}
|
// } catch (e) {}
|
||||||
try {
|
// try {
|
||||||
ProviderDB.db.get(hash.replace("ciderlocal", "ciderlocalart")).then(function (doc: any) {
|
// ProviderDB.db.get(hash.replace("ciderlocal", "ciderlocalart")).then(function (doc: any) {
|
||||||
return ProviderDB.db.remove(doc);
|
// return ProviderDB.db.remove(doc);
|
||||||
});
|
// });
|
||||||
} catch (e) {}
|
// } catch (e) {}
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
static setupHandlers() {
|
static setupHandlers() {
|
||||||
const app = utils.getExpress();
|
const app = utils.getExpress();
|
||||||
console.log("Setting up handlers for local files");
|
console.log("Setting up handlers for local files");
|
||||||
app.get("/ciderlocal/:songs", (req: any, res: any) => {
|
app.get("/ciderlocal/:songs", (req: any, res: any) => {
|
||||||
const audio = atob(req.params.songs.replace(/_/g, "/").replace(/-/g, "+"));
|
const audio = atob(req.params.songs.replace(/_/g, "/").replace(/-/g, "+"));
|
||||||
//console.log('auss', audio)
|
// console.log('auss', LocalFiles.localSongs)
|
||||||
let data = {
|
let data = {
|
||||||
data: LocalFiles.localSongs.filter((f: any) => audio.split(",").includes(f.id)),
|
data: LocalFiles.localSongs.filter((f: any) => audio.split(",").includes(f.id)),
|
||||||
};
|
};
|
||||||
|
|
|
@ -397,7 +397,7 @@ const CiderAudio = {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this._bufferSize = 1024;
|
this._bufferSize = 128;
|
||||||
this._buffers = null;
|
this._buffers = null;
|
||||||
this._initBuffer();
|
this._initBuffer();
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,7 +262,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line">
|
<!-- <div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{'Local files path'}}
|
{{'Local files path'}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -271,7 +271,7 @@
|
||||||
{{'Edit Paths'}}
|
{{'Edit Paths'}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
>
|
>
|
||||||
</sidebar-library-item>
|
</sidebar-library-item>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="$root.cfg.libraryPrefs.localPaths.length != 0">
|
<!-- <template v-if="$root.cfg.libraryPrefs.localPaths.length != 0">
|
||||||
<div class="app-sidebar-header-text"
|
<div class="app-sidebar-header-text"
|
||||||
@click="$root.cfg.general.sidebarCollapsed.localLibrary = !$root.cfg.general.sidebarCollapsed.localLibrary"
|
@click="$root.cfg.general.sidebarCollapsed.localLibrary = !$root.cfg.general.sidebarCollapsed.localLibrary"
|
||||||
:class="{collapsed: $root.cfg.general.sidebarCollapsed.localLibrary}">
|
:class="{collapsed: $root.cfg.general.sidebarCollapsed.localLibrary}">
|
||||||
|
@ -148,7 +148,7 @@
|
||||||
<template v-if="!$root.cfg.general.sidebarCollapsed.localLibrary">
|
<template v-if="!$root.cfg.general.sidebarCollapsed.localLibrary">
|
||||||
<sidebar-playlist :item="{attributes: { name:'Songs'} , id:'ciderlocal'}"></sidebar-playlist>
|
<sidebar-playlist :item="{attributes: { name:'Songs'} , id:'ciderlocal'}"></sidebar-playlist>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template> -->
|
||||||
<template v-if="$root.getPlaylistFolderChildren('p.applemusic').length != 0">
|
<template v-if="$root.getPlaylistFolderChildren('p.applemusic').length != 0">
|
||||||
<div
|
<div
|
||||||
class="app-sidebar-header-text"
|
class="app-sidebar-header-text"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue