This commit is contained in:
Broque Thomas 2025-07-10 08:10:40 -07:00
parent fc9b5f375a
commit 96a0bc4b43
7 changed files with 2107 additions and 207 deletions

View file

@ -2,7 +2,8 @@
"permissions": {
"allow": [
"Bash(mkdir:*)",
"Bash(rm:*)"
"Bash(rm:*)",
"Bash(rg:*)"
],
"deny": []
}

View file

@ -1 +1 @@
{"access_token": "BQCXjLyK_OHaggFHfb5wR0JXJv3sWABpjx_UDSIHBXYZRaoQCZmWRaa1QMoNYt2UWMzISQoM91ei1TYyLuT9p0a8XV0NhmctOTQX1sGAnw-wCI2LYTnH5ZVj0DFSrosUqca14vTVLTTlhBZP3gjdgCXfoXpymZUMpHWHMf_aFYr27NfhwQyRQffze3bPzuHTmln2BAEM0BlpHBQl97pI8XoHhOtyvLq95RCZrZZcYHcKPL4dSHG6Bn_gQJLjiv2y", "token_type": "Bearer", "expires_in": 3600, "scope": "user-library-read user-read-private playlist-read-private playlist-read-collaborative user-read-email", "expires_at": 1752125167, "refresh_token": "AQDmfQkPCGObfJeTUIbW1hAAwhSqkuHRA3Qh2dqVYMRh0eCkFMQgPNJDDzF8y-BiaVbj80zePkK_XSfYH1aJutMtNbnsqRKWuxP31BTrMc7pdUdbE7Fma4oH8wpDUKdG3MM"}
{"access_token": "BQBptSDFOmuCrdFhAT3o2Rd85vMSh-8wxQyZoJf5dhDjTkGaEapSscCO81D_9wW5tsFONfbZaRFPDEmwgLxU5mlPGf5BO19Ngeu7qfwjeSvIsPDgyXTZqpFSTmCcmIQ9nW75V6ixzC48Soc4JG-YZXAZLQN2OCgkSje-L2gHHwuHtJmAnD-3_Lq0CBUJPzP3QR01XFyxXaRWqTg6o3EuqBYOCmNBhKmFGVWTD59-RWOKhsLhcYy3siXcAAYYJtzb", "token_type": "Bearer", "expires_in": 3600, "scope": "user-library-read user-read-private playlist-read-private playlist-read-collaborative user-read-email", "expires_at": 1752163323, "refresh_token": "AQDmfQkPCGObfJeTUIbW1hAAwhSqkuHRA3Qh2dqVYMRh0eCkFMQgPNJDDzF8y-BiaVbj80zePkK_XSfYH1aJutMtNbnsqRKWuxP31BTrMc7pdUdbE7Fma4oH8wpDUKdG3MM"}

View file

@ -234,7 +234,7 @@ class SoulseekClient:
return search_results
async def search(self, query: str, timeout: int = 30) -> List[SearchResult]:
async def search(self, query: str, timeout: int = 30, progress_callback=None) -> List[SearchResult]:
if not self.base_url:
logger.error("Soulseek client not configured")
return []
@ -286,6 +286,17 @@ class SoulseekClient:
if new_results:
logger.info(f"Found {len(new_results)} new results (total: {len(all_results)}) at {poll_count * poll_interval:.1f}s")
# Call progress callback with new results
if progress_callback:
try:
progress_callback(new_results, len(all_results))
except Exception as e:
logger.error(f"Error in progress callback: {e}")
# Early termination if we have enough results
if len(all_results) >= 100: # Stop after 100 results for better performance
logger.info(f"Early termination: Found {len(all_results)} results, stopping search")
break
elif len(all_results) > 0:
logger.debug(f"No new results, total still: {len(all_results)}")
else:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff