RemoveFromLibrary deletes the audio_files rows the way the scan's own orphan cleanup does and records each path in excluded_paths. The exclusion is not an enhancement: without it the next scan finds the file, sees no row and imports it again, so the button undoes itself. The soft scan compares files on disk against rows in the database, so surveyAudioFiles and countAudioFiles both take the exclusion set — otherwise an excluded path makes the two disagree forever and queues a full scan on every launch. Deleting a row cascades to queue_tracks, so the removal calls the same CompactQueue hook RemoveLibrary does. Also lands the requested badge: library-status-indicator is a button again where it can act, utils/library-status.ts states once what owning and wanting mean, and the long-declared queued state finally has a producer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDCbcCZQepnpSQYJ6SxxZm
105 lines
3.7 KiB
TypeScript
Executable File
105 lines
3.7 KiB
TypeScript
Executable File
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
// This file is automatically generated. DO NOT EDIT
|
|
import {sqlcgen} from '../models';
|
|
import {library} from '../models';
|
|
import {context} from '../models';
|
|
import {jobs} from '../models';
|
|
|
|
export function AcquirePipelineLock():Promise<void>;
|
|
|
|
export function AddLibrary(arg1:string):Promise<sqlcgen.Library>;
|
|
|
|
export function CancelAllScans():Promise<void>;
|
|
|
|
export function CancelCurrentScan():Promise<void>;
|
|
|
|
export function CancelScan():Promise<void>;
|
|
|
|
export function FullRescan():Promise<library.ScanMetrics>;
|
|
|
|
export function GetAlbumCompleteness(arg1:number):Promise<library.AlbumCompleteness>;
|
|
|
|
export function GetAlbumTracks(arg1:number):Promise<Array<library.Track>>;
|
|
|
|
export function GetAlbumTracksByLibrary(arg1:number,arg2:number):Promise<Array<library.Track>>;
|
|
|
|
export function GetAlbumsByArtist(arg1:number):Promise<Array<library.Album>>;
|
|
|
|
export function GetAlbumsByArtistByLibrary(arg1:number,arg2:number):Promise<Array<library.Album>>;
|
|
|
|
export function GetAllAlbums():Promise<Array<library.Album>>;
|
|
|
|
export function GetAllAlbumsByLibrary(arg1:number):Promise<Array<library.Album>>;
|
|
|
|
export function GetAllArtists():Promise<Array<library.Artist>>;
|
|
|
|
export function GetAllArtistsByLibrary(arg1:number):Promise<Array<library.Artist>>;
|
|
|
|
export function GetAllGenresWithCounts():Promise<Array<library.GenreWithCount>>;
|
|
|
|
export function GetAllGenresWithCountsByLibrary(arg1:number):Promise<Array<library.GenreWithCount>>;
|
|
|
|
export function GetAllLibrariesWithTrackCounts():Promise<Array<library.Info>>;
|
|
|
|
export function GetAllTracks():Promise<Array<library.Track>>;
|
|
|
|
export function GetAllTracksByLibrary(arg1:number):Promise<Array<library.Track>>;
|
|
|
|
export function GetFilePathsByAlbums(arg1:Array<number>,arg2:number):Promise<Record<number, Array<string>>>;
|
|
|
|
export function GetFilePathsByGenres(arg1:Array<string>,arg2:number):Promise<Record<string, Array<string>>>;
|
|
|
|
export function GetFilePathsByRecordingMBIDs(arg1:Array<string>,arg2:number):Promise<Record<string, Array<string>>>;
|
|
|
|
export function GetRemovalImpact(arg1:number):Promise<library.RemovalImpact>;
|
|
|
|
export function GetScanQueueLength():Promise<number>;
|
|
|
|
export function GetTrackMBIDs(arg1:string):Promise<library.TrackMBIDs>;
|
|
|
|
export function GetTracksByGenre(arg1:string):Promise<Array<library.Track>>;
|
|
|
|
export function GetTracksByGenreByLibrary(arg1:string,arg2:number):Promise<Array<library.Track>>;
|
|
|
|
export function IsScanActive():Promise<boolean>;
|
|
|
|
export function IsScanPaused():Promise<boolean>;
|
|
|
|
export function LibraryPath(arg1:number):Promise<string>;
|
|
|
|
export function PauseScan():Promise<void>;
|
|
|
|
export function QueuedLibraryNames():Promise<Array<string>>;
|
|
|
|
export function ReleasePipelineLock():Promise<void>;
|
|
|
|
export function RemoveFromLibrary(arg1:Array<string>):Promise<library.RemovalResult>;
|
|
|
|
export function RemoveLibrary(arg1:number):Promise<library.RemovalSummary>;
|
|
|
|
export function RenameLibrary(arg1:number,arg2:string):Promise<void>;
|
|
|
|
export function RestorePausedScans():Promise<void>;
|
|
|
|
export function ResumeScan():Promise<void>;
|
|
|
|
export function ScanAllLibraries():Promise<void>;
|
|
|
|
export function ScanLibrary(arg1:number):Promise<void>;
|
|
|
|
export function SearchTracks(arg1:string):Promise<Array<library.Track>>;
|
|
|
|
export function SearchTracksByLibrary(arg1:string,arg2:number):Promise<Array<library.Track>>;
|
|
|
|
export function SetContext(arg1:context.Context):Promise<void>;
|
|
|
|
export function SetJobRegistry(arg1:jobs.Registry):Promise<void>;
|
|
|
|
export function SetRemovalHooks(arg1:library.RemovalHooks):Promise<void>;
|
|
|
|
export function SetRescanHooks(arg1:library.RescanHooks):Promise<void>;
|
|
|
|
export function SetScanHooks(arg1:library.ScanHooks):Promise<void>;
|
|
|
|
export function SoftScanAllLibraries():Promise<void>;
|