diff --git a/logs/app.log b/logs/app.log index 584ab92d..00c6e631 100644 --- a/logs/app.log +++ b/logs/app.log @@ -19226,3 +19226,192 @@ 2025-07-25 09:27:27 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} 2025-07-25 09:27:27 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 2025-07-25 09:27:27 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"username":"borisk","directories":[{"directory":"@@tdzlm\\myzik_volume_III\\1 - zapad_modern\\03 Brit - Rock\\Bill Nelson\\2011 - Signals from Realms of Light","fileCount":1,"files":[{"id":"3cace47a-3a6b-4bf4-affe-7e0f811afe75","username":"borisk","direction":"Download","filename":"@@tdzlm\\myzik_volume_III\\1 - zapad_modern\\03 Brit - Rock\\Bill Nelson\\2011 - Signals from Realms of Light\\02 - Past And Present, (And The Space Between).flac","size":138819202,"startOffset":0,"state":"Complet... +2025-07-25 09:30:06 - newmusic.main - INFO - closeEvent:176 - Closing application... +2025-07-25 09:30:06 - newmusic.main - INFO - closeEvent:181 - Cleaning up Downloads page threads... +2025-07-25 09:30:06 - newmusic.main - INFO - closeEvent:186 - Stopping status monitoring thread... +2025-07-25 09:30:07 - newmusic.main - INFO - closeEvent:191 - Closing Soulseek client... +2025-07-25 09:30:07 - newmusic.main - INFO - closeEvent:197 - Application closed successfully +2025-07-25 09:30:20 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-25 09:30:20 - newmusic.main - INFO - main:211 - Starting NewMusic application +2025-07-25 09:30:20 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-25 09:30:20 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-25 09:30:20 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-25 09:30:20 - newmusic.main - INFO - change_page:163 - Changed to page: dashboard +2025-07-25 09:30:20 - newmusic.main - INFO - setup_media_player_connections:150 - Media player connections established between sidebar and downloads page +2025-07-25 09:30:21 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-25 09:30:21 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-25 09:30:21 - newmusic.main - INFO - change_page:163 - Changed to page: sync +2025-07-25 09:30:21 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas +2025-07-25 09:30:22 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch) +2025-07-25 09:30:24 - newmusic.sync_service - INFO - sync_playlist:94 - Starting sync for playlist: Failed test +2025-07-25 09:30:24 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:25 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:25 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage signalsfromspace' +2025-07-25 09:30:25 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signalsfromspace' +2025-07-25 09:30:26 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:26 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:26 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage signals from space' +2025-07-25 09:30:27 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signals from space' +2025-07-25 09:30:27 - newmusic.sync_service - DEBUG - _find_track_in_plex:272 - No artist-based matches found. Using title-only fallback for 'Signals from Space' +2025-07-25 09:30:27 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'signalsfromspace' +2025-07-25 09:30:28 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signalsfromspace' +2025-07-25 09:30:29 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'signals from space' +2025-07-25 09:30:29 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signals from space' +2025-07-25 09:30:30 - newmusic.sync_service - DEBUG - _find_track_in_plex:290 - No Plex candidates found for 'Signals from Space' +2025-07-25 09:30:30 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:30 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:30 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage zztlyksyrnqryss' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'zztlyksyrnqryss' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates. +2025-07-25 09:30:31 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early. +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Zztlyk Syrn Qryss' (ratingKey: 539056) +2025-07-25 09:30:31 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Zztlyk Syrn Qryss' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates. +2025-07-25 09:30:31 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early. +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Jyxkra' (ratingKey: 539057) +2025-07-25 09:30:31 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Jyxkra' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:31 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage ktalvysh' +2025-07-25 09:30:32 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'ktalvysh' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates. +2025-07-25 09:30:33 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early. +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Ktal Vysh' (ratingKey: 539058) +2025-07-25 09:30:33 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Ktal Vysh' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates. +2025-07-25 09:30:33 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early. +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Fluxx' (ratingKey: 539059) +2025-07-25 09:30:33 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Fluxx' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage vwrntlyx' +2025-07-25 09:30:33 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'vwrntlyx' +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage' +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates. +2025-07-25 09:30:34 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early. +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Vwrn Tlyx' (ratingKey: 539060) +2025-07-25 09:30:34 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Vwrn Tlyx' +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'kendrick lamar' +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:34 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'kendrick lamar superbowllixhalftimeshowlive' +2025-07-25 09:30:35 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive' +2025-07-25 09:30:36 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'kendrick lamar' +2025-07-25 09:30:36 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:36 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'kendrick lamar super bowl lix halftime show' +2025-07-25 09:30:36 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show' +2025-07-25 09:30:37 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'nfl' +2025-07-25 09:30:37 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'nfl superbowllixhalftimeshowlive' +2025-07-25 09:30:38 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive' +2025-07-25 09:30:38 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'nfl' +2025-07-25 09:30:38 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'nfl super bowl lix halftime show' +2025-07-25 09:30:39 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show' +2025-07-25 09:30:40 - newmusic.sync_service - DEBUG - _find_track_in_plex:272 - No artist-based matches found. Using title-only fallback for 'Super Bowl LIX Halftime Show - Live' +2025-07-25 09:30:40 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'superbowllixhalftimeshowlive' +2025-07-25 09:30:40 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive' +2025-07-25 09:30:41 - newmusic.sync_service - WARNING - sync_playlist:77 - Sync already in progress +2025-07-25 09:30:41 - newmusic.sync_service - WARNING - sync_playlist:77 - Sync already in progress +2025-07-25 09:30:41 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'super bowl lix halftime show' +2025-07-25 09:30:42 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show' +2025-07-25 09:30:42 - newmusic.sync_service - DEBUG - _find_track_in_plex:290 - No Plex candidates found for 'Super Bowl LIX Halftime Show - Live' +2025-07-25 09:30:42 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno' +2025-07-25 09:30:42 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:42 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno 1800' +2025-07-25 09:30:43 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for '1800' +2025-07-25 09:30:44 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1800 Satan' (ratingKey: 488568) +2025-07-25 09:30:44 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1800' (ratingKey: 195875) +2025-07-25 09:30:44 - newmusic.plex_client - INFO - search_tracks:390 - Found 2 total potential matches for '1800' by 'bbno' after all stages. +2025-07-25 09:30:44 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno' +2025-07-25 09:30:44 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:44 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno 1-800' +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for '1-800' +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-DIRTY' (ratingKey: 342942) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800MYLOVE' (ratingKey: 446003) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-273-8255' (ratingKey: 487383) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-273-8255' (ratingKey: 487532) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Captain Save a Hoe (feat. 1-800-lost)' (ratingKey: 330364) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-SMD' (ratingKey: 330399) +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800 Nothing' (ratingKey: 327017) +2025-07-25 09:30:45 - newmusic.plex_client - INFO - search_tracks:390 - Found 7 total potential matches for '1-800' by 'bbno' after all stages. +2025-07-25 09:30:45 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for '1-800' +2025-07-25 09:30:45 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno' +2025-07-25 09:30:46 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:46 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno marypoppins' +2025-07-25 09:30:46 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'marypoppins' +2025-07-25 09:30:47 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno' +2025-07-25 09:30:47 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:47 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno mary poppins' +2025-07-25 09:30:48 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'mary poppins' +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Mary Poppins' (ratingKey: 325667) +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Introducing Mary Poppins' (ratingKey: 143885) +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'A Cover Is Not the Book' (ratingKey: 143886) +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Nowhere to Go But Up' (ratingKey: 143892) +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Theme from Mary Poppins Returns' (ratingKey: 143894) +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Mary Poppins Arrives' (ratingKey: 143896) +2025-07-25 09:30:49 - newmusic.plex_client - INFO - search_tracks:390 - Found 6 total potential matches for 'mary poppins' by 'bbno' after all stages. +2025-07-25 09:30:49 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'mary poppins' +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno' +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates. +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno boom' +2025-07-25 09:30:49 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'boom' +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'BOOM' (ratingKey: 258903) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'BOOM (Rap remix)' (ratingKey: 258943) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Boom (Ricky Pedretti Remix)' (ratingKey: 285354) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Boom (Original Mix)' (ratingKey: 285339) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Here Comes The Boom (Original Mix)' (ratingKey: 285349) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit' (ratingKey: 291146) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous' (ratingKey: 291148) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'n้e-nah' (ratingKey: 291149) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'just like me' (ratingKey: 291153) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit (nightcore version)' (ratingKey: 291130) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous (nightcore version)' (ratingKey: 291132) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'n้e-nah (nightcore version)' (ratingKey: 291133) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'just like me (nightcore version)' (ratingKey: 291137) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit (slowed down)' (ratingKey: 291098) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous (slowed down)' (ratingKey: 291100) +2025-07-25 09:30:50 - newmusic.plex_client - INFO - search_tracks:390 - Found 15 total potential matches for 'boom' by 'bbno' after all stages. +2025-07-25 09:30:50 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'boom' +2025-07-25 09:30:50 - newmusic.sync_service - INFO - sync_playlist:141 - Found 8 matches out of 10 tracks +2025-07-25 09:30:50 - newmusic.sync_service - INFO - sync_playlist:173 - Creating playlist with 8 matched tracks +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Zztlyk Syrn Qryss by Virtual Mage (ratingKey: 539056) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Jyxkra by Virtual Mage (ratingKey: 539057) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Ktal Vysh by Virtual Mage (ratingKey: 539058) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Fluxx by Virtual Mage (ratingKey: 539059) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Vwrn Tlyx by Virtual Mage (ratingKey: 539060) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: 1800 by Snoop Dogg (ratingKey: 195875) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Mary Poppins by El่nne (ratingKey: 325667) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: BOOM by $ebu (ratingKey: 258903) +2025-07-25 09:30:50 - newmusic.plex_client - INFO - create_playlist:209 - Processed 8 input tracks, resulting in 8 valid Plex tracks for playlist 'Failed test' +2025-07-25 09:30:50 - newmusic.plex_client - INFO - create_playlist:214 - Final validation: 8 valid tracks with ratingKeys +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:218 - About to create playlist with tracks: +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 1: Zztlyk Syrn Qryss (type: , ratingKey: 539056) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 2: Jyxkra (type: , ratingKey: 539057) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 3: Ktal Vysh (type: , ratingKey: 539058) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 4: Fluxx (type: , ratingKey: 539059) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 5: Vwrn Tlyx (type: , ratingKey: 539060) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 6: 1800 (type: , ratingKey: 195875) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 7: Mary Poppins (type: , ratingKey: 325667) +2025-07-25 09:30:50 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 8: BOOM (type: , ratingKey: 258903) +2025-07-25 09:30:50 - newmusic.plex_client - ERROR - create_playlist:227 - CreatePlaylist failed: Must include items to add when creating new playlist. +2025-07-25 09:30:50 - newmusic.plex_client - INFO - create_playlist:231 - Created playlist 'Failed test' with 8 tracks (using items parameter) +2025-07-25 09:30:50 - newmusic.sync_service - INFO - sync_playlist:196 - Sync completed: 80.0% success rate +2025-07-25 09:31:16 - newmusic.main - INFO - closeEvent:176 - Closing application... +2025-07-25 09:31:16 - newmusic.main - INFO - closeEvent:181 - Cleaning up Downloads page threads... +2025-07-25 09:31:16 - newmusic.main - INFO - closeEvent:186 - Stopping status monitoring thread... +2025-07-25 09:31:18 - newmusic.main - INFO - closeEvent:191 - Closing Soulseek client... +2025-07-25 09:31:18 - newmusic.main - INFO - closeEvent:197 - Application closed successfully +2025-07-25 09:31:21 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-25 09:31:21 - newmusic.main - INFO - main:211 - Starting NewMusic application +2025-07-25 09:31:21 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-25 09:31:21 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-25 09:31:21 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-25 09:31:21 - newmusic.main - INFO - change_page:163 - Changed to page: dashboard +2025-07-25 09:31:21 - newmusic.main - INFO - setup_media_player_connections:150 - Media player connections established between sidebar and downloads page +2025-07-25 09:31:22 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-25 09:31:22 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-25 09:31:36 - newmusic.main - INFO - change_page:163 - Changed to page: sync +2025-07-25 09:31:36 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas +2025-07-25 09:31:36 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch) diff --git a/ui/pages/__pycache__/sync.cpython-312.pyc b/ui/pages/__pycache__/sync.cpython-312.pyc index a3b43737..5f2486c4 100644 Binary files a/ui/pages/__pycache__/sync.cpython-312.pyc and b/ui/pages/__pycache__/sync.cpython-312.pyc differ diff --git a/ui/pages/sync.py b/ui/pages/sync.py index b2e52490..710d1be5 100644 --- a/ui/pages/sync.py +++ b/ui/pages/sync.py @@ -2019,6 +2019,9 @@ class SyncPage(QWidget): if hasattr(self, 'log_area'): self.log_area.append(f"๐Ÿ”„ Starting sync for playlist: {playlist.name}") + # Update refresh button state since we now have an active sync + self.update_refresh_button_state() + return True def toggle_playlist_selection(self, playlist_id): @@ -2075,6 +2078,9 @@ class SyncPage(QWidget): self.start_sync_btn.setText("Syncing...") self.start_sync_btn.setEnabled(False) + # Disable refresh button during sequential sync + self.update_refresh_button_state() + # Start first sync self.process_next_in_sync_queue() @@ -2107,6 +2113,9 @@ class SyncPage(QWidget): self.sequential_sync_queue.clear() self.start_sync_btn.setText("Start Sync") self.update_selection_ui() # Re-enable if playlists still selected + + # Update refresh button state since sequential sync is complete + self.update_refresh_button_state() def get_all_playlist_items(self): """Get all PlaylistItem widgets from the playlist layout""" @@ -2184,6 +2193,9 @@ class SyncPage(QWidget): else: print(f"DEBUG: Sync finished for {playlist_id}, not in sequential sync mode") + # Update refresh button state since a sync completed + self.update_refresh_button_state() + # Log completion if hasattr(self, 'log_area'): success_rate = result.success_rate @@ -2212,6 +2224,9 @@ class SyncPage(QWidget): if self.is_sequential_syncing: self.process_next_in_sync_queue() + # Update refresh button state since a sync completed (with error) + self.update_refresh_button_state() + # Log error if hasattr(self, 'log_area'): self.log_area.append(f"โŒ Sync failed: {error_msg}") @@ -2266,8 +2281,9 @@ class SyncPage(QWidget): print(f"Download process started for playlist: {playlist_id}. Disabling refresh.") self.active_download_processes[playlist_id] = playlist_item_widget playlist_item_widget.show_operation_status() - self.refresh_btn.setEnabled(False) - self.refresh_btn.setText("๐Ÿ”„ Working...") + + # Use centralized refresh button management + self.update_refresh_button_state() # --- FIX: Connect the finished signal from the modal --- # This ensures that when the modal is finished (or cancelled), the cleanup function is called. if playlist_item_widget.download_modal: @@ -2294,8 +2310,8 @@ class SyncPage(QWidget): if not self.active_download_processes: print("All download processes finished. Re-enabling refresh.") - self.refresh_btn.setEnabled(True) - self.refresh_btn.setText("๐Ÿ”„ Refresh") + # Use centralized refresh button management + self.update_refresh_button_state() def showEvent(self, event): @@ -2795,6 +2811,27 @@ class SyncPage(QWidget): self.refresh_btn.setEnabled(True) self.refresh_btn.setText("๐Ÿ”„ Refresh") + def has_active_operations(self): + """Check if any sync or download operations are currently active""" + has_downloads = bool(self.active_download_processes) + has_individual_syncs = bool(self.active_sync_workers) + has_sequential_sync = self.is_sequential_syncing + + print(f"DEBUG: Active operations check - downloads: {has_downloads}, individual syncs: {has_individual_syncs}, sequential: {has_sequential_sync}") + return has_downloads or has_individual_syncs or has_sequential_sync + + def update_refresh_button_state(self): + """Update refresh button state based on active operations""" + if self.has_active_operations(): + if self.is_sequential_syncing: + self.disable_refresh_button("Sequential Sync") + elif self.active_sync_workers: + self.disable_refresh_button("Sync") + elif self.active_download_processes: + self.disable_refresh_button("Download") + else: + self.enable_refresh_button() + def load_initial_playlists(self): """Load initial playlist data (placeholder or real)""" if self.spotify_client and self.spotify_client.is_authenticated():