43 lines
1009 B
JavaScript
43 lines
1009 B
JavaScript
import GLib from "gi://GLib";
|
|
|
|
export const lengthStr = (length) => {
|
|
if (length < 0) return "0:00";
|
|
|
|
const min = Math.floor(length / 60);
|
|
const sec = Math.floor(length % 60);
|
|
const sec0 = sec < 10 ? "0" : "";
|
|
return `${min}:${sec0}${sec}`;
|
|
};
|
|
|
|
export const blurBg = (cover) => {
|
|
if (!cover) return "";
|
|
|
|
const cachePath = Utils.CACHE_DIR + "/media";
|
|
const blurPath = cachePath + "/blur";
|
|
const bgPath = blurPath + cover.substring(cachePath.length);
|
|
|
|
if (!GLib.file_test(bgPath, GLib.FileTest.EXISTS)) {
|
|
Utils.ensureDirectory(blurPath);
|
|
Utils.exec(
|
|
`convert ${cover} -scale 10% -blur 0x2 -resize 1000% ${bgPath}`,
|
|
);
|
|
}
|
|
|
|
return `
|
|
background-image: url('${bgPath}');
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: cover;
|
|
`;
|
|
};
|
|
|
|
export const findPlayer = (players) => {
|
|
const active = players.find((p) => p.playBackStatus === "Playing");
|
|
|
|
if (active) return active;
|
|
|
|
for (const p of players) if (p) return p;
|
|
|
|
return undefined;
|
|
};
|