Aurora SpotiRip desktop and web app

- Spotify playlist, library, album and artist browsing with in-app playback
- Song, playlist and album downloads via spotdl with YouTube and Bandcamp fallbacks
- Electron desktop app (castLabs Widevine) with a permanent sidebar layout
- Linux and Windows packaging scripts
This commit is contained in:
2026-09-25 23:20:57 -05:00
commit 3178b8f4f7
204 changed files with 26045 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
export type LibraryHistoryEntry = {
id: string;
timestamp: number;
kind: "playlist" | "identify" | "convert";
title: string;
trackCount?: number;
artworkUrl?: string;
sourceUrl?: string;
};
const KEY = "aurora-spotirip-history-v1";
export function loadLibraryHistory(): LibraryHistoryEntry[] {
if (typeof window === "undefined") return [];
try {
const parsed = JSON.parse(window.localStorage.getItem(KEY) || "[]");
return Array.isArray(parsed) ? parsed : [];
} catch {
return [];
}
}
export function addLibraryHistory(entry: Omit<LibraryHistoryEntry, "id" | "timestamp">) {
const current = loadLibraryHistory();
const next: LibraryHistoryEntry[] = [
{
...entry,
id: crypto.randomUUID(),
timestamp: Date.now(),
},
...current,
].slice(0, 200);
window.localStorage.setItem(KEY, JSON.stringify(next));
}
export function clearLibraryHistory() {
window.localStorage.removeItem(KEY);
}