themes can now be in folders and have resources in those folders
This commit is contained in:
parent
7df1b9ba16
commit
d6d93ed3b7
1 changed files with 28 additions and 4 deletions
|
@ -4,7 +4,7 @@ import * as windowStateKeeper from "electron-window-state";
|
||||||
import * as express from "express";
|
import * as express from "express";
|
||||||
import * as getPort from "get-port";
|
import * as getPort from "get-port";
|
||||||
import {search} from "youtube-search-without-api-key";
|
import {search} from "youtube-search-without-api-key";
|
||||||
import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs";
|
import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, statSync} from "fs";
|
||||||
import {Stream} from "stream";
|
import {Stream} from "stream";
|
||||||
import {networkInterfaces} from "os";
|
import {networkInterfaces} from "os";
|
||||||
import * as mm from 'music-metadata';
|
import * as mm from 'music-metadata';
|
||||||
|
@ -240,7 +240,20 @@ export class BrowserWindow {
|
||||||
} else {
|
} else {
|
||||||
res.send(`// Theme not found - ${userThemePath}`);
|
res.send(`// Theme not found - ${userThemePath}`);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/themes/:theme/:file", (req, res) => {
|
||||||
|
const theme = req.params.theme.toLowerCase();
|
||||||
|
const file = req.params.file;
|
||||||
|
const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme);
|
||||||
|
const userThemePath = join(utils.getPath('themes'), theme);
|
||||||
|
if (existsSync(userThemePath)) {
|
||||||
|
res.sendFile(join(userThemePath, file));
|
||||||
|
} else if (existsSync(themePath)) {
|
||||||
|
res.sendFile(join(themePath, file));
|
||||||
|
} else {
|
||||||
|
res.send(`// File not found - ${userThemePath}`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get("/audio.webm", (req, res) => {
|
app.get("/audio.webm", (req, res) => {
|
||||||
|
@ -359,10 +372,21 @@ export class BrowserWindow {
|
||||||
|
|
||||||
ipcMain.on("get-themes", (event, _key) => {
|
ipcMain.on("get-themes", (event, _key) => {
|
||||||
if (existsSync(utils.getPath("themes"))) {
|
if (existsSync(utils.getPath("themes"))) {
|
||||||
|
// return any .less files and scan any folders in the themes folder for .less files
|
||||||
let files = readdirSync(utils.getPath("themes"));
|
let files = readdirSync(utils.getPath("themes"));
|
||||||
let themes = files.filter((file) => {
|
let themes = [];
|
||||||
return file.endsWith(".less");
|
for (let file of files) {
|
||||||
});
|
if (file.endsWith(".less")) {
|
||||||
|
themes.push(file);
|
||||||
|
} else if (statSync(join(utils.getPath("themes"), file)).isDirectory()) {
|
||||||
|
let subFiles = readdirSync(join(utils.getPath("themes"), file));
|
||||||
|
for (let subFile of subFiles) {
|
||||||
|
if (subFile.endsWith(".less")) {
|
||||||
|
themes.push(join(file, subFile));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
event.returnValue = themes;
|
event.returnValue = themes;
|
||||||
} else {
|
} else {
|
||||||
event.returnValue = [];
|
event.returnValue = [];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue