add error handling, add dupe checker to json files, add unavailable track checker to json

This commit is contained in:
Seth 2025-05-19 21:37:32 -04:00
parent cac779ffaa
commit a133624584
3 changed files with 33 additions and 25 deletions

4
.gitignore vendored
View file

@ -38,3 +38,7 @@ tmp
localstorage.json
localStorage.sqlite
downloaded
duplicates.name.json
duplicates.isrc.json
.gitignore
unavailable.json

View file

@ -146,19 +146,18 @@ for (const track of tracks.items) {
}
}
*/
/* Remove all tracks that are unavailable
for (const track of tracks.items) {
if (track.item.streamReady) {
continue
}
/* Remove all tracks that are unavailable*/
let unavailableTracks = tracks.items.filter(track => !track.item.streamReady);
/*for (const track of unavailableTracks) {
await utils.fetch("/users/199235629/favorites/tracks/" + track.item.id, {
method: "DELETE",
})
console.log("Removed from favorites", track.item.id)
}
*/
/*
}*/
Bun.write("unavailable.json", JSON.stringify(unavailableTracks, null, 2))
function findDuplicateTracksByName(tracks: typeof tracks.items) {
const seen = new Map<string, { count: number, originals: typeof tracks }>();
@ -214,29 +213,28 @@ function findDuplicateTracksByISRC(tracks: typeof tracks.items) {
}));
}
*/
/*
// Usage:
const duplicatesByISRC = findDuplicateTracksByISRC(tracks.items);
let duplicatesISRCText = {};
duplicatesByISRC.forEach(({ name, isrc, count, duplicates }) => {
console.log(`Name: ${name} ISRC: "${isrc}" - Count: ${count}`);
duplicates.forEach((trackObj) => {
//console.log(` - Track ID: ${trackObj.item.id}, Created: ${trackObj.created}`);
duplicatesISRCText[isrc] = { name, count, duplicates };
});
});
*/
/*
// Usage:
await Bun.write("duplicates.isrc.json", JSON.stringify(duplicatesISRCText, null, 2));
const duplicates = findDuplicateTracksByName(tracks.items);
console.log("Duplicate tracks:");
let duplicatesNamesText = {};
duplicates.forEach(({ normalizedTitle, count, duplicates }) => {
console.log(`Title: "${normalizedTitle}" - Count: ${count}`);
duplicates.forEach((trackObj) => {
//console.log(` - Track ID: ${trackObj.item.id}, Created: ${trackObj.created}`);
duplicatesNamesText[normalizedTitle] = { count, duplicates };
});
});
*/
await Bun.write("duplicates.name.json", JSON.stringify(duplicatesNamesText, null, 2));

View file

@ -41,7 +41,13 @@ export default class {
})
if (!response.ok) {
throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`)
//throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}\n${await response.text()}`);
return {
status: response.status,
statusText: response.statusText,
url: parsedUrl.toString(),
error: await response.text(),
}
}
return await response.json() as Object;