85 lines
1.8 KiB
TypeScript
85 lines
1.8 KiB
TypeScript
import { $, sleep } from "bun";
|
|
import { albumStuffF, fetchAlbumStuff } from "../lib/CiderV2Playing";
|
|
import { execFile } from "child_process";
|
|
import { rmSync } from "fs";
|
|
|
|
let x: albumStuffF | any = false;
|
|
try {
|
|
x = (await fetchAlbumStuff()) as albumStuffF;
|
|
} catch {}
|
|
|
|
function notifyWithImage(
|
|
song: string,
|
|
artUrl: string,
|
|
artist: string,
|
|
album: string,
|
|
) {
|
|
execFile("dunstify", [
|
|
"-t",
|
|
process.argv[3] === "rel" ? "1" : "2000",
|
|
"-r",
|
|
"67676767",
|
|
"-a",
|
|
"ocbwoy3-whatsplaying",
|
|
"-I",
|
|
artUrl,
|
|
song,
|
|
`${artist}<br/>`, //${album !== "" ? `<small>${album}</small>` : ""}`
|
|
]);
|
|
}
|
|
|
|
console.log(process.argv[3]);
|
|
|
|
function notifyBasic(song: string, artist: string, album: string) {
|
|
execFile("dunstify", [
|
|
"-t",
|
|
process.argv[3] === "rel" ? "1" : "2000",
|
|
"-r",
|
|
"67676767",
|
|
"-a",
|
|
"ocbwoy3-whatsplaying",
|
|
song,
|
|
`${artist}`, //<br/>${album !== "" ? `<small>${album}</small>` : ""}`
|
|
]);
|
|
}
|
|
|
|
if (process.argv[2] === "waybar") {
|
|
if (!x) {
|
|
process.stdout.write(
|
|
JSON.stringify({
|
|
class: "hidden",
|
|
}),
|
|
);
|
|
process.exit(0);
|
|
}
|
|
const y = x as albumStuffF;
|
|
process.stdout.write(
|
|
JSON.stringify({
|
|
// text: ` ${y.artist} — ${y.song}`.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">"),
|
|
text: ` ${y.artist} — ${y.song}`
|
|
.replaceAll("&", "&")
|
|
.replaceAll("<", "<")
|
|
.replaceAll(">", ">"),
|
|
tooltip: `${y.album}`
|
|
.replaceAll("&", "&")
|
|
.replaceAll("<", "<")
|
|
.replaceAll(">", ">"),
|
|
}),
|
|
);
|
|
}
|
|
|
|
if (process.argv[2] === "notif") {
|
|
const y = x as albumStuffF;
|
|
if (!x || !y.artUrl) process.exit(1);
|
|
|
|
try {
|
|
console.log(y.song, y.artUrl, y.artist, y.album);
|
|
notifyWithImage(y.song, y.artUrl, y.artist, y.album);
|
|
} catch {
|
|
notifyBasic(y.song, y.artist, y.album);
|
|
try {
|
|
rmSync(y.artUrl);
|
|
} catch {}
|
|
}
|
|
}
|