feat(spotify): caching for Spotify to Deezer conversions to reduce API calls

This commit is contained in:
Markury
2026-03-18 11:08:08 -04:00
parent a846080677
commit 2c471370e4
3 changed files with 185 additions and 94 deletions

View File

@@ -299,10 +299,11 @@ pub fn run() {
kind: MigrationKind::Up,
}];
let spotify_migrations = vec![Migration {
version: 1,
description: "create_spotify_cache_tables",
sql: "
let spotify_migrations = vec![
Migration {
version: 1,
description: "create_spotify_cache_tables",
sql: "
CREATE TABLE IF NOT EXISTS spotify_playlists (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
@@ -364,8 +365,25 @@ pub fn run() {
CREATE INDEX IF NOT EXISTS idx_spotify_playlist_tracks_track ON spotify_playlist_tracks(track_id);
CREATE INDEX IF NOT EXISTS idx_spotify_playlist_tracks_isrc ON spotify_playlist_tracks(isrc);
",
kind: MigrationKind::Up,
}];
kind: MigrationKind::Up,
},
Migration {
version: 2,
description: "create_spotify_deezer_conversion_cache",
sql: "
CREATE TABLE IF NOT EXISTS spotify_deezer_conversions (
spotify_track_id TEXT PRIMARY KEY,
deezer_track_id INTEGER NOT NULL,
deezer_track_json TEXT NOT NULL,
match_method TEXT NOT NULL,
cached_at INTEGER NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_conversions_deezer_id ON spotify_deezer_conversions(deezer_track_id);
",
kind: MigrationKind::Up,
},
];
tauri::Builder::default()
.plugin(tauri_plugin_oauth::init())