Fix Navidrome library scan triggering via Subsonic startScan endpoint
trigger_library_scan and is_library_scanning were no-ops assuming Navidrome auto-detects new files. Navidrome supports startScan and getScanStatus via the Subsonic API, so use them like Plex and Jellyfin.
This commit is contained in:
parent
bd56c96634
commit
31e9ff3385
1 changed files with 20 additions and 5 deletions
|
|
@ -857,13 +857,28 @@ class NavidromeClient:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def trigger_library_scan(self, library_name: str = "Music") -> bool:
|
def trigger_library_scan(self, library_name: str = "Music") -> bool:
|
||||||
"""Trigger Navidrome library scan - Navidrome doesn't have scanning, always returns True"""
|
"""Trigger Navidrome library scan via Subsonic startScan endpoint."""
|
||||||
logger.info(f"🎵 Navidrome doesn't require library scans - library is always current")
|
try:
|
||||||
return True
|
result = self._make_request('startScan')
|
||||||
|
if result is not None:
|
||||||
|
logger.info("Navidrome library scan triggered")
|
||||||
|
return True
|
||||||
|
logger.warning("Navidrome startScan returned no response")
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to trigger Navidrome scan: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
def is_library_scanning(self, library_name: str = "Music") -> bool:
|
def is_library_scanning(self, library_name: str = "Music") -> bool:
|
||||||
"""Check if Navidrome library is currently scanning - always returns False"""
|
"""Check if Navidrome library is currently scanning via Subsonic getScanStatus."""
|
||||||
return False
|
try:
|
||||||
|
result = self._make_request('getScanStatus')
|
||||||
|
if result is not None:
|
||||||
|
scan_status = result.get('scanStatus', {})
|
||||||
|
return scan_status.get('scanning', False)
|
||||||
|
return False
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
# Metadata update methods for compatibility with metadata updater
|
# Metadata update methods for compatibility with metadata updater
|
||||||
def update_artist_genres(self, artist, genres: List[str]):
|
def update_artist_genres(self, artist, genres: List[str]):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue