mirror of
https://github.com/markuryy/shark.git
synced 2025-12-12 11:41:02 +00:00
feat(dz): add playlist caching and playlist view UI
Introduce database schema and types for caching online playlist tracks. Add functions to upsert and retrieve playlist tracks from the cache. Implement a new Svelte page for viewing individual playlists, including favorite tracks, with UI for track listing and playlist info. Update the main service page to support double-click navigation to playlist details.
This commit is contained in:
@@ -100,10 +100,25 @@ pub fn run() {
|
||||
cached_at INTEGER NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS deezer_playlist_tracks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
playlist_id TEXT NOT NULL,
|
||||
track_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
artist_name TEXT NOT NULL,
|
||||
album_title TEXT,
|
||||
duration INTEGER DEFAULT 0,
|
||||
track_number INTEGER,
|
||||
cached_at INTEGER NOT NULL,
|
||||
UNIQUE(playlist_id, track_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_playlists_title ON deezer_playlists(title);
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_albums_artist ON deezer_albums(artist_name);
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_artists_name ON deezer_artists(name);
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_tracks_title ON deezer_tracks(title);
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_playlist_tracks_playlist ON deezer_playlist_tracks(playlist_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_deezer_playlist_tracks_track ON deezer_playlist_tracks(track_id);
|
||||
",
|
||||
kind: MigrationKind::Up,
|
||||
}];
|
||||
|
||||
Reference in New Issue
Block a user