diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts
index fd698ad4..caf2d4e5 100644
--- a/src/main/base/browserwindow.ts
+++ b/src/main/base/browserwindow.ts
@@ -1,5 +1,5 @@
-import { join } from "path";
-import { app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen } from "electron";
+import {join} from "path";
+import {app, BrowserWindow as bw, ipcMain, ShareMenu, shell, screen, dialog} from "electron";
import * as windowStateKeeper from "electron-window-state";
import * as express from "express";
import * as getPort from "get-port";
@@ -122,6 +122,7 @@ export class BrowserWindow {
"components/fullscreen",
"components/miniplayer",
"components/castmenu",
+ "components/pathmenu",
"components/airplay-modal",
"components/artist-chip",
"components/hello-world",
@@ -1256,7 +1257,7 @@ export class BrowserWindow {
"copyright": metadata.common.copyright ?? "",
"assetUrl": "file:///" +audio,
"contentAdvisory": "",
- "releaseDateTime": "2022-05-13T00:23:00Z",
+ "releaseDateTime": `${metadata?.common?.year ?? '2022'}-05-13T00:23:00Z`,
"durationInMillis": Math.floor((metadata.format.duration?? 0) * 1000),
"offers": [
@@ -1268,24 +1269,6 @@ export class BrowserWindow {
"contentRating": "clean"
}
};
-
-
- // let form = {"id": "/ciderlocal?" + audio,
- // "type": "library-songs",
- // "href": "/ciderlocal?" + audio,
- // "artwork": {
- // "url": metadata.common.picture != undefined ? "data:image/png;base64,"+metadata.common.picture[0].data.toString('base64')+"" : "",
- // },
- // "attributes":
- // { "durationInMillis": Math.floor((metadata.format.duration?? 0) * 1000),
- // "hasLyrics": false,
- // "playParams": { "id": "/ciderlocal?" + audio, "kind": "song", "isLibrary": true, "reporting": false },
- // "trackNumber": 0,
- // "discNumber": 0,
- // "genreNames": [""],
- // "name": metadata.common.title,
- // "albumName": metadata.common.album,
- // "artistName": metadata.common.artist}}
metadatalistart.push({
id : "ciderlocal" + numid,
url: metadata.common.picture != undefined ? metadata.common.picture[0].data.toString('base64') : "",
@@ -1497,10 +1480,17 @@ export class BrowserWindow {
}
});
+
ipcMain.on('open-appdata', (_event) => {
shell.openPath(app.getPath('userData'));
});
+ ipcMain.handle('folderSelector', async (_event) => {
+ let u = await dialog.showOpenDialog({
+ properties: ['openDirectory','multiSelections']
+ });
+ return u.filePaths
+ });
//#region Cider Connect
ipcMain.on('cc-auth', (_event) => {
diff --git a/src/main/base/store.ts b/src/main/base/store.ts
index 6bf6071c..a4fda8a7 100644
--- a/src/main/base/store.ts
+++ b/src/main/base/store.ts
@@ -155,6 +155,7 @@ export class Store {
"sortOrder": "asc",
"viewAs": "covers"
},
+ "localPaths": []
},
"audio": {
"volume": 1,
diff --git a/src/main/base/vcomponents.json b/src/main/base/vcomponents.json
index 42f86c68..53232dc8 100644
--- a/src/main/base/vcomponents.json
+++ b/src/main/base/vcomponents.json
@@ -60,6 +60,7 @@
"components/fullscreen",
"components/miniplayer",
"components/castmenu",
+ "components/pathmenu",
"components/airplay-modal",
"components/artist-chip",
"components/hello-world",
diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js
index 37ade84b..52d9b817 100644
--- a/src/renderer/main/vueapp.js
+++ b/src/renderer/main/vueapp.js
@@ -216,6 +216,7 @@ const app = new Vue({
audioPlaybackRate: false,
showPlaylist: false,
castMenu: false,
+ pathMenu: false,
moreInfo: false,
airplayPW: false,
settings: false
@@ -858,7 +859,7 @@ const app = new Vue({
})
ipcRenderer.on('getUpdatedLocalList', (event, data) => {
- console.log("cider-local", data);
+ // console.log("cider-local", data);
this.library.localsongs = data;
})
@@ -1072,6 +1073,8 @@ const app = new Vue({
if (this.cfg.general.themeUpdateNotification && !this.isDev) {
this.checkForThemeUpdates()
}
+
+ ipcRenderer.send("scanLibrary",app.cfg.libraryPrefs.localPaths)
},
showFoo(querySelector, time) {
clearTimeout(this.idleTimer);
diff --git a/src/renderer/views/app/panels.ejs b/src/renderer/views/app/panels.ejs
index 2489a2a5..cd5783a1 100644
--- a/src/renderer/views/app/panels.ejs
+++ b/src/renderer/views/app/panels.ejs
@@ -25,6 +25,9 @@