diff --git a/logs/app.log b/logs/app.log index d772c4f8..b28c161a 100644 --- a/logs/app.log +++ b/logs/app.log @@ -176287,3 +176287,236 @@ 2025-07-27 20:44:34 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Graduation', artist='kanye west' 2025-07-27 20:44:34 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Late Registration', artist='kanye west' 2025-07-27 20:44:34 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='The College Dropout', artist='kanye west' +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 20:45:56 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 20:45:56 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 20:47:53 - newmusic.main - INFO - closeEvent:246 - Closing application... +2025-07-27 20:47:53 - newmusic.main - INFO - closeEvent:251 - Cleaning up Downloads page threads... +2025-07-27 20:47:53 - newmusic.main - INFO - closeEvent:256 - Stopping status monitoring thread... +2025-07-27 20:47:54 - newmusic.main - INFO - closeEvent:261 - Stopping search maintenance timer... +2025-07-27 20:47:54 - newmusic.main - INFO - closeEvent:266 - Closing Soulseek client... +2025-07-27 20:47:54 - newmusic.main - INFO - closeEvent:272 - Application closed successfully +2025-07-27 20:47:57 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 20:47:57 - newmusic.main - INFO - main:286 - Starting NewMusic application +2025-07-27 20:47:57 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:47:57 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 20:47:57 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:47:57 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:47:57 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 20:47:57 - newmusic.main - INFO - change_page:233 - Changed to page: dashboard +2025-07-27 20:47:57 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 20:47:57 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 20:47:57 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 20:47:58 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 20:47:58 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 20:47:58 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 20:47:59 - newmusic.main - INFO - change_page:233 - Changed to page: sync +2025-07-27 20:47:59 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas +2025-07-27 20:48:00 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch) +2025-07-27 20:48:01 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 20:48:05 - newmusic.spotify_client - INFO - get_artist_albums:452 - Retrieved 17 albums for artist 5K4W6rqBFWDnAN6FQUkS6x +2025-07-27 20:48:05 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 20:48:05 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 20:48:05 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='donda' +2025-07-27 20:48:05 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='y$' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='y$' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Donda (Deluxe)', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='donda deluxe', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='donda deluxe', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Donda', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='JESUS IS KING', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='kids see ghosts' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 2 albums matching query: album='ye', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='The Life Of Pablo', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Yeezus', artist='kanye west' +2025-07-27 20:48:06 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Watch The Throne (Deluxe)', artist='jay-z' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='jay-z' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne (Deluxe)', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne (Deluxe)', artist='' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Watch The Throne', artist='jay-z' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne', artist='' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='My Beautiful Dark Twisted Fantasy', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='808s & Heartbreak', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='808s heartbreak', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='808s heartbreak', artist='' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Graduation', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Late Registration', artist='kanye west' +2025-07-27 20:48:07 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='The College Dropout', artist='kanye west' +2025-07-27 20:49:19 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'DONDA' +2025-07-27 20:49:19 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'DONDA TRUE LOVE' +2025-07-27 20:49:20 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'TRUE LOVE' +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 282255) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love, What's That?' (ratingKey: 269176) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love Ways' (ratingKey: 396718) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 248364) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 464256) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True love (feat. 070 Shake)' (ratingKey: 410335) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 209684) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love (Live at the Enmore Theatre, Sydney)' (ratingKey: 209694) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 209511) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love (Davide Rossi Remix)' (ratingKey: 209447) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love' (ratingKey: 306808) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love (Original Mix)' (ratingKey: 251090) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love (Vadim Soloviev Remix)' (ratingKey: 251091) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love (Sami Saari Remix)' (ratingKey: 251092) +2025-07-27 20:49:21 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'True Love Travels On a Gravel Road' (ratingKey: 239956) +2025-07-27 20:49:21 - newmusic.plex_client - INFO - search_tracks:390 - Found 15 total potential matches for 'TRUE LOVE' by 'DONDA' after all stages. +2025-07-27 20:49:36 - newmusic.main - INFO - closeEvent:246 - Closing application... +2025-07-27 20:49:36 - newmusic.main - INFO - closeEvent:251 - Cleaning up Downloads page threads... +2025-07-27 20:49:36 - newmusic.main - INFO - closeEvent:256 - Stopping status monitoring thread... +2025-07-27 20:49:37 - newmusic.main - INFO - closeEvent:261 - Stopping search maintenance timer... +2025-07-27 20:49:37 - newmusic.main - INFO - closeEvent:266 - Closing Soulseek client... +2025-07-27 20:49:37 - newmusic.main - INFO - closeEvent:272 - Application closed successfully +2025-07-27 20:51:00 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 20:51:00 - newmusic.main - INFO - main:286 - Starting NewMusic application +2025-07-27 20:51:00 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:51:00 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 20:51:00 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:51:01 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 20:51:01 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 20:51:01 - newmusic.main - INFO - change_page:233 - Changed to page: dashboard +2025-07-27 20:51:01 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 20:51:01 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 20:51:01 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 20:51:01 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 20:51:01 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 20:51:04 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 20:51:07 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 20:52:14 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 20:52:24 - newmusic.main - INFO - change_page:233 - Changed to page: sync +2025-07-27 20:52:25 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas +2025-07-27 20:52:25 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch) +2025-07-27 20:52:27 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 20:53:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 20:53:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 20:55:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 20:55:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 20:57:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 20:57:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 20:59:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 20:59:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 21:01:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 21:01:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 21:03:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 21:03:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 21:05:01 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 21:05:01 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:246 - Closing application... +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:251 - Cleaning up Downloads page threads... +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:256 - Stopping status monitoring thread... +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:261 - Stopping search maintenance timer... +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:266 - Closing Soulseek client... +2025-07-27 21:06:00 - newmusic.main - INFO - closeEvent:272 - Application closed successfully +2025-07-27 21:06:04 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 21:06:04 - newmusic.main - INFO - main:286 - Starting NewMusic application +2025-07-27 21:06:04 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 21:06:04 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 21:06:04 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 21:06:05 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 21:06:05 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 21:06:05 - newmusic.main - INFO - change_page:233 - Changed to page: dashboard +2025-07-27 21:06:05 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 21:06:05 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 21:06:05 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 21:06:05 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 21:06:05 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 21:06:06 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 21:06:10 - newmusic.spotify_client - INFO - get_artist_albums:452 - Retrieved 17 albums for artist 5K4W6rqBFWDnAN6FQUkS6x +2025-07-27 21:06:10 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 21:06:10 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='donda' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='kanye west' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='DONDA 2', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='y$' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='kanye west' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 2', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='y$' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='kanye west' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='VULTURES 1', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Donda (Deluxe)', artist='kanye west' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='donda deluxe', artist='kanye west' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='donda deluxe', artist='' +2025-07-27 21:06:10 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Donda', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='JESUS IS KING', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='kids see ghosts' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='KIDS SEE GHOSTS', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 2 albums matching query: album='ye', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='The Life Of Pablo', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Yeezus', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Watch The Throne (Deluxe)', artist='jay-z' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='jay-z' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne (Deluxe)', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne (Deluxe)', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='watch the throne deluxe', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Watch The Throne', artist='jay-z' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='Watch The Throne', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='My Beautiful Dark Twisted Fantasy', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='808s & Heartbreak', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='808s heartbreak', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 0 albums matching query: album='808s heartbreak', artist='' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Graduation', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='Late Registration', artist='kanye west' +2025-07-27 21:06:11 - newmusic.plex_client - DEBUG - search_albums:526 - Found 1 albums matching query: album='The College Dropout', artist='kanye west' diff --git a/ui/pages/__pycache__/artists.cpython-312.pyc b/ui/pages/__pycache__/artists.cpython-312.pyc index 6cf49a95..1305abdd 100644 Binary files a/ui/pages/__pycache__/artists.cpython-312.pyc and b/ui/pages/__pycache__/artists.cpython-312.pyc differ diff --git a/ui/pages/artists.py b/ui/pages/artists.py index fad746e0..57c3bdea 100644 --- a/ui/pages/artists.py +++ b/ui/pages/artists.py @@ -1603,12 +1603,28 @@ class DownloadMissingAlbumTracksModal(QDialog): def populate_track_table(self): """Populate track table with album tracks""" - self.track_table.setRowCount(len(self.album.tracks)) - for i, track in enumerate(self.album.tracks): - self.track_table.setItem(i, 0, QTableWidgetItem(track.name)) - artist_name = track.artists[0] if track.artists else "Unknown" + # Filter out invalid tracks before populating table + valid_tracks = [] + for track in self.album.tracks: + if self.is_valid_track(track): + valid_tracks.append(track) + else: + print(f"⚠️ Skipping invalid track: name='{getattr(track, 'name', 'None')}', artists={getattr(track, 'artists', 'None')}, duration={getattr(track, 'duration_ms', 'None')}") + + # Update album tracks to only include valid ones + self.album.tracks = valid_tracks + self.total_tracks = len(valid_tracks) + + self.track_table.setRowCount(len(valid_tracks)) + for i, track in enumerate(valid_tracks): + # Use defensive get methods for track data + track_name = getattr(track, 'name', '') or 'Unknown Track' + artist_name = track.artists[0] if track.artists else "Unknown Artist" + duration_ms = getattr(track, 'duration_ms', 0) or 0 + + self.track_table.setItem(i, 0, QTableWidgetItem(track_name)) self.track_table.setItem(i, 1, QTableWidgetItem(artist_name)) - duration = self.format_duration(track.duration_ms) + duration = self.format_duration(duration_ms) duration_item = QTableWidgetItem(duration) duration_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.track_table.setItem(i, 2, duration_item) @@ -1620,6 +1636,28 @@ class DownloadMissingAlbumTracksModal(QDialog): self.track_table.setItem(i, 4, status_item) for col in range(5): self.track_table.item(i, col).setFlags(self.track_table.item(i, col).flags() & ~Qt.ItemFlag.ItemIsEditable) + + def is_valid_track(self, track) -> bool: + """Check if a track has valid data for display and download""" + # Check if track has a valid name + track_name = getattr(track, 'name', None) + if not track_name or track_name.strip() == '': + return False + + # Check if track has valid artists + artists = getattr(track, 'artists', None) + if not artists or len(artists) == 0: + return False + + # Check if track has valid duration (allow 0 duration but not None/missing attribute) + duration_ms = getattr(track, 'duration_ms', None) + if duration_ms is None: + return False + + # Allow 0 duration (some tracks like intros can be very short) + # Only reject if the duration attribute is completely missing + + return True def format_duration(self, duration_ms): """Convert milliseconds to MM:SS format"""