From 0b8fec201fd56626ae72cffa5d799812d334cbaf Mon Sep 17 00:00:00 2001 From: bingus_violet Date: Mon, 10 Jun 2024 19:31:07 -0500 Subject: [PATCH] revert 5af82414ea0f555d7a30086077afd5a3134a5abd revert Restore images if broken --- index.js | 114 ++++++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 64 deletions(-) diff --git a/index.js b/index.js index 0a19ab8..fc30a1f 100644 --- a/index.js +++ b/index.js @@ -1,24 +1,24 @@ const express = require("express"), - fs = require("fs"), - path = require("path"), - WebSocket = require('ws'), - { Station } = require("@fridgefm/radio-core") +fs = require("fs"), +path = require("path"), +WebSocket = require('ws'), +{ Station } = require("@fridgefm/radio-core") const station = new Station({}) const PORT = process.env.PORT || 8080 const cachePath = path.join(__dirname, "cache"), - cacheFile = path.join(__dirname, "cache.json"), - configFile = path.join(__dirname, "config.json") +cacheFile = path.join(__dirname, "cache.json"), +configFile = path.join(__dirname, "config.json") var lanyardData if (!fs.existsSync(cachePath)) { fs.mkdirSync(cachePath) } -if (!fs.existsSync(cacheFile) || !JSON.parse(fs.readFileSync(cacheFile)).songs) { - fs.writeFileSync(cacheFile, fs.readFileSync(path.join(__dirname, "defaults/cache.json"))) +if (!fs.existsSync(cacheFile) || !JSON.parse(fs.readFileSync(cacheFile)).songs) { + fs.writeFileSync(cacheFile, fs.readFileSync(path.join(__dirname, "defaults/cache.json"))) } -if (!fs.existsSync(configFile)) { fs.writeFileSync(configFile, fs.readFileSync(path.join(__dirname, "defaults/config.json"))) } +if (!fs.existsSync(configFile)) { fs.writeFileSync(configFile, fs.readFileSync(path.join(__dirname, "defaults/config.json")))} var cacheDirs = ["songs", "imgs"] for (var i = 0; i < cacheDirs.length; i++) { @@ -36,7 +36,7 @@ const spotifydl = new Spotify({ }) const songCache = path.join(cachePath, "songs"), - imgCache = path.join(cachePath, "imgs") +imgCache = path.join(cachePath, "imgs") var app = express() @@ -54,33 +54,29 @@ app.get("/cached/*", (req, res) => { var imgURL = req.originalUrl imgURL = imgURL.substring(imgURL.indexOf("/", 2) + 1) var imgData = cachedImages.imgs[imgURL] - + var imgWait = 0 function waitForImage() { if (imgWait < imgWaitMax) { imgWait += 0.1 - imgData = cachedImages.imgs[imgURL] - - if (imgData) { - var imgPath = path.join(imgCache, imgData.file) - - if (fs.existsSync(imgPath)) { - var img = fs.readFileSync(imgPath) - if (fs.existsSync(imgPath) && (img.toString().includes(" { + setTimeout(() => { + imgData = cachedImages.imgs[imgURL] + console.log(imgData) + if (imgData) { + fs.createReadStream(path.join(imgCache, imgData.file)).pipe(res) + } else { waitForImage() - }, 100); - } - + } + }, 100); } else { fs.createReadStream(path.join(__dirname, "/imgs/notFound.png")).pipe(res) } } - waitForImage() + if (imgData) { + fs.createReadStream(path.join(imgCache, imgData.file)).pipe(res) + } else { + waitForImage() + } }) app.listen(PORT, () => { @@ -172,56 +168,46 @@ function socketeer() { lastSong = spotify.track_id station.addFolder(songPath) const removeSongs = (list) => list - .filter(track => track.fsStats.fullPath !== songPath); - + .filter(track => track.fsStats.fullPath !== songPath); + station.reorderPlaylist(removeSongs) station.start() station.next() } } else { - // console.log(spotify) + console.log(spotify) } for (let index = 0; index < lanyardData.activities.length; index++) { const activity = lanyardData.activities[index]; - downloadFromActivity(activity) + var imgType = undefined + var imgRes = "512x512/" + for (var i = 0; i < 2; i++) { + if (get_img_url(activity, imgType)) { + var url = get_img_url(activity, imgType) + var fn = Object.keys(cachedImages.imgs).length + "." + imgExtension + var fp = path.join(imgCache, fn) + + if (!cachedImages.imgs[url]) { + const response = await (await fetch(thumborURL + imgRes + thumborArgs + url)).arrayBuffer() + + fs.writeFileSync(fp, Buffer.from(response)) + cachedImages.imgs[url] = { + "file": fn, + "lastUpdated": Date.now() + } + fs.writeFileSync(cacheFile, JSON.stringify(cachedImages)) + } + imgType = "small_image" + imgRes = "128x128/" + } + } } } }) } -socketeer() - -async function downloadFromActivity(activity) { - var imgType = undefined - var imgRes = "512x512/" - for (var i = 0; i < 2; i++) { - if (get_img_url(activity, imgType)) { - var url = get_img_url(activity, imgType) - var fn = Object.keys(cachedImages.imgs).length + "." + imgExtension - - if (cachedImages.imgs[url] && !fs.existsSync(path.join(imgCache, cachedImages.imgs[url].file))) { - fn = Object.keys(cachedImages.imgs).indexOf(url) + "." + imgExtension - } - - var fp = path.join(imgCache, fn) - - if (!cachedImages.imgs[url] || !fs.existsSync(path.join(imgCache, cachedImages.imgs[url].file))) { - console.log(fn) - const response = await (await fetch(thumborURL + imgRes + thumborArgs + url)).arrayBuffer() - - fs.writeFileSync(fp, Buffer.from(response)) - cachedImages.imgs[url] = { - "file": fn, - "lastUpdated": Date.now() - } - fs.writeFileSync(cacheFile, JSON.stringify(cachedImages)) - } - imgType = "small_image" - imgRes = "128x128/" - } - } -} \ No newline at end of file +socketeer() \ No newline at end of file