feat: Album Color Theme plugin

Co-authored-by: EdiBOI25 <86252338+EdiBOI25@users.noreply.github.com>
This commit is contained in:
JellyBrick
2023-09-27 18:19:23 +09:00
parent 170e2a696e
commit 6bb33453c7
6 changed files with 483 additions and 16 deletions

View File

@ -0,0 +1,39 @@
import path from 'node:path';
import { getAverageColor } from 'fast-average-color-node';
import { BrowserWindow } from 'electron';
import { injectCSS } from '../utils';
import registerCallback from '../../providers/song-info';
export default (win: BrowserWindow) => {
injectCSS(win.webContents, path.join(__dirname, 'style.css'));
registerCallback((songInfo) => {
const songTitle = songInfo.title;
const songImage = songInfo.imageSrc;
if (songImage && songTitle) {
getAverageColor(songImage)
.then((color) => {
//div.style.backgroundColor = color.rgba;
//console.log('Average color', color);
if (color.hex === '#000000') {
color.rgb = 'rgb(238,238,238)';
color.isDark = false;
color.isLight = true;
} else if (color.hex === '#ffffff') {
color.rgb = 'rgb(0,0,0)';
color.isDark = true;
color.isLight = false;
}
win.webContents.send('album-color-changed', color);
})
.catch((e) => {
console.error(e);
});
}
});
};