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
200 lines
5.6 KiB
JavaScript
Executable File
200 lines
5.6 KiB
JavaScript
Executable File
// @ts-check
|
|
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
// This file is automatically generated. DO NOT EDIT
|
|
|
|
export function AcquirePipelineLock() {
|
|
return window['go']['library']['Library']['AcquirePipelineLock']();
|
|
}
|
|
|
|
export function AddLibrary(arg1) {
|
|
return window['go']['library']['Library']['AddLibrary'](arg1);
|
|
}
|
|
|
|
export function CancelAllScans() {
|
|
return window['go']['library']['Library']['CancelAllScans']();
|
|
}
|
|
|
|
export function CancelCurrentScan() {
|
|
return window['go']['library']['Library']['CancelCurrentScan']();
|
|
}
|
|
|
|
export function CancelScan() {
|
|
return window['go']['library']['Library']['CancelScan']();
|
|
}
|
|
|
|
export function FullRescan() {
|
|
return window['go']['library']['Library']['FullRescan']();
|
|
}
|
|
|
|
export function GetAlbumCompleteness(arg1) {
|
|
return window['go']['library']['Library']['GetAlbumCompleteness'](arg1);
|
|
}
|
|
|
|
export function GetAlbumTracks(arg1) {
|
|
return window['go']['library']['Library']['GetAlbumTracks'](arg1);
|
|
}
|
|
|
|
export function GetAlbumTracksByLibrary(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetAlbumTracksByLibrary'](arg1, arg2);
|
|
}
|
|
|
|
export function GetAlbumsByArtist(arg1) {
|
|
return window['go']['library']['Library']['GetAlbumsByArtist'](arg1);
|
|
}
|
|
|
|
export function GetAlbumsByArtistByLibrary(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetAlbumsByArtistByLibrary'](arg1, arg2);
|
|
}
|
|
|
|
export function GetAllAlbums() {
|
|
return window['go']['library']['Library']['GetAllAlbums']();
|
|
}
|
|
|
|
export function GetAllAlbumsByLibrary(arg1) {
|
|
return window['go']['library']['Library']['GetAllAlbumsByLibrary'](arg1);
|
|
}
|
|
|
|
export function GetAllArtists() {
|
|
return window['go']['library']['Library']['GetAllArtists']();
|
|
}
|
|
|
|
export function GetAllArtistsByLibrary(arg1) {
|
|
return window['go']['library']['Library']['GetAllArtistsByLibrary'](arg1);
|
|
}
|
|
|
|
export function GetAllGenresWithCounts() {
|
|
return window['go']['library']['Library']['GetAllGenresWithCounts']();
|
|
}
|
|
|
|
export function GetAllGenresWithCountsByLibrary(arg1) {
|
|
return window['go']['library']['Library']['GetAllGenresWithCountsByLibrary'](arg1);
|
|
}
|
|
|
|
export function GetAllLibrariesWithTrackCounts() {
|
|
return window['go']['library']['Library']['GetAllLibrariesWithTrackCounts']();
|
|
}
|
|
|
|
export function GetAllTracks() {
|
|
return window['go']['library']['Library']['GetAllTracks']();
|
|
}
|
|
|
|
export function GetAllTracksByLibrary(arg1) {
|
|
return window['go']['library']['Library']['GetAllTracksByLibrary'](arg1);
|
|
}
|
|
|
|
export function GetFilePathsByAlbums(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetFilePathsByAlbums'](arg1, arg2);
|
|
}
|
|
|
|
export function GetFilePathsByGenres(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetFilePathsByGenres'](arg1, arg2);
|
|
}
|
|
|
|
export function GetFilePathsByRecordingMBIDs(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetFilePathsByRecordingMBIDs'](arg1, arg2);
|
|
}
|
|
|
|
export function GetRemovalImpact(arg1) {
|
|
return window['go']['library']['Library']['GetRemovalImpact'](arg1);
|
|
}
|
|
|
|
export function GetScanQueueLength() {
|
|
return window['go']['library']['Library']['GetScanQueueLength']();
|
|
}
|
|
|
|
export function GetTrackMBIDs(arg1) {
|
|
return window['go']['library']['Library']['GetTrackMBIDs'](arg1);
|
|
}
|
|
|
|
export function GetTracksByGenre(arg1) {
|
|
return window['go']['library']['Library']['GetTracksByGenre'](arg1);
|
|
}
|
|
|
|
export function GetTracksByGenreByLibrary(arg1, arg2) {
|
|
return window['go']['library']['Library']['GetTracksByGenreByLibrary'](arg1, arg2);
|
|
}
|
|
|
|
export function IsScanActive() {
|
|
return window['go']['library']['Library']['IsScanActive']();
|
|
}
|
|
|
|
export function IsScanPaused() {
|
|
return window['go']['library']['Library']['IsScanPaused']();
|
|
}
|
|
|
|
export function LibraryPath(arg1) {
|
|
return window['go']['library']['Library']['LibraryPath'](arg1);
|
|
}
|
|
|
|
export function PauseScan() {
|
|
return window['go']['library']['Library']['PauseScan']();
|
|
}
|
|
|
|
export function QueuedLibraryNames() {
|
|
return window['go']['library']['Library']['QueuedLibraryNames']();
|
|
}
|
|
|
|
export function ReleasePipelineLock() {
|
|
return window['go']['library']['Library']['ReleasePipelineLock']();
|
|
}
|
|
|
|
export function RemoveFromLibrary(arg1) {
|
|
return window['go']['library']['Library']['RemoveFromLibrary'](arg1);
|
|
}
|
|
|
|
export function RemoveLibrary(arg1) {
|
|
return window['go']['library']['Library']['RemoveLibrary'](arg1);
|
|
}
|
|
|
|
export function RenameLibrary(arg1, arg2) {
|
|
return window['go']['library']['Library']['RenameLibrary'](arg1, arg2);
|
|
}
|
|
|
|
export function RestorePausedScans() {
|
|
return window['go']['library']['Library']['RestorePausedScans']();
|
|
}
|
|
|
|
export function ResumeScan() {
|
|
return window['go']['library']['Library']['ResumeScan']();
|
|
}
|
|
|
|
export function ScanAllLibraries() {
|
|
return window['go']['library']['Library']['ScanAllLibraries']();
|
|
}
|
|
|
|
export function ScanLibrary(arg1) {
|
|
return window['go']['library']['Library']['ScanLibrary'](arg1);
|
|
}
|
|
|
|
export function SearchTracks(arg1) {
|
|
return window['go']['library']['Library']['SearchTracks'](arg1);
|
|
}
|
|
|
|
export function SearchTracksByLibrary(arg1, arg2) {
|
|
return window['go']['library']['Library']['SearchTracksByLibrary'](arg1, arg2);
|
|
}
|
|
|
|
export function SetContext(arg1) {
|
|
return window['go']['library']['Library']['SetContext'](arg1);
|
|
}
|
|
|
|
export function SetJobRegistry(arg1) {
|
|
return window['go']['library']['Library']['SetJobRegistry'](arg1);
|
|
}
|
|
|
|
export function SetRemovalHooks(arg1) {
|
|
return window['go']['library']['Library']['SetRemovalHooks'](arg1);
|
|
}
|
|
|
|
export function SetRescanHooks(arg1) {
|
|
return window['go']['library']['Library']['SetRescanHooks'](arg1);
|
|
}
|
|
|
|
export function SetScanHooks(arg1) {
|
|
return window['go']['library']['Library']['SetScanHooks'](arg1);
|
|
}
|
|
|
|
export function SoftScanAllLibraries() {
|
|
return window['go']['library']['Library']['SoftScanAllLibraries']();
|
|
}
|