From 712d492adeefec44af5afeb0f4aec9fe6e2d0f54 Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Thu, 10 Jul 2025 20:43:17 -0700 Subject: [PATCH] more --- .spotify_cache | 2 +- .../soulseek_client.cpython-312.pyc | Bin 33141 -> 45378 bytes core/soulseek_client.py | 383 +++- logs/app.log | 1968 +++++++++++++++++ .../__pycache__/downloads.cpython-312.pyc | Bin 154664 -> 173762 bytes ui/pages/downloads.py | 513 ++++- 6 files changed, 2783 insertions(+), 83 deletions(-) diff --git a/.spotify_cache b/.spotify_cache index e04129dd..671bc7ab 100644 --- a/.spotify_cache +++ b/.spotify_cache @@ -1 +1 @@ -{"access_token": "BQCAapY2h9Qx4vb4MFeuaJdmgDbZvFn99VDepd7mYu-rccmTk0CSwQY3ONrb3FL3_BJ8jawbiwVjURbr7ARJ3CInbYoXquK94ywQMXiCftLB49DMAmJpGeT-8R1OGtXcvn2WBx-sJriuznVSHjTD_l6odjiSxiIoPpPuopqB6xU8lACeoxwW4bCGkxdRAMyHzRPG9DnbJdyNdSTNp3IHqBR6zMxXMtXIUjWsKPos-6LaEfcC96E47j5h5ucB8VAT", "token_type": "Bearer", "expires_in": 3600, "scope": "user-library-read user-read-private playlist-read-private playlist-read-collaborative user-read-email", "expires_at": 1752197783, "refresh_token": "AQDmfQkPCGObfJeTUIbW1hAAwhSqkuHRA3Qh2dqVYMRh0eCkFMQgPNJDDzF8y-BiaVbj80zePkK_XSfYH1aJutMtNbnsqRKWuxP31BTrMc7pdUdbE7Fma4oH8wpDUKdG3MM"} \ No newline at end of file +{"access_token": "BQA45hmTHB-qxEFzKWp_uj7aSKM-RT8L1E88T8GauYSMqzRJnx_cdm-fvYsHoeO5nJ62_sRg67Q8wX5MZeABH0mySVhP2f_V_NT6KHPt2nW32j3rcQAmaTxW7kUQwlKNJdbiXSP-p4inH13WunPa2tNSZf0Ym1YfxZgVUYWzqEDYxjMm327TQVM0kIqSoZM7NYCx2_FQnslF2EebhZqA0KzfMpwzSTgYCUVT9-wtD73r1z3WMqgDGrWgF4FBA6no", "token_type": "Bearer", "expires_in": 3600, "scope": "user-library-read user-read-private playlist-read-private playlist-read-collaborative user-read-email", "expires_at": 1752205183, "refresh_token": "AQDmfQkPCGObfJeTUIbW1hAAwhSqkuHRA3Qh2dqVYMRh0eCkFMQgPNJDDzF8y-BiaVbj80zePkK_XSfYH1aJutMtNbnsqRKWuxP31BTrMc7pdUdbE7Fma4oH8wpDUKdG3MM"} \ No newline at end of file diff --git a/core/__pycache__/soulseek_client.cpython-312.pyc b/core/__pycache__/soulseek_client.cpython-312.pyc index a2a64ed1cf4e700b541edb0801a72caf2e010427..d1fa1b611a7ded3a2e05234acb78e8bb32e573d4 100644 GIT binary patch delta 16956 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 delta 6043 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 DmU|d9 diff --git a/core/soulseek_client.py b/core/soulseek_client.py index 39615144..7b6b6de1 100644 --- a/core/soulseek_client.py +++ b/core/soulseek_client.py @@ -12,6 +12,7 @@ logger = get_logger("soulseek_client") @dataclass class SearchResult: + """Base class for search results""" username: str filename: str size: int @@ -21,6 +22,7 @@ class SearchResult: free_upload_slots: int upload_speed: int queue_length: int + result_type: str = "track" # "track" or "album" @property def quality_score(self) -> float: @@ -53,6 +55,137 @@ class SearchResult: return min(base_score, 1.0) +@dataclass +class TrackResult(SearchResult): + """Individual track search result""" + artist: Optional[str] = None + title: Optional[str] = None + album: Optional[str] = None + track_number: Optional[int] = None + + def __post_init__(self): + self.result_type = "track" + # Try to extract metadata from filename if not provided + if not self.title or not self.artist: + self._parse_filename_metadata() + + def _parse_filename_metadata(self): + """Extract artist, title, album from filename patterns""" + import re + import os + + # Get just the filename without extension and path + base_name = os.path.splitext(os.path.basename(self.filename))[0] + + # Common patterns for track naming + patterns = [ + r'^(\d+)\s*[-\.]\s*(.+?)\s*[-–]\s*(.+)$', # "01 - Artist - Title" or "01. Artist - Title" + r'^(.+?)\s*[-–]\s*(.+)$', # "Artist - Title" + r'^(\d+)\s*[-\.]\s*(.+)$', # "01 - Title" or "01. Title" + ] + + for pattern in patterns: + match = re.match(pattern, base_name) + if match: + groups = match.groups() + if len(groups) == 3: # Track number, artist, title + try: + self.track_number = int(groups[0]) + self.artist = self.artist or groups[1].strip() + self.title = self.title or groups[2].strip() + except ValueError: + # First group might not be a number + self.artist = self.artist or groups[0].strip() + self.title = self.title or f"{groups[1]} - {groups[2]}".strip() + elif len(groups) == 2: + if groups[0].isdigit(): # Track number and title + try: + self.track_number = int(groups[0]) + self.title = self.title or groups[1].strip() + except ValueError: + pass + else: # Artist and title + self.artist = self.artist or groups[0].strip() + self.title = self.title or groups[1].strip() + break + + # Fallback: use filename as title if nothing was extracted + if not self.title: + self.title = base_name + + # Try to extract album from directory path + if not self.album and '/' in self.filename: + path_parts = self.filename.split('/') + if len(path_parts) >= 2: + # Look for album-like directory names + for part in reversed(path_parts[:-1]): # Exclude filename + if part and not part.startswith('@'): # Skip system directories + # Clean up common patterns + cleaned = re.sub(r'^\d+\s*[-\.]\s*', '', part) # Remove leading numbers + if len(cleaned) > 3: # Must be substantial + self.album = cleaned + break + +@dataclass +class AlbumResult: + """Album/folder search result containing multiple tracks""" + username: str + album_path: str # Directory path + album_title: str + artist: Optional[str] + track_count: int + total_size: int + tracks: List[TrackResult] + dominant_quality: str # Most common quality in album + year: Optional[str] = None + free_upload_slots: int = 0 + upload_speed: int = 0 + queue_length: int = 0 + result_type: str = "album" + + @property + def quality_score(self) -> float: + """Calculate album quality score based on dominant quality and track count""" + quality_weights = { + 'flac': 1.0, + 'mp3': 0.8, + 'ogg': 0.7, + 'aac': 0.6, + 'wma': 0.5 + } + + base_score = quality_weights.get(self.dominant_quality.lower(), 0.3) + + # Bonus for complete albums (typically 8-15 tracks) + if 8 <= self.track_count <= 20: + base_score += 0.1 + elif self.track_count > 20: + base_score += 0.05 + + # User metrics (same as individual tracks) + if self.free_upload_slots > 0: + base_score += 0.1 + + if self.upload_speed > 100: + base_score += 0.05 + + if self.queue_length > 10: + base_score -= 0.1 + + return min(base_score, 1.0) + + @property + def size_mb(self) -> int: + """Album size in MB""" + return self.total_size // (1024 * 1024) + + @property + def average_track_size_mb(self) -> float: + """Average track size in MB""" + if self.track_count > 0: + return self.size_mb / self.track_count + return 0 + @dataclass class DownloadStatus: id: str @@ -201,12 +334,19 @@ class SoulseekClient: except: pass - def _process_search_responses(self, responses_data: List[Dict[str, Any]]) -> List[SearchResult]: - """Process search response data into SearchResult objects""" - search_results = [] + def _process_search_responses(self, responses_data: List[Dict[str, Any]]) -> tuple[List[TrackResult], List[AlbumResult]]: + """Process search response data into TrackResult and AlbumResult objects""" + from collections import defaultdict + import re + + all_tracks = [] + albums_by_path = defaultdict(list) logger.debug(f"Processing {len(responses_data)} user responses") + # Audio file extensions to filter for + audio_extensions = {'.mp3', '.flac', '.ogg', '.aac', '.wma', '.wav', '.m4a'} + for response_data in responses_data: username = response_data.get('username', '') files = response_data.get('files', []) @@ -217,9 +357,15 @@ class SoulseekClient: size = file_data.get('size', 0) file_ext = Path(filename).suffix.lower().lstrip('.') + + # Only process audio files + if f'.{file_ext}' not in audio_extensions: + continue + quality = file_ext if file_ext in ['flac', 'mp3', 'ogg', 'aac', 'wma'] else 'unknown' - result = SearchResult( + # Create TrackResult + track = TrackResult( username=username, filename=filename, size=size, @@ -230,14 +376,176 @@ class SoulseekClient: upload_speed=response_data.get('uploadSpeed', 0), queue_length=response_data.get('queueLength', 0) ) - search_results.append(result) + + all_tracks.append(track) + + # Group tracks by album path for album detection + album_path = self._extract_album_path(filename) + if album_path: + albums_by_path[(username, album_path)].append(track) - return search_results + # Create AlbumResults from grouped tracks + album_results = self._create_album_results(albums_by_path) + + # Keep individual tracks that weren't grouped into albums + album_track_filenames = set() + for album in album_results: + for track in album.tracks: + album_track_filenames.add(track.filename) + + # Individual tracks are those not part of any album + individual_tracks = [track for track in all_tracks if track.filename not in album_track_filenames] + + logger.info(f"Found {len(individual_tracks)} individual tracks and {len(album_results)} albums") + logger.debug(f"Album detection details: {len(albums_by_path)} potential albums processed") + for (username, album_path), tracks in list(albums_by_path.items())[:3]: # Log first 3 for debugging + logger.debug(f"Album: {username}/{album_path} -> {len(tracks)} tracks") + + return individual_tracks, album_results - async def search(self, query: str, timeout: int = 30, progress_callback=None) -> List[SearchResult]: + def _extract_album_path(self, filename: str) -> Optional[str]: + """Extract potential album directory path from filename""" + # Handle both Windows (\) and Unix (/) path separators + if '/' not in filename and '\\' not in filename: + return None + + # Normalize path separators to forward slashes for consistent processing + normalized_path = filename.replace('\\', '/') + path_parts = normalized_path.split('/') + + if len(path_parts) < 2: + return None + + # Take the directory containing the file as potential album path + album_dir = path_parts[-2] # Directory containing the file + + # Skip system directories that start with @ or are too short + if album_dir.startswith('@') or len(album_dir) < 2: + return None + + # Return the full path up to the album directory (keeping forward slashes) + return '/'.join(path_parts[:-1]) + + + def _create_album_results(self, albums_by_path: dict) -> List[AlbumResult]: + """Create AlbumResult objects from grouped tracks""" + import re + from collections import Counter + + album_results = [] + + for (username, album_path), tracks in albums_by_path.items(): + # Only create albums for paths with multiple tracks (2+ tracks) + if len(tracks) < 2: + continue + + # Calculate album metadata + total_size = sum(track.size for track in tracks) + quality_counts = Counter(track.quality for track in tracks) + dominant_quality = quality_counts.most_common(1)[0][0] + + # Extract album title from path + album_title = self._extract_album_title(album_path) + + # Try to determine artist from tracks or path + artist = self._determine_album_artist(tracks, album_path) + + # Extract year if present + year = self._extract_year(album_path, album_title) + + # Use user metrics from first track (they should be the same for all tracks from same user) + first_track = tracks[0] + + album = AlbumResult( + username=username, + album_path=album_path, + album_title=album_title, + artist=artist, + track_count=len(tracks), + total_size=total_size, + tracks=sorted(tracks, key=lambda t: t.track_number or 0), # Sort by track number + dominant_quality=dominant_quality, + year=year, + free_upload_slots=first_track.free_upload_slots, + upload_speed=first_track.upload_speed, + queue_length=first_track.queue_length + ) + + album_results.append(album) + + return album_results + + def _extract_album_title(self, album_path: str) -> str: + """Extract album title from directory path""" + import re + + # Get the last directory name as album title + album_dir = album_path.split('/')[-1] + + # Clean up common patterns + # Remove leading numbers and separators + cleaned = re.sub(r'^\d+\s*[-\.\s]+', '', album_dir) + + # Remove year patterns at the end: (2023), [2023], - 2023 + cleaned = re.sub(r'\s*[-\(\[]?\d{4}[-\)\]]?\s*$', '', cleaned) + + # Remove common separators and extra spaces + cleaned = re.sub(r'\s+', ' ', cleaned).strip() + + return cleaned if cleaned else album_dir + + def _determine_album_artist(self, tracks: List[TrackResult], album_path: str) -> Optional[str]: + """Determine album artist from track artists or path""" + from collections import Counter + + # Get artist from tracks + track_artists = [track.artist for track in tracks if track.artist] + if track_artists: + # Use most common artist + artist_counts = Counter(track_artists) + return artist_counts.most_common(1)[0][0] + + # Try to extract from path + import re + album_dir = album_path.split('/')[-1] + + # Look for "Artist - Album" pattern + artist_match = re.match(r'^(.+?)\s*[-–]\s*(.+)$', album_dir) + if artist_match: + potential_artist = artist_match.group(1).strip() + if len(potential_artist) > 1: + return potential_artist + + return None + + def _extract_year(self, album_path: str, album_title: str) -> Optional[str]: + """Extract year from album path or title""" + import re + + # Look for 4-digit year in parentheses, brackets, or after dash + text_to_search = f"{album_path} {album_title}" + year_patterns = [ + r'\((\d{4})\)', # (2023) + r'\[(\d{4})\]', # [2023] + r'\s-(\d{4})$', # - 2023 at end + r'\s(\d{4})\s', # 2023 with spaces + r'\s(\d{4})$' # 2023 at end + ] + + for pattern in year_patterns: + match = re.search(pattern, text_to_search) + if match: + year = match.group(1) + # Validate year range (1900-2030) + if 1900 <= int(year) <= 2030: + return year + + return None + + async def search(self, query: str, timeout: int = 30, progress_callback=None) -> tuple[List[TrackResult], List[AlbumResult]]: if not self.base_url: logger.error("Soulseek client not configured") - return [] + return [], [] try: logger.info(f"Starting search for: '{query}'") @@ -256,18 +564,18 @@ class SoulseekClient: response = await self._make_request('POST', 'searches', json=search_data) if not response: logger.error("No response from search POST request") - return [] + return [], [] search_id = response.get('id') if not search_id: logger.error("No search ID returned from POST request") logger.debug(f"Full response: {response}") - return [] + return [], [] logger.info(f"Search initiated with ID: {search_id}") - # Poll for results instead of blocking sleep - like web interface does - all_results = [] + # Poll for results - collect all responses first, then process at the end + all_responses = [] poll_interval = 1.5 # Check every 1.5 seconds for more responsive updates max_polls = int(timeout / poll_interval) # 20 attempts over 30 seconds @@ -277,44 +585,49 @@ class SoulseekClient: # Get current search responses responses_data = await self._make_request('GET', f'searches/{search_id}/responses') if responses_data and isinstance(responses_data, list): - current_results = self._process_search_responses(responses_data) - - # Add new unique results - existing_filenames = {r.filename for r in all_results} - new_results = [r for r in current_results if r.filename not in existing_filenames] - all_results.extend(new_results) - - 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 + # Check if we got new responses + new_response_count = len(responses_data) - len(all_responses) + if new_response_count > 0: + all_responses = responses_data + logger.info(f"Found {len(all_responses)} total responses at {poll_count * poll_interval:.1f}s") + + # Call progress callback with current count if progress_callback: try: - progress_callback(new_results, len(all_results)) + progress_callback([], len(all_responses)) except Exception as e: logger.error(f"Error in progress callback: {e}") - # Early termination if we have enough results - if len(all_results) >= 45: # Stop after 45 results for better performance (3 pages of 15) - logger.info(f"Early termination: Found {len(all_results)} results, stopping search") + # Early termination if we have enough responses + if len(all_responses) >= 30: # Stop after 30 responses for better performance + logger.info(f"Early termination: Found {len(all_responses)} responses, stopping search") break - elif len(all_results) > 0: - logger.debug(f"No new results, total still: {len(all_results)}") + elif len(all_responses) > 0: + logger.debug(f"No new responses, total still: {len(all_responses)}") else: - logger.debug(f"Still waiting for results... ({poll_count * poll_interval:.1f}s elapsed)") + logger.debug(f"Still waiting for responses... ({poll_count * poll_interval:.1f}s elapsed)") # Wait before next poll (unless this is the last attempt) if poll_count < max_polls - 1: await asyncio.sleep(poll_interval) - logger.info(f"Search completed. Found {len(all_results)} total results for query: {query}") - - # Sort by quality score and return - all_results.sort(key=lambda x: x.quality_score, reverse=True) - return all_results + # Process all collected responses at the end + if all_responses: + tracks, albums = self._process_search_responses(all_responses) + + # Sort tracks by quality score + tracks.sort(key=lambda x: x.quality_score, reverse=True) + albums.sort(key=lambda x: x.quality_score, reverse=True) + + logger.info(f"Search completed. Found {len(tracks)} tracks and {len(albums)} albums for query: {query}") + return tracks, albums + else: + logger.info(f"Search completed with no results for query: {query}") + return [], [] except Exception as e: logger.error(f"Error searching: {e}") - return [] + return [], [] async def download(self, username: str, filename: str, file_size: int = 0) -> Optional[str]: if not self.base_url: diff --git a/logs/app.log b/logs/app.log index 66e50205..60dc757d 100644 --- a/logs/app.log +++ b/logs/app.log @@ -11283,3 +11283,1971 @@ 2025-07-10 17:41:12 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists 2025-07-10 17:41:19 - newmusic.main - INFO - change_page:139 - Changed to page: artists 2025-07-10 17:42:27 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 17:58:40 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 17:58:40 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 17:58:40 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 17:58:41 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 17:58:41 - newmusic.main - INFO - closeEvent:173 - Application closed successfully +2025-07-10 17:58:45 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 17:58:45 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 17:58:45 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 17:58:45 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 17:58:45 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 17:58:45 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 17:58:46 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 17:58:46 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 17:58:47 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 17:58:49 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 17:58:50 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 17:58:52 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 17:58:52 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 17:58:58 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 17:59:05 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 17:59:13 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 17:59:46 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'virtual mage' +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"d459bc6c-3beb-43f1-bab7-db6ee949239d","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-11T00:59:46.6942151Z","state":"InProgress","token":73}... +2025-07-10 17:59:46 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: d459bc6c-3beb-43f1-bab7-db6ee949239d +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:48 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 17:59:48 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:48 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:48 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:48 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:50 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 17:59:50 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:50 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:50 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:50 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:52 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 17:59:52 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:52 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:52 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:52 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:53 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 17:59:53 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:53 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:54 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:54 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:55 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 17:59:55 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:55 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:55 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:55 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:57 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 17:59:57 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:57 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:57 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:57 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 17:59:59 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 17:59:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 17:59:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 17:59:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 17:59:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:00:00 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:00:00 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:00 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:00:02 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:00:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:00:04 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:00:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:04 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 15.0s +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:06 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:07 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:00:07 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:07 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:08 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:08 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:08 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:09 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:00:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:10 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:10 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:10 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:11 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:13 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:15 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:16 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:00:16 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:16 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:17 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:17 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:17 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:18 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/d459bc6c-3beb-43f1-bab7-db6ee949239d/responses +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":73,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:00:20 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:00:20 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:00:20 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: virtual mage +2025-07-10 18:14:29 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 18:14:29 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 18:14:29 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 18:14:29 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 18:14:29 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 18:14:29 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 18:14:30 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 18:14:31 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 18:14:31 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 18:14:33 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 18:14:34 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 18:14:35 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 18:14:36 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 18:14:41 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 18:14:49 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 18:14:56 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 18:14:59 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'virtual mage' +2025-07-10 18:14:59 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:14:59 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:14:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:14:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:14:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"73dcb44f-d98d-4d27-81e6-e032a6af76d6","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-11T01:14:59.4230461Z","state":"InProgress","token":84}... +2025-07-10 18:15:02 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: 73dcb44f-d98d-4d27-81e6-e032a6af76d6 +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:04 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 18:15:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:06 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 18:15:06 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:06 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:06 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:06 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:07 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 18:15:07 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:07 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:08 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:08 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:09 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 18:15:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:09 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:09 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:11 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 18:15:11 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:11 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:13 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 18:15:13 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:13 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:13 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:13 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:15 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 18:15:15 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:15 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:15 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:15 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:16 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:15:16 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:16 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:17 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:17 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:18 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:15:18 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:18 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:15:20 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:15:20 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:20 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:20 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:20 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:20 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 15.0s +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:22 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:23 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:15:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:24 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:24 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:24 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:25 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:27 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:29 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:30 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:15:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:31 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:32 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:15:32 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:32 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:33 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:34 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/73dcb44f-d98d-4d27-81e6-e032a6af76d6/responses +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitRate":183,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 02 Temple Vision.vhs Featuring Wave Mage.mp3","isVariableBitRate":true,"length":186,"size":4348704,"isLocked":false},{"bitRate":172,"code":1,"extension":"","filename":"Music\\Vaporwave\\Vapor Vault\\virtual-internet-prison-vhs-wkvbyn\\BOSEBY - Virtual Internet Prison (VHS) - 05 SD.vhs Featuring PKSkyler, CentaurSap... +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:15:36 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:15:36 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:15:36 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: virtual mage +2025-07-10 18:18:48 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 18:18:48 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 18:18:48 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 18:18:48 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 18:18:48 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 18:18:48 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 18:18:49 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 18:18:49 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 18:18:49 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 18:18:50 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 18:18:52 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 18:18:52 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'virtual mage' +2025-07-10 18:18:52 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:18:52 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:18:52 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:18:52 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:18:52 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:18:53 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"bb4b568a-8d68-4ad7-9f39-0edb693f1edd","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-11T01:18:52.9292637Z","state":"InProgress","token":85}... +2025-07-10 18:18:53 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: bb4b568a-8d68-4ad7-9f39-0edb693f1edd +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:18:53 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:18:54 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 18:18:55 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 18:18:55 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:18:55 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:18:55 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 18:18:55 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:18:55 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:18:57 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 18:18:57 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:18:57 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:18:57 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:18:57 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:18:58 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 18:18:58 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:18:58 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:18:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:18:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:00 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 18:19:00 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 18:19:00 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:00 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:02 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 18:19:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:04 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 18:19:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:05 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 18:19:05 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:05 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:06 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:06 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:07 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 18:19:07 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:19:07 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:07 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:07 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:07 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:09 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:19:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:09 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:09 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:19:11 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:19:11 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:11 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:11 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 15.0s +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:13 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:14 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:19:14 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:14 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:15 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:15 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:15 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:16 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:18 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:20 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:21 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:19:21 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:21 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:22 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:22 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:22 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:23 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:25 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/bb4b568a-8d68-4ad7-9f39-0edb693f1edd/responses +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":85,"uploadSpeed":961852,"username":"buk4"},{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Brea... +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:19:27 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:19:27 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:19:27 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: virtual mage +2025-07-10 18:23:21 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 18:23:21 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 18:23:21 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 18:23:23 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 18:23:23 - newmusic.main - INFO - closeEvent:173 - Application closed successfully +2025-07-10 18:23:26 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 18:23:26 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 18:23:26 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 18:23:26 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 18:23:26 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 18:23:26 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 18:23:27 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 18:23:27 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 18:23:27 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 18:23:28 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 18:23:30 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 18:23:31 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 18:23:32 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'Virtual Mage' +2025-07-10 18:23:32 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:23:32 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:23:32 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:23:32 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:32 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:23:32 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"f96a1fd3-81fe-445e-9a74-f01af5e3ae20","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"Virtual Mage","startedAt":"2025-07-11T01:23:32.6136298Z","state":"InProgress","token":86}... +2025-07-10 18:23:33 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: f96a1fd3-81fe-445e-9a74-f01af5e3ae20 +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:33 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 18:23:34 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 18:23:34 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:34 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:35 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:35 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:36 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 18:23:36 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:36 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:36 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:36 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:38 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 18:23:38 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:38 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:38 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:38 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:39 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 18:23:40 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 18:23:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:40 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:40 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:42 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 18:23:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:42 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:42 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:43 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 18:23:43 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:43 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:44 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:44 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:45 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 18:23:45 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:45 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:45 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:45 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:46 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 18:23:47 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:23:47 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:47 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:47 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:47 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:49 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:23:49 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:49 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:49 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:49 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:23:50 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:23:50 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:50 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:51 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:51 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:23:51 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 15.0s +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:23:52 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:23:54 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:23:56 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:23:57 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:23:57 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:57 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:58 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:58 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:23:58 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:23:59 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:23:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:23:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:23:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:23:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:24:00 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:24:01 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:24:03 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:24:05 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:24:06 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:24:06 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f96a1fd3-81fe-445e-9a74-f01af5e3ae20/responses +2025-07-10 18:24:06 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":9,"files":[{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether Folder.auCDtect.txt","size":1168,"isLocked":false},{"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\00 Virtual Mage - Aether.jpg","size":55497,"isLocked":false},{"bitDepth":16,"code":1,"extension":"","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aeth... +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:24:07 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:24:07 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:24:07 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: Virtual Mage +2025-07-10 18:30:09 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 18:30:09 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 18:30:09 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 18:30:09 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 18:30:09 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 18:30:09 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 18:30:19 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 18:30:19 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 18:30:19 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 18:30:22 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 18:30:23 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 18:30:24 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 18:30:25 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 18:30:25 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 18:30:30 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 18:30:31 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'Virtual Mage' +2025-07-10 18:30:31 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:30:31 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:30:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:30:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:31 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"f631d207-e03f-4059-8517-043cd1159f8c","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"Virtual Mage","startedAt":"2025-07-11T01:30:31.9722142Z","state":"InProgress","token":87}... +2025-07-10 18:30:32 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: f631d207-e03f-4059-8517-043cd1159f8c +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:32 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:33 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 18:30:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:34 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:34 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:35 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 18:30:35 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:35 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:35 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:35 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:37 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 18:30:37 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:37 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:37 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:37 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:38 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 18:30:39 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 18:30:39 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:39 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:39 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:39 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:40 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 18:30:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:41 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:41 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:42 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 18:30:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:42 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:42 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:44 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 18:30:44 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:44 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:44 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:44 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:46 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:30:46 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:46 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:47 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:30:47 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:47 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:48 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:48 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:49 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:30:49 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:49 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:50 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:50 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:51 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:30:51 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:51 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:51 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:51 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:30:53 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:30:53 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:53 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:53 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:53 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:30:53 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 18.0s +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:30:55 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:30:56 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:30:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:57 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:57 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:30:57 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:30:58 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:31:00 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:31:02 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:31:03 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:31:03 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:31:03 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:31:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:31:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:31:04 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/f631d207-e03f-4059-8517-043cd1159f8c/responses +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":1,"files":[{"bitRate":320,"code":1,"extension":"","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","length":206,"size":8344437,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":0,"token":87,"uploadSpeed":961852,"username":"buk4"},{"fileCount":346,"files":[{"code":1,"extension":"","filename":"Downloads (Private)\\Seedbox 1\\Manga\\Dekai Manga Archive [Fall 2020]\\Virtual World... +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:31:05 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:31:05 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:31:05 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: Virtual Mage +2025-07-10 18:36:25 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 18:36:25 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 18:36:26 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 18:36:26 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 18:36:26 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 18:36:26 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 18:36:29 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 18:36:29 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 18:36:29 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 18:36:30 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 18:36:32 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 18:36:33 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 18:36:34 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 18:36:35 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 18:36:36 - newmusic.soulseek_client - INFO - search:541 - Starting search for: 'virtual mage' +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - search:551 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - search:552 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"3b17fc35-4bc1-4cc0-9558-0358fc3b52c3","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-11T01:36:36.4909052Z","state":"InProgress","token":88}... +2025-07-10 18:36:36 - newmusic.soulseek_client - INFO - search:565 - Search initiated with ID: 3b17fc35-4bc1-4cc0-9558-0358fc3b52c3 +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:36 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:38 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 18:36:38 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:38 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:38 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:38 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:40 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 18:36:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:40 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:40 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:41 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 18:36:41 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 18:36:41 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:41 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:42 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:42 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:43 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 18:36:43 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:43 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:43 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:43 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:45 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 18:36:45 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:45 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:45 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:45 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:47 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 18:36:47 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:47 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:47 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:47 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:48 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 18:36:48 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 18:36:48 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:48 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:49 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:49 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:50 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 18:36:50 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:50 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:50 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:50 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:52 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 18:36:52 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:52 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:52 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:52 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 18:36:54 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 18:36:54 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:54 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:54 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:54 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:36:54 - newmusic.soulseek_client - INFO - search:582 - Found 21 total responses at 15.0s +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:36:56 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:36:57 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 18:36:57 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:57 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:58 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:58 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:36:58 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:36:59 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:01 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:03 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:04 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 18:37:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:05 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:05 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:05 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:06 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:08 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - search:573 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/3b17fc35-4bc1-4cc0-9558-0358fc3b52c3/responses +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - search:596 - No new responses, total still: 21 +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 21 user responses +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User tablestone has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 18:37:10 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 18:37:10 - newmusic.soulseek_client - INFO - _process_search_responses:398 - Found 46 individual tracks and 0 albums +2025-07-10 18:37:10 - newmusic.soulseek_client - INFO - search:612 - Search completed. Found 46 tracks and 0 albums for query: virtual mage +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - download:628 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - download:641 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - download:645 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 18:37:18 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 18:37:19 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 18:37:19 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 18:37:19 - newmusic.soulseek_client - INFO - download:650 - [SUCCESS] Started download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 +2025-07-10 18:50:14 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 18:50:14 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 18:50:14 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 18:50:16 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 18:50:16 - newmusic.main - INFO - closeEvent:173 - Application closed successfully +2025-07-10 19:11:55 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 19:11:55 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 19:11:55 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 19:11:55 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 19:11:55 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 19:11:55 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 19:11:56 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 19:11:57 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 19:11:57 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 19:11:58 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 19:11:59 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 19:12:01 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 19:12:02 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 19:12:03 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 19:12:08 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 19:12:08 - newmusic.soulseek_client - INFO - search:579 - Starting search for: 'Virtual Mage' +2025-07-10 19:12:08 - newmusic.soulseek_client - DEBUG - search:589 - Search data: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:12:08 - newmusic.soulseek_client - DEBUG - search:590 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:12:08 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:12:08 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:08 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"580f1cc0-3187-4df6-a587-6f7de56fe48f","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"Virtual Mage","startedAt":"2025-07-11T02:12:09.0755384Z","state":"InProgress","token":100}... +2025-07-10 19:12:09 - newmusic.soulseek_client - INFO - search:603 - Search initiated with ID: 580f1cc0-3187-4df6-a587-6f7de56fe48f +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:09 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:10 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 19:12:10 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:10 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:12 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 19:12:12 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:12 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:12 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:12 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:14 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 19:12:14 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:14 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:14 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:14 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:15 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 19:12:16 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 19:12:16 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:16 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:16 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:16 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:17 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 19:12:17 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:17 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:19 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 19:12:19 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:19 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:19 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:19 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:21 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 19:12:21 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:21 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:21 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:21 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:23 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 19:12:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:25 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 19:12:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:25 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:25 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:12:26 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 19:12:26 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:26 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:27 - newmusic.soulseek_client - INFO - search:620 - Found 22 total responses at 15.0s +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:28 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:30 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:32 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:33 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 19:12:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:34 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:34 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:34 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:35 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:37 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:39 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:40 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 19:12:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:41 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:41 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:41 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:42 - newmusic.soulseek_client - DEBUG - search:611 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 19:12:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/580f1cc0-3187-4df6-a587-6f7de56fe48f/responses +2025-07-10 19:12:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - search:634 - No new responses, total still: 22 +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 22 user responses +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User tablestone has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 19:12:43 - newmusic.soulseek_client - INFO - _process_search_responses:403 - Found 0 single-track albums and 17 multi-track albums (total: 17) +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:404 - Album detection details: 17 grouped albums, 0 singles +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:406 - Multi-track album: zeroscan/Music/aofd3/Mallsoft & Shopping Mall Ambience -> 2 tracks +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:406 - Multi-track album: tablestone/@@hnttf/Share/_Playlists/2021 in Synthwave (Spotify Playlist everynoise.com) -> 1 tracks +2025-07-10 19:12:43 - newmusic.soulseek_client - DEBUG - _process_search_responses:406 - Multi-track album: tablestone/@@hnttf/Share/_Playlists/Retrowave __ Outrun (5_18_25 Spotify) -> 2 tracks +2025-07-10 19:12:43 - newmusic.soulseek_client - INFO - search:650 - Search completed. Found 0 tracks and 17 albums for query: Virtual Mage +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - download:666 - Attempting to download: FLACs\by genre\synthwave\Virtual Mage\Virtual Mage - Aether WEB (2020)\01 - Aether.flac from Ultravod (size: 22183233) +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - download:679 - Using web interface API format: [{'filename': 'FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac', 'size': 22183233, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - download:683 - Trying web interface endpoint: transfers/downloads/Ultravod +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Ultravod +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac', 'size': 22183233, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:17 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 19:13:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 19:13:18 - newmusic.soulseek_client - INFO - download:688 - [SUCCESS] Started download: FLACs\by genre\synthwave\Virtual Mage\Virtual Mage - Aether WEB (2020)\01 - Aether.flac from Ultravod +2025-07-10 19:13:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:18 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:19 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:19 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:20 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:20 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:20 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:21 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:21 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:22 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:22 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:22 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:24 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:24 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:24 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:26 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:26 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:26 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:27 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:28 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:28 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:28 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:29 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:29 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:30 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:32 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:32 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:32 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:34 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:34 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:34 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:35 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:35 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:36 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:36 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:36 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:37 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:37 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:38 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:38 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:38 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:13:39 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 19:13:39 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:13:40 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:13:40 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"buk4","directories":[{"directory":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105","fileCount":1,"files":[{"id":"913c3f12-9e9a-4220-bf83-bb7b85bb286c","username":"buk4","direction":"Download","filename":"@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3","size":8344437,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T01:37:19.3380415","enqueuedAt":"2... +2025-07-10 19:13:40 - newmusic.soulseek_client - DEBUG - get_all_downloads:823 - Parsed 2 downloads from API response +2025-07-10 19:19:11 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 19:19:11 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 19:19:11 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 19:19:13 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 19:19:13 - newmusic.main - INFO - closeEvent:173 - Application closed successfully +2025-07-10 19:19:16 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 19:19:16 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 19:19:16 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 19:19:16 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 19:19:16 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 19:19:16 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 19:19:17 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 19:19:17 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 19:19:17 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 19:19:20 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 19:19:20 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 19:19:21 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 19:19:22 - newmusic.soulseek_client - INFO - search:551 - Starting search for: 'virtual mage' +2025-07-10 19:19:22 - newmusic.soulseek_client - DEBUG - search:561 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:19:22 - newmusic.soulseek_client - DEBUG - search:562 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:19:22 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:19:22 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:22 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"b56eba4f-d8d9-482d-b301-3bbfee62c51b","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-11T02:19:23.0040006Z","state":"InProgress","token":106}... +2025-07-10 19:19:23 - newmusic.soulseek_client - INFO - search:575 - Search initiated with ID: b56eba4f-d8d9-482d-b301-3bbfee62c51b +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:23 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 19:19:24 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 19:19:24 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 19:19:24 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:24 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:25 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:25 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:26 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 19:19:26 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:26 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:26 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:26 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:28 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 19:19:28 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:28 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:28 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:28 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:29 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 19:19:30 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 19:19:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:31 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 19:19:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:32 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:32 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:33 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 19:19:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:35 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 19:19:35 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:35 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:35 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:35 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:36 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 19:19:37 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 19:19:37 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:37 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:37 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:37 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:38 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 19:19:38 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:38 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:39 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:39 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:19:40 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 19:19:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:40 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:40 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:40 - newmusic.soulseek_client - INFO - search:592 - Found 22 total responses at 15.0s +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:42 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:44 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:46 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:47 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 19:19:47 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:47 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:48 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:48 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:48 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:49 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:51 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:53 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:54 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 19:19:54 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:54 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:55 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:55 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:55 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/b56eba4f-d8d9-482d-b301-3bbfee62c51b/responses +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"bitDepth":16,"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.flac","length":182,"sampleRate":44100,"size":16251069,"isLocked":false},{"code":1,"extension":"","filename":"@@iizks\\Music\\Virtual Mage\\2020 - Astral Chill\\folder.jpg","size":81016,"isLocked":false},{"bitRate":320,"code":1,"extension":"","filename":"@@iizks\\iTunes Latest\\Virtual Mage\\2020 - Astral Chill\\01 - Astral Chill.mp3","length":182,"size"... +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 22 +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 22 user responses +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User tablestone has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 19:19:56 - newmusic.soulseek_client - INFO - _process_search_responses:399 - Found 10 individual tracks and 7 albums +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:400 - Album detection details: 17 potential albums processed +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: leonardoclk/@@iizks/Music/Virtual Mage/2020 - Astral Chill -> 1 tracks +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: leonardoclk/@@iizks/iTunes Latest/Virtual Mage/2020 - Astral Chill -> 1 tracks +2025-07-10 19:19:56 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: zeroscan/Music/aofd3/Mallsoft & Shopping Mall Ambience -> 2 tracks +2025-07-10 19:19:56 - newmusic.soulseek_client - INFO - search:622 - Search completed. Found 10 tracks and 7 albums for query: virtual mage +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 19:20:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 19:20:31 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 +2025-07-10 19:39:38 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 19:39:38 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 19:39:38 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 19:39:38 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 19:39:38 - newmusic.main - INFO - closeEvent:173 - Application closed successfully +2025-07-10 19:39:43 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 19:39:43 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 19:39:43 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 19:39:43 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 19:39:43 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 19:39:43 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 19:39:44 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 19:39:45 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 19:39:45 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 19:39:47 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 19:39:49 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 19:39:50 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 19:39:51 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 19:39:55 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 19:39:56 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 19:39:58 - newmusic.soulseek_client - INFO - search:551 - Starting search for: 'Virtual Mage' +2025-07-10 19:39:58 - newmusic.soulseek_client - DEBUG - search:561 - Search data: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:39:58 - newmusic.soulseek_client - DEBUG - search:562 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:39:58 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 19:39:58 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:39:58 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'Virtual Mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"88dab08d-b424-426e-9aa9-623cbe404fc7","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"Virtual Mage","startedAt":"2025-07-11T02:39:59.1468161Z","state":"InProgress","token":112}... +2025-07-10 19:39:59 - newmusic.soulseek_client - INFO - search:575 - Search initiated with ID: 88dab08d-b424-426e-9aa9-623cbe404fc7 +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:39:59 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:00 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 19:40:00 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:00 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:02 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 19:40:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:02 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:02 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:04 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 19:40:04 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 19:40:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:06 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 19:40:06 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:06 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:06 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:06 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:08 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 19:40:08 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:08 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:08 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:08 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:09 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 19:40:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:10 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:10 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:11 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 19:40:11 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:11 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:13 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 19:40:13 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:13 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:13 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:13 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:15 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 19:40:15 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:15 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:15 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:15 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 19:40:16 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 19:40:16 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:16 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:17 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:17 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:17 - newmusic.soulseek_client - INFO - search:592 - Found 23 total responses at 15.0s +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:18 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:20 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:22 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:23 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 19:40:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:24 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:24 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:24 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:25 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 19:40:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:26 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:26 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:26 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:27 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:29 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:31 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:32 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 19:40:32 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/88dab08d-b424-426e-9aa9-623cbe404fc7/responses +2025-07-10 19:40:32 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (1994).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Virtual Adepts (Revised) (2003).pdf","size":115110029,"isLocked":false},{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition book - Virtual Adepts,... +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 23 +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 23 user responses +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ahab has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Letham has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 19:40:33 - newmusic.soulseek_client - INFO - _process_search_responses:399 - Found 9 individual tracks and 7 albums +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:400 - Album detection details: 16 potential albums processed +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: leonardoclk/@@iizks/Music/Virtual Mage/2020 - Astral Chill -> 1 tracks +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: leonardoclk/@@iizks/iTunes Latest/Virtual Mage/2020 - Astral Chill -> 1 tracks +2025-07-10 19:40:33 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: Kaya-Sem/media/To Sort/Sorting Bin/Virtual Mage -> 1 tracks +2025-07-10 19:40:33 - newmusic.soulseek_client - INFO - search:622 - Search completed. Found 9 tracks and 7 albums for query: Virtual Mage +2025-07-10 20:12:40 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 20:12:40 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 20:12:40 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 20:12:40 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 20:12:40 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 20:12:40 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 20:12:41 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 20:12:41 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 20:12:41 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 20:12:44 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 20:12:45 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 20:12:47 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 20:12:47 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 20:12:54 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 20:12:57 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 20:13:01 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 20:14:25 - newmusic.soulseek_client - INFO - search:551 - Starting search for: 'Virtual mage' +2025-07-10 20:14:25 - newmusic.soulseek_client - DEBUG - search:561 - Search data: {'searchText': 'Virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 20:14:25 - newmusic.soulseek_client - DEBUG - search:562 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 20:14:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 20:14:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:25 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: {'searchText': 'Virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: {"fileCount":0,"id":"ea909c23-e6d2-472d-981a-5db0e4fb0aa9","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"Virtual mage","startedAt":"2025-07-11T03:14:26.2456572Z","state":"InProgress","token":113}... +2025-07-10 20:14:26 - newmusic.soulseek_client - INFO - search:575 - Search initiated with ID: ea909c23-e6d2-472d-981a-5db0e4fb0aa9 +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:26 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:28 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 20:14:28 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:28 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:28 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:28 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:29 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 20:14:29 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:29 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:31 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 20:14:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:33 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 20:14:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:35 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 20:14:35 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:35 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:35 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:35 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:36 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 20:14:36 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:36 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:37 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:37 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:38 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 20:14:38 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:38 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:38 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:38 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:40 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 20:14:40 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:40 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:40 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:40 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:42 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 20:14:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:42 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:42 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:44 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 20:14:44 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:44 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:44 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:44 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:45 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 20:14:45 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:45 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:47 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 20:14:47 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:47 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:47 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:47 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:49 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 20:14:49 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:49 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:49 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:49 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: []... +2025-07-10 20:14:51 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 20:14:51 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:51 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:51 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:51 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:14:51 - newmusic.soulseek_client - INFO - search:592 - Found 24 total responses at 21.0s +2025-07-10 20:14:52 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 20:14:52 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:52 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:53 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:53 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:14:53 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 24 +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:14:54 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 24 +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 18/20) - elapsed: 25.5s +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:14:56 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 24 +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 19/20) - elapsed: 27.0s +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:14:58 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 24 +2025-07-10 20:14:59 - newmusic.soulseek_client - DEBUG - search:583 - Polling for results (attempt 20/20) - elapsed: 28.5s +2025-07-10 20:14:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches/ea909c23-e6d2-472d-981a-5db0e4fb0aa9/responses +2025-07-10 20:14:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - search:606 - No new responses, total still: 24 +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:345 - Processing 24 user responses +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User zeroscan has 2 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Letham has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User RuuqoHoosk has 346 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ultravod has 9 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User buk4 has 1 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Satani-Vitales has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User koalabeer has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Seyti has 10 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User KindaRatchet has 1 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User HomotopicCensorship has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User soulshookt has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User exsanguinidraculae has 2 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User thinkibettergo has 1 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User raspberry2 has 10 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Ahab has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ofoijacussa has 0 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Shooby has 6 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User belthane has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User leonardoclk has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User drchzbrgr has 5 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Dax_VR has 10 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User Kaya-Sem has 1 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User ruszok has 1 files +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:353 - User nightmare_dronemk12 has 3 files +2025-07-10 20:15:00 - newmusic.soulseek_client - INFO - _process_search_responses:399 - Found 9 individual tracks and 7 albums +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:400 - Album detection details: 16 potential albums processed +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: zeroscan/Music/aofd3/Mallsoft & Shopping Mall Ambience -> 2 tracks +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: Ultravod/FLACs/by genre/synthwave/Virtual Mage/Virtual Mage - Aether WEB (2020) -> 1 tracks +2025-07-10 20:15:00 - newmusic.soulseek_client - DEBUG - _process_search_responses:402 - Album: Ultravod/FLACs/by genre/synthwave/Virtual Mage/Virtual Mage - Astral Chill WEB (2020) -> 1 tracks +2025-07-10 20:15:00 - newmusic.soulseek_client - INFO - search:622 - Search completed. Found 9 tracks and 7 albums for query: Virtual mage +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:15:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:15:31 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR (size: 22189939) +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:17 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:18 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:30:18 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:30:18 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR (size: 22189939) +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:30:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:30:23 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR (size: 16437947) +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:30:38 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:30:38 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR (size: 16437947) +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:30:46 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:30:46 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR (size: 22189939) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1717 - Virtual Mage - Aether.flac', 'size': 22189939, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1723 - Virtual Mage - Comet.flac from Dax_VR (size: 13795263) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1723 - Virtual Mage - Comet.flac', 'size': 13795263, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1723 - Virtual Mage - Comet.flac', 'size': 13795263, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1727 - Virtual Mage - Orbit Love.flac from Dax_VR (size: 22566763) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1727 - Virtual Mage - Orbit Love.flac', 'size': 22566763, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1727 - Virtual Mage - Orbit Love.flac', 'size': 22566763, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR (size: 16437947) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1736 - Virtual Mage - Astral Chill.flac', 'size': 16437947, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1741 - Virtual Mage - Sleepy.flac from Dax_VR (size: 16524311) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1741 - Virtual Mage - Sleepy.flac', 'size': 16524311, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1741 - Virtual Mage - Sleepy.flac', 'size': 16524311, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1746 - Virtual Mage - Temple of Eternity.flac from Dax_VR (size: 17306999) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1746 - Virtual Mage - Temple of Eternity.flac', 'size': 17306999, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1746 - Virtual Mage - Temple of Eternity.flac', 'size': 17306999, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1757 - Virtual Mage - Moondust.flac from Dax_VR (size: 13162488) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1757 - Virtual Mage - Moondust.flac', 'size': 13162488, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1757 - Virtual Mage - Moondust.flac', 'size': 13162488, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1793 - Virtual Mage - Refraction.flac from Dax_VR (size: 13382035) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1793 - Virtual Mage - Refraction.flac', 'size': 13382035, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1793 - Virtual Mage - Refraction.flac', 'size': 13382035, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1819 - Virtual Mage - Liquid Everything.flac from Dax_VR (size: 13219910) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1819 - Virtual Mage - Liquid Everything.flac', 'size': 13219910, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1819 - Virtual Mage - Liquid Everything.flac', 'size': 13219910, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1871 - Virtual Mage - Into the Mirror.flac from Dax_VR (size: 14820839) +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1871 - Virtual Mage - Into the Mirror.flac', 'size': 14820839, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:30:59 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1871 - Virtual Mage - Into the Mirror.flac', 'size': 14820839, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1717 - Virtual Mage - Aether.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1736 - Virtual Mage - Astral Chill.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1819 - Virtual Mage - Liquid Everything.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1757 - Virtual Mage - Moondust.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1793 - Virtual Mage - Refraction.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1871 - Virtual Mage - Into the Mirror.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1727 - Virtual Mage - Orbit Love.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1746 - Virtual Mage - Temple of Eternity.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1741 - Virtual Mage - Sleepy.flac from Dax_VR +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:31:00 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:31:00 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1723 - Virtual Mage - Comet.flac from Dax_VR +2025-07-10 20:31:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:01 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:03 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:03 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:03 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:03 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:03 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:05 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:05 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:05 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:05 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:05 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:07 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:07 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:07 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:07 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:07 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:09 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:09 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:09 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:09 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:09 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:11 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:11 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:11 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:11 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:11 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:13 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:13 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:13 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:13 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:13 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:15 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:15 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:15 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:15 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:15 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:17 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:17 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:17 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:17 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:17 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:19 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:19 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:19 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:19 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:19 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:21 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:21 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:21 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:21 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:21 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:23 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:23 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:23 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:23 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:23 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:25 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:25 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:25 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:25 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:25 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:27 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:27 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:29 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:29 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:29 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:29 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:29 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:31 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:31 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:31 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:31 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:31 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:31:33 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:31:33 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:31:33 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:31:33 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:31:33 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - download:638 - Attempting to download: Unsynced music\Techno\1727 - Virtual Mage - Orbit Love.flac from Dax_VR (size: 22566763) +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - download:651 - Using web interface API format: [{'filename': 'Unsynced music\\Techno\\1727 - Virtual Mage - Orbit Love.flac', 'size': 22566763, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - download:655 - Trying web interface endpoint: transfers/downloads/Dax_VR +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Dax_VR +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:32:02 - newmusic.soulseek_client - DEBUG - _make_request:245 - JSON payload: [{'filename': 'Unsynced music\\Techno\\1727 - Virtual Mage - Orbit Love.flac', 'size': 22566763, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 201 +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: ... +2025-07-10 20:32:03 - newmusic.soulseek_client - INFO - download:660 - [SUCCESS] Started download: Unsynced music\Techno\1727 - Virtual Mage - Orbit Love.flac from Dax_VR +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:32:03 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:32:05 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:32:05 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:32:05 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:32:05 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:32:05 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:32:07 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/transfers/downloads +2025-07-10 20:32:07 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 20:32:07 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-10 20:32:07 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"Ultravod","directories":[{"directory":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)","fileCount":1,"files":[{"id":"736c4496-c27e-4f9c-abdd-8aeedd0c9faa","username":"Ultravod","direction":"Download","filename":"FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac","size":22183233,"startOffset":0,"state":"Completed, Succeeded","stateDescription":"Completed, Succeeded","requestedAt":"2025-07-11T02:13:17.5115656","en... +2025-07-10 20:32:07 - newmusic.soulseek_client - DEBUG - get_all_downloads:795 - Parsed 12 downloads from API response +2025-07-10 20:32:17 - newmusic.main - INFO - closeEvent:152 - Closing application... +2025-07-10 20:32:17 - newmusic.main - INFO - closeEvent:157 - Cleaning up Downloads page threads... +2025-07-10 20:32:17 - newmusic.main - INFO - closeEvent:162 - Stopping status monitoring thread... +2025-07-10 20:32:17 - newmusic.main - INFO - closeEvent:167 - Closing Soulseek client... +2025-07-10 20:32:17 - newmusic.main - INFO - closeEvent:173 - Application closed successfully diff --git a/ui/pages/__pycache__/downloads.cpython-312.pyc b/ui/pages/__pycache__/downloads.cpython-312.pyc index 1df11f379340ae24475ab0a49551dce843669809..1cffd545ef9b9cb8d13fb214071a388945e9d759 100644 GIT binary patch delta 33249 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 delta 22618 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 diff --git a/ui/pages/downloads.py b/ui/pages/downloads.py index 8e731ff0..39e5605d 100644 --- a/ui/pages/downloads.py +++ b/ui/pages/downloads.py @@ -8,6 +8,9 @@ from PyQt6.QtMultimedia import QMediaPlayer, QAudioOutput import functools # For fixing lambda memory leaks import os +# Import the new search result classes +from core.soulseek_client import TrackResult, AlbumResult + class AudioPlayer(QMediaPlayer): """Simple audio player for streaming music files""" playback_finished = pyqtSignal() @@ -273,7 +276,7 @@ class ExploreApiThread(QThread): self._stop_requested = True class SearchThread(QThread): - search_completed = pyqtSignal(list) # List of search results + search_completed = pyqtSignal(object) # Tuple of (tracks, albums) or list for backward compatibility search_failed = pyqtSignal(str) # Error message search_progress = pyqtSignal(str) # Progress message search_results_partial = pyqtSignal(list, int) # Partial results, total count @@ -305,8 +308,9 @@ class SearchThread(QThread): results = loop.run_until_complete(self._do_search()) if not self._stop_requested: - # Emit final completion with all results - self.search_completed.emit(self.all_results if self.all_results else results) + # Emit final completion with proper tuple format + # results should be a tuple (tracks, albums) from the search client + self.search_completed.emit(results) except Exception as e: if not self._stop_requested: @@ -456,10 +460,9 @@ class StreamingThread(QThread): if found_file: print(f"✓ Found downloaded file: {found_file}") - # Move the file to Stream folder - file_extension = os.path.splitext(found_file)[1] - stream_filename = f"current_stream{file_extension}" - stream_path = os.path.join(stream_folder, stream_filename) + # Move the file to Stream folder with original filename + original_filename = os.path.basename(found_file) + stream_path = os.path.join(stream_folder, original_filename) try: # Move file to Stream folder @@ -592,6 +595,338 @@ class StreamingThread(QThread): """Stop the streaming gracefully""" self._stop_requested = True +class TrackItem(QFrame): + """Individual track item within an album""" + track_download_requested = pyqtSignal(object) # TrackResult object + track_stream_requested = pyqtSignal(object) # TrackResult object + + def __init__(self, track_result, parent=None): + super().__init__(parent) + self.track_result = track_result + self.setup_ui() + + def setup_ui(self): + self.setFixedHeight(50) + self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) + + self.setStyleSheet(""" + TrackItem { + background: rgba(40, 40, 40, 0.5); + border-radius: 8px; + border: 1px solid rgba(60, 60, 60, 0.3); + margin: 2px 8px; + } + TrackItem:hover { + background: rgba(50, 50, 50, 0.7); + border: 1px solid rgba(29, 185, 84, 0.5); + } + """) + + layout = QHBoxLayout(self) + layout.setContentsMargins(12, 8, 12, 8) + layout.setSpacing(12) + + # Track info + track_info = QVBoxLayout() + track_info.setSpacing(2) + + # Track title + title = QLabel(self.track_result.title or "Unknown Title") + title.setFont(QFont("Arial", 11, QFont.Weight.Bold)) + title.setStyleSheet("color: #ffffff;") + + # Track details + details = [] + if self.track_result.track_number: + details.append(f"#{self.track_result.track_number:02d}") + details.append(self.track_result.quality.upper()) + if self.track_result.bitrate: + details.append(f"{self.track_result.bitrate}kbps") + details.append(f"{self.track_result.size // (1024*1024)}MB") + + details_text = " • ".join(details) + track_details = QLabel(details_text) + track_details.setFont(QFont("Arial", 9)) + track_details.setStyleSheet("color: rgba(179, 179, 179, 0.8);") + + track_info.addWidget(title) + track_info.addWidget(track_details) + + # Control buttons + button_layout = QHBoxLayout() + button_layout.setSpacing(8) + + # Play button + play_btn = QPushButton("▶️") + play_btn.setFixedSize(32, 32) + play_btn.clicked.connect(self.request_stream) + play_btn.setStyleSheet(""" + QPushButton { + background: rgba(29, 185, 84, 0.8); + border: none; + border-radius: 16px; + color: #000000; + font-size: 12px; + font-weight: bold; + } + QPushButton:hover { + background: rgba(30, 215, 96, 1.0); + } + """) + + # Download button + download_btn = QPushButton("⬇️") + download_btn.setFixedSize(32, 32) + download_btn.clicked.connect(self.request_download) + download_btn.setStyleSheet(""" + QPushButton { + background: rgba(64, 64, 64, 0.8); + border: 1px solid rgba(29, 185, 84, 0.6); + border-radius: 16px; + color: #1db954; + font-size: 10px; + } + QPushButton:hover { + background: rgba(29, 185, 84, 0.2); + } + """) + + button_layout.addWidget(play_btn) + button_layout.addWidget(download_btn) + + # Store button references for state management + self.play_btn = play_btn + self.download_btn = download_btn + + # Assembly + layout.addLayout(track_info, 1) + layout.addLayout(button_layout) + + def request_stream(self): + """Request streaming of this track""" + self.track_stream_requested.emit(self.track_result) + + def request_download(self): + """Request download of this track""" + self.track_download_requested.emit(self.track_result) + + def set_loading_state(self): + """Set play button to loading state""" + self.play_btn.setText("⏳") + self.play_btn.setEnabled(False) + + def set_playing_state(self): + """Set play button to playing/pause state""" + self.play_btn.setText("⏸️") + self.play_btn.setEnabled(True) + + def reset_play_state(self): + """Reset play button to default state""" + self.play_btn.setText("▶️") + self.play_btn.setEnabled(True) + +class AlbumResultItem(QFrame): + """Expandable UI component for displaying album search results""" + album_download_requested = pyqtSignal(object) # AlbumResult object + track_download_requested = pyqtSignal(object) # TrackResult object + track_stream_requested = pyqtSignal(object, object) # TrackResult object, TrackItem object + + def __init__(self, album_result, parent=None): + super().__init__(parent) + self.album_result = album_result + self.is_expanded = False + self.track_items = [] + self.tracks_container = None + self.setup_ui() + + def setup_ui(self): + # Dynamic height based on expansion state + self.collapsed_height = 80 + self.setFixedHeight(self.collapsed_height) + self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) + + # Enable mouse tracking for click detection + self.setMouseTracking(True) + + self.setStyleSheet(""" + AlbumResultItem { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(45, 45, 45, 0.9), + stop:1 rgba(35, 35, 35, 0.95)); + border-radius: 12px; + border: 1px solid rgba(80, 80, 80, 0.4); + margin: 6px 4px; + } + AlbumResultItem:hover { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(55, 55, 55, 0.95), + stop:1 rgba(45, 45, 45, 0.98)); + border: 1px solid rgba(29, 185, 84, 0.7); + } + """) + + # Main vertical layout for album header + tracks + main_layout = QVBoxLayout(self) + main_layout.setContentsMargins(0, 0, 0, 0) + main_layout.setSpacing(0) + + # Album header (always visible, clickable) + self.header_widget = QWidget() + self.header_widget.setFixedHeight(80) + self.header_widget.setStyleSheet("QWidget { background: transparent; }") + header_layout = QHBoxLayout(self.header_widget) + header_layout.setContentsMargins(16, 12, 16, 12) + header_layout.setSpacing(16) + + # Album icon with expand indicator + icon_container = QVBoxLayout() + album_icon = QLabel("💿") + album_icon.setFixedSize(32, 32) + album_icon.setAlignment(Qt.AlignmentFlag.AlignCenter) + album_icon.setStyleSheet(""" + QLabel { + font-size: 20px; + background: rgba(29, 185, 84, 0.1); + border-radius: 16px; + border: 1px solid rgba(29, 185, 84, 0.3); + } + """) + + # Expand indicator + self.expand_indicator = QLabel("▶") + self.expand_indicator.setFixedSize(16, 16) + self.expand_indicator.setAlignment(Qt.AlignmentFlag.AlignCenter) + self.expand_indicator.setStyleSheet(""" + QLabel { + color: rgba(29, 185, 84, 0.8); + font-size: 12px; + font-weight: bold; + } + """) + + icon_container.addWidget(album_icon) + icon_container.addWidget(self.expand_indicator) + + # Album info section + info_section = QVBoxLayout() + info_section.setSpacing(2) + info_section.setContentsMargins(0, 0, 0, 0) + + # Album title + album_title = QLabel(self.album_result.album_title) + album_title.setFont(QFont("Arial", 12, QFont.Weight.Bold)) + album_title.setStyleSheet("color: #ffffff;") + + # Artist and details + details = [] + if self.album_result.artist: + details.append(self.album_result.artist) + details.append(f"{self.album_result.track_count} tracks") + details.append(f"{self.album_result.size_mb}MB") + details.append(self.album_result.dominant_quality.upper()) + if self.album_result.year: + details.append(f"({self.album_result.year})") + + details_text = " • ".join(details) + album_details = QLabel(details_text) + album_details.setFont(QFont("Arial", 10)) + album_details.setStyleSheet("color: rgba(179, 179, 179, 0.9);") + + # User info + user_info = QLabel(f"👤 {self.album_result.username}") + user_info.setFont(QFont("Arial", 9)) + user_info.setStyleSheet("color: rgba(29, 185, 84, 0.8);") + + info_section.addWidget(album_title) + info_section.addWidget(album_details) + info_section.addWidget(user_info) + + # Download button + self.download_btn = QPushButton("⬇️ Download Album") + self.download_btn.setFixedSize(120, 36) + self.download_btn.clicked.connect(self.request_album_download) + self.download_btn.setStyleSheet(""" + QPushButton { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(29, 185, 84, 0.9), + stop:1 rgba(24, 156, 71, 0.9)); + border: none; + border-radius: 18px; + color: #000000; + font-size: 12px; + font-weight: bold; + } + QPushButton:hover { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(30, 215, 96, 1.0), + stop:1 rgba(25, 180, 80, 1.0)); + } + """) + + # Assembly header + header_layout.addLayout(icon_container) + header_layout.addLayout(info_section, 1) + header_layout.addWidget(self.download_btn) + + # Tracks container (hidden by default) + self.tracks_container = QWidget() + self.tracks_container.setVisible(False) + tracks_layout = QVBoxLayout(self.tracks_container) + tracks_layout.setContentsMargins(16, 8, 16, 16) + tracks_layout.setSpacing(4) + + # Create track items + for track in self.album_result.tracks: + track_item = TrackItem(track) + track_item.track_download_requested.connect(self.track_download_requested.emit) + # Use lambda to pass both track result and track item reference + track_item.track_stream_requested.connect( + lambda track_result, item=track_item: self.handle_track_stream_request(track_result, item) + ) + tracks_layout.addWidget(track_item) + self.track_items.append(track_item) + + # Assembly main layout + main_layout.addWidget(self.header_widget) + main_layout.addWidget(self.tracks_container) + + # Make header clickable + self.header_widget.mousePressEvent = self.toggle_expansion + + def request_album_download(self): + """Request download of the entire album""" + self.download_btn.setText("⏳") + self.download_btn.setEnabled(False) + self.album_download_requested.emit(self.album_result) + + def toggle_expansion(self, event): + """Toggle album expansion to show/hide tracks""" + self.is_expanded = not self.is_expanded + + if self.is_expanded: + # Expand to show tracks + self.tracks_container.setVisible(True) + self.expand_indicator.setText("▼") + # Calculate height: header + (tracks * track_height) + padding + track_height = 54 # 50px + margin + total_height = self.collapsed_height + (len(self.track_items) * track_height) + 24 + self.setFixedHeight(total_height) + else: + # Collapse to hide tracks + self.tracks_container.setVisible(False) + self.expand_indicator.setText("▶") + self.setFixedHeight(self.collapsed_height) + + # Force layout update + self.updateGeometry() + if self.parent(): + self.parent().updateGeometry() + + def handle_track_stream_request(self, track_result, track_item): + """Handle stream request from a track item, passing the correct button reference""" + # Emit the stream request with the track item that contains the button + self.track_stream_requested.emit(track_result, track_item) + class SearchResultItem(QFrame): download_requested = pyqtSignal(object) # SearchResult object stream_requested = pyqtSignal(object) # SearchResult object for streaming @@ -943,33 +1278,63 @@ class SearchResultItem(QFrame): return '/'.join(truncated_parts) def _extract_song_info(self): - """Extract song title and artist from filename""" - filename = self.search_result.filename + """Extract song title and artist from TrackResult""" + # Handle case where search_result is a list (shouldn't happen but be defensive) + if isinstance(self.search_result, list): + if len(self.search_result) > 0: + # Take the first item if it's a list + actual_result = self.search_result[0] + else: + # Empty list, return defaults + return {'title': 'Unknown Title', 'artist': 'Unknown Artist'} + else: + actual_result = self.search_result - # Remove file extension - name_without_ext = filename.rsplit('.', 1)[0] + # TrackResult objects have parsed metadata available + if hasattr(actual_result, 'title') and hasattr(actual_result, 'artist'): + # Use parsed metadata from TrackResult + return { + 'title': actual_result.title or 'Unknown Title', + 'artist': actual_result.artist or 'Unknown Artist' + } - # Common patterns for artist - title separation - separators = [' - ', ' – ', ' — ', '_-_', ' | '] - - for sep in separators: - if sep in name_without_ext: - parts = name_without_ext.split(sep, 1) - return { - 'title': parts[1].strip(), - 'artist': parts[0].strip() - } - - # If no separator found, use filename as title - return { - 'title': name_without_ext, - 'artist': 'Unknown Artist' - } + # Fallback: parse from filename if metadata not available + if hasattr(actual_result, 'filename'): + filename = actual_result.filename + + # Remove file extension + name_without_ext = filename.rsplit('.', 1)[0] + + # Common patterns for artist - title separation + separators = [' - ', ' – ', ' — ', '_-_', ' | '] + + for sep in separators: + if sep in name_without_ext: + parts = name_without_ext.split(sep, 1) + return { + 'title': parts[1].strip(), + 'artist': parts[0].strip() + } + + # If no separator found, use filename as title + return { + 'title': name_without_ext, + 'artist': 'Unknown Artist' + } + else: + # No filename attribute, return defaults + return { + 'title': 'Unknown Title', + 'artist': 'Unknown Artist' + } def _create_compact_quality_badge(self): """Create a compact quality indicator badge""" - quality = self.search_result.quality.upper() - bitrate = self.search_result.bitrate + # Handle list case defensively + result = self.search_result[0] if isinstance(self.search_result, list) else self.search_result + + quality = result.quality.upper() + bitrate = result.bitrate if quality == 'FLAC': badge_text = "FLAC" @@ -1004,8 +1369,11 @@ class SearchResultItem(QFrame): def _create_compact_speed_indicator(self): """Create compact upload speed indicator""" - speed = self.search_result.upload_speed - slots = self.search_result.free_upload_slots + # Handle list case defensively + result = self.search_result[0] if isinstance(self.search_result, list) else self.search_result + + speed = result.upload_speed + slots = result.free_upload_slots if slots > 0 and speed > 100: indicator_color = "#1db954" @@ -2430,12 +2798,20 @@ class DownloadsPage(QWidget): self.search_btn.setText("🔍 Search") self.search_btn.setEnabled(True) - # Use temp results from progressive loading if available, otherwise use results - if hasattr(self, '_temp_search_results') and self._temp_search_results: - self.search_results = self._temp_search_results - del self._temp_search_results # Clean up temp storage + # Handle tuple format (tracks, albums) from enhanced search + if isinstance(results, tuple) and len(results) == 2: + tracks, albums = results + + # Combine into single list for display - albums first, then tracks + combined_results = albums + tracks + self.search_results = combined_results + self.track_results = tracks # Store separately for future use + self.album_results = albums # Store separately for future use else: + # Fallback for old list format or empty results self.search_results = results or [] + self.track_results = results or [] # Assume all are tracks in old format + self.album_results = [] total_results = len(self.search_results) @@ -2446,12 +2822,24 @@ class DownloadsPage(QWidget): self.update_search_status(f"✨ Search completed • Found {self.displayed_results} total results", "#1db954") return + # Update status with album/track breakdown + album_count = len(self.album_results) if hasattr(self, 'album_results') else 0 + track_count = len(self.track_results) if hasattr(self, 'track_results') else total_results + + status_parts = [] + if album_count > 0: + status_parts.append(f"{album_count} album{'s' if album_count != 1 else ''}") + if track_count > 0: + status_parts.append(f"{track_count} track{'s' if track_count != 1 else ''}") + + result_summary = " • ".join(status_parts) if status_parts else f"{total_results} results" + # Update status based on whether there are more results to load if self.displayed_results < total_results: remaining = total_results - self.displayed_results - self.update_search_status(f"✨ Found {total_results} results • Showing first {self.displayed_results} (scroll down for {remaining} more)", "#1db954") + self.update_search_status(f"✨ Found {result_summary} • Showing first {self.displayed_results} (scroll down for {remaining} more)", "#1db954") else: - self.update_search_status(f"✨ Search completed • Showing all {total_results} results", "#1db954") + self.update_search_status(f"✨ Search completed • Found {result_summary}", "#1db954") # If we have no displayed results yet, show the first batch if self.displayed_results == 0 and total_results > 0: @@ -2459,12 +2847,14 @@ class DownloadsPage(QWidget): def clear_search_results(self): """Clear all search result items from the layout""" - # Remove all SearchResultItem widgets (but keep stretch) + # Remove all SearchResultItem and AlbumResultItem widgets (but keep stretch) items_to_remove = [] for i in range(self.search_results_layout.count()): item = self.search_results_layout.itemAt(i) - if item and item.widget() and isinstance(item.widget(), SearchResultItem): - items_to_remove.append(item.widget()) + if item and item.widget(): + widget = item.widget() + if isinstance(widget, (SearchResultItem, AlbumResultItem)): + items_to_remove.append(widget) for widget in items_to_remove: self.search_results_layout.removeWidget(widget) @@ -2501,10 +2891,21 @@ class DownloadsPage(QWidget): # Add result items to UI for i in range(start_index, end_index): result = self.search_results[i] - result_item = SearchResultItem(result) - result_item.download_requested.connect(self.start_download) - result_item.stream_requested.connect(lambda search_result, item=result_item: self.start_stream(search_result, item)) - result_item.expansion_requested.connect(self.handle_expansion_request) + + # Create appropriate UI component based on result type + if isinstance(result, AlbumResult): + # Create expandable album result item + result_item = AlbumResultItem(result) + result_item.album_download_requested.connect(self.start_album_download) + result_item.track_download_requested.connect(self.start_download) # Individual track downloads + result_item.track_stream_requested.connect(lambda search_result, track_item: self.start_stream(search_result, track_item)) # Individual track streaming + else: + # Create track result item (play + download) + result_item = SearchResultItem(result) + result_item.download_requested.connect(self.start_download) + result_item.stream_requested.connect(lambda search_result, item=result_item: self.start_stream(search_result, item)) + result_item.expansion_requested.connect(self.handle_expansion_request) + # Insert before the stretch (which is always last) insert_position = self.search_results_layout.count() - 1 self.search_results_layout.insertWidget(insert_position, result_item) @@ -2606,6 +3007,20 @@ class DownloadsPage(QWidget): except Exception as e: print(f"Failed to start download: {str(e)}") + def start_album_download(self, album_result): + """Start downloading all tracks in an album""" + try: + print(f"🎵 Starting album download: {album_result.album_title} by {album_result.artist}") + + # Download each track in the album + for track in album_result.tracks: + self.start_download(track) + + print(f"✓ Queued {len(album_result.tracks)} tracks for download from album: {album_result.album_title}") + + except Exception as e: + print(f"Failed to start album download: {str(e)}") + def start_stream(self, search_result, result_item=None): """Start streaming a search result using StreamingThread""" try: @@ -2671,11 +3086,15 @@ class DownloadsPage(QWidget): project_root = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) # Go up from ui/pages/ stream_folder = os.path.join(project_root, 'Stream') - # Find the current stream file + # Find any audio file in the stream folder (should only be one) stream_file = None + audio_extensions = {'.mp3', '.flac', '.ogg', '.aac', '.wma', '.wav', '.m4a'} + for filename in os.listdir(stream_folder): - if filename.startswith('current_stream') and os.path.isfile(os.path.join(stream_folder, filename)): - stream_file = os.path.join(stream_folder, filename) + file_path = os.path.join(stream_folder, filename) + if (os.path.isfile(file_path) and + os.path.splitext(filename)[1].lower() in audio_extensions): + stream_file = file_path break if stream_file and os.path.exists(stream_file):