Restore images if broken
This commit is contained in:
parent
1b6663c716
commit
5af82414ea
1 changed files with 64 additions and 50 deletions
48
index.js
48
index.js
|
@ -59,24 +59,28 @@ app.get("/cached/*", (req, res) => {
|
||||||
function waitForImage() {
|
function waitForImage() {
|
||||||
if (imgWait < imgWaitMax) {
|
if (imgWait < imgWaitMax) {
|
||||||
imgWait += 0.1
|
imgWait += 0.1
|
||||||
setTimeout(() => {
|
|
||||||
imgData = cachedImages.imgs[imgURL]
|
imgData = cachedImages.imgs[imgURL]
|
||||||
console.log(imgData)
|
|
||||||
if (imgData) {
|
if (imgData) {
|
||||||
fs.createReadStream(path.join(imgCache, imgData.file)).pipe(res)
|
var imgPath = path.join(imgCache, imgData.file)
|
||||||
} else {
|
|
||||||
waitForImage()
|
if (fs.existsSync(imgPath)) {
|
||||||
|
var img = fs.readFileSync(imgPath)
|
||||||
|
if (fs.existsSync(imgPath) && (img.toString().includes("<html") || fs.statSync(imgPath).size < 1000)) {
|
||||||
|
fs.rmSync(imgPath)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
waitForImage()
|
||||||
}, 100);
|
}, 100);
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fs.createReadStream(path.join(__dirname, "/imgs/notFound.png")).pipe(res)
|
fs.createReadStream(path.join(__dirname, "/imgs/notFound.png")).pipe(res)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (imgData) {
|
|
||||||
fs.createReadStream(path.join(imgCache, imgData.file)).pipe(res)
|
|
||||||
} else {
|
|
||||||
waitForImage()
|
waitForImage()
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
|
@ -176,21 +180,37 @@ function socketeer() {
|
||||||
station.next()
|
station.next()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(spotify)
|
// console.log(spotify)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let index = 0; index < lanyardData.activities.length; index++) {
|
for (let index = 0; index < lanyardData.activities.length; index++) {
|
||||||
const activity = lanyardData.activities[index];
|
const activity = lanyardData.activities[index];
|
||||||
|
|
||||||
|
downloadFromActivity(activity)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
socketeer()
|
||||||
|
|
||||||
|
async function downloadFromActivity(activity) {
|
||||||
var imgType = undefined
|
var imgType = undefined
|
||||||
var imgRes = "512x512/"
|
var imgRes = "512x512/"
|
||||||
for (var i = 0; i < 2; i++) {
|
for (var i = 0; i < 2; i++) {
|
||||||
if (get_img_url(activity, imgType)) {
|
if (get_img_url(activity, imgType)) {
|
||||||
var url = get_img_url(activity, imgType)
|
var url = get_img_url(activity, imgType)
|
||||||
var fn = Object.keys(cachedImages.imgs).length + "." + imgExtension
|
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)
|
var fp = path.join(imgCache, fn)
|
||||||
|
|
||||||
if (!cachedImages.imgs[url]) {
|
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()
|
const response = await (await fetch(thumborURL + imgRes + thumborArgs + url)).arrayBuffer()
|
||||||
|
|
||||||
fs.writeFileSync(fp, Buffer.from(response))
|
fs.writeFileSync(fp, Buffer.from(response))
|
||||||
|
@ -205,9 +225,3 @@ function socketeer() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
socketeer()
|
|
Loading…
Reference in a new issue