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}
`, //${album !== "" ? `${album}` : ""}` ]); } 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}`, //
${album !== "" ? `${album}` : ""}` ]); } 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 {} } }