feat: data lifecycle rewrite, download clients, wanted list, and central catalog index
Ships the fresh-start schema cleanup: rebuilt explore catalog index pipeline (dump import, artifact fetch/build, incremental listen-count refresh), a new download subsystem (Lidarr/Prowlarr/qBittorrent/SABnzbd/ slskd/yt-dlp providers, staging, reconciliation, wanted list), and the supporting schema/query/store changes across backend and frontend. Also includes two smaller follow-ups: bump the central index's rebuild-after cadence from 90 to 180 days, and remove the Explore "library only" online/offline toggle entirely (frontend-only, no backend counterpart) rather than carry unused UI/state. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2Agd9af5hE7qzti2ackiS
This commit is contained in:
+13
@@ -1,6 +1,7 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
import {explore} from '../models';
|
||||
import {time} from '../models';
|
||||
import {context} from '../models';
|
||||
import {jobs} from '../models';
|
||||
|
||||
@@ -18,6 +19,8 @@ export function CAALimiter():Promise<explore.RateLimiter>;
|
||||
|
||||
export function CheckLibraryMBIDs(arg1:Array<string>):Promise<Record<string, string>>;
|
||||
|
||||
export function CoreCatalogImported():Promise<boolean>;
|
||||
|
||||
export function CoverArtGroupURL(arg1:string):Promise<string>;
|
||||
|
||||
export function CoverArtURL(arg1:string):Promise<string>;
|
||||
@@ -52,6 +55,12 @@ export function GetTrackThumbnail(arg1:string,arg2:string,arg3:string,arg4:strin
|
||||
|
||||
export function GetTrackThumbnails(arg1:Array<explore.TrackThumbnailRequest>):Promise<Record<string, string>>;
|
||||
|
||||
export function IndexBaselineSeries():Promise<number>;
|
||||
|
||||
export function IndexImportComplete():Promise<boolean>;
|
||||
|
||||
export function IndexLastImported():Promise<time.Time>;
|
||||
|
||||
export function InvalidateIndexDiscographies():Promise<void>;
|
||||
|
||||
export function InvalidateLibrarySync():Promise<void>;
|
||||
@@ -70,12 +79,16 @@ export function PopulateLocalCrossReferencesIfNeeded():Promise<void>;
|
||||
|
||||
export function PrefetchReleases(arg1:Array<string>):Promise<void>;
|
||||
|
||||
export function PrepareIndexRebuild():Promise<void>;
|
||||
|
||||
export function RebuildLyricsIndex():Promise<void>;
|
||||
|
||||
export function RebuildLyricsIndexIfNeeded():Promise<void>;
|
||||
|
||||
export function RecordSearchClick(arg1:string,arg2:string,arg3:string):Promise<void>;
|
||||
|
||||
export function RefreshIndexNow(arg1:time.Duration):Promise<void>;
|
||||
|
||||
export function RefreshListenCounts():Promise<void>;
|
||||
|
||||
export function ResolveReleaseGroupMBIDs(arg1:Array<string>):Promise<Record<string, string>>;
|
||||
|
||||
@@ -30,6 +30,10 @@ export function CheckLibraryMBIDs(arg1) {
|
||||
return window['go']['explore']['Service']['CheckLibraryMBIDs'](arg1);
|
||||
}
|
||||
|
||||
export function CoreCatalogImported() {
|
||||
return window['go']['explore']['Service']['CoreCatalogImported']();
|
||||
}
|
||||
|
||||
export function CoverArtGroupURL(arg1) {
|
||||
return window['go']['explore']['Service']['CoverArtGroupURL'](arg1);
|
||||
}
|
||||
@@ -98,6 +102,18 @@ export function GetTrackThumbnails(arg1) {
|
||||
return window['go']['explore']['Service']['GetTrackThumbnails'](arg1);
|
||||
}
|
||||
|
||||
export function IndexBaselineSeries() {
|
||||
return window['go']['explore']['Service']['IndexBaselineSeries']();
|
||||
}
|
||||
|
||||
export function IndexImportComplete() {
|
||||
return window['go']['explore']['Service']['IndexImportComplete']();
|
||||
}
|
||||
|
||||
export function IndexLastImported() {
|
||||
return window['go']['explore']['Service']['IndexLastImported']();
|
||||
}
|
||||
|
||||
export function InvalidateIndexDiscographies() {
|
||||
return window['go']['explore']['Service']['InvalidateIndexDiscographies']();
|
||||
}
|
||||
@@ -134,6 +150,10 @@ export function PrefetchReleases(arg1) {
|
||||
return window['go']['explore']['Service']['PrefetchReleases'](arg1);
|
||||
}
|
||||
|
||||
export function PrepareIndexRebuild() {
|
||||
return window['go']['explore']['Service']['PrepareIndexRebuild']();
|
||||
}
|
||||
|
||||
export function RebuildLyricsIndex() {
|
||||
return window['go']['explore']['Service']['RebuildLyricsIndex']();
|
||||
}
|
||||
@@ -146,6 +166,10 @@ export function RecordSearchClick(arg1, arg2, arg3) {
|
||||
return window['go']['explore']['Service']['RecordSearchClick'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function RefreshIndexNow(arg1) {
|
||||
return window['go']['explore']['Service']['RefreshIndexNow'](arg1);
|
||||
}
|
||||
|
||||
export function RefreshListenCounts() {
|
||||
return window['go']['explore']['Service']['RefreshListenCounts']();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user