pull/2/head
Broque Thomas 10 months ago
parent 59fc1a9d00
commit 7bfb38e16c

@ -19415,3 +19415,179 @@
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)
2025-07-25 09:36:37 - newmusic.main - INFO - closeEvent:176 - Closing application...
2025-07-25 09:36:37 - newmusic.main - INFO - closeEvent:181 - Cleaning up Downloads page threads...
2025-07-25 09:36:37 - newmusic.main - INFO - closeEvent:186 - Stopping status monitoring thread...
2025-07-25 09:36:37 - newmusic.main - INFO - closeEvent:191 - Closing Soulseek client...
2025-07-25 09:36:37 - newmusic.main - INFO - closeEvent:197 - Application closed successfully
2025-07-25 09:36:43 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG
2025-07-25 09:36:43 - newmusic.main - INFO - main:211 - Starting NewMusic application
2025-07-25 09:36:43 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed)
2025-07-25 09:36:43 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030
2025-07-25 09:36:43 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed)
2025-07-25 09:36:43 - newmusic.main - INFO - change_page:163 - Changed to page: dashboard
2025-07-25 09:36:43 - newmusic.main - INFO - setup_media_player_connections:150 - Media player connections established between sidebar and downloads page
2025-07-25 09:36:44 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music
2025-07-25 09:36:44 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE
2025-07-25 09:37:00 - newmusic.main - INFO - change_page:163 - Changed to page: sync
2025-07-25 09:37:00 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas
2025-07-25 09:37:00 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch)
2025-07-25 09:37:08 - newmusic.sync_service - INFO - sync_playlist:94 - Starting sync for playlist: Failed test
2025-07-25 09:37:08 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:08 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:08 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage signalsfromspace'
2025-07-25 09:37:08 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signalsfromspace'
2025-07-25 09:37:09 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:09 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:09 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage signals from space'
2025-07-25 09:37:10 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signals from space'
2025-07-25 09:37:11 - 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:37:11 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'signalsfromspace'
2025-07-25 09:37:11 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signalsfromspace'
2025-07-25 09:37:12 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'signals from space'
2025-07-25 09:37:13 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'signals from space'
2025-07-25 09:37:13 - newmusic.sync_service - DEBUG - _find_track_in_plex:290 - No Plex candidates found for 'Signals from Space'
2025-07-25 09:37:13 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:13 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:13 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage zztlyksyrnqryss'
2025-07-25 09:37:14 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'zztlyksyrnqryss'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates.
2025-07-25 09:37:15 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early.
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Zztlyk Syrn Qryss' (ratingKey: 539056)
2025-07-25 09:37:15 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Zztlyk Syrn Qryss'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates.
2025-07-25 09:37:15 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early.
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Jyxkra' (ratingKey: 539057)
2025-07-25 09:37:15 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Jyxkra'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage ktalvysh'
2025-07-25 09:37:15 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'ktalvysh'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates.
2025-07-25 09:37:16 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early.
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Ktal Vysh' (ratingKey: 539058)
2025-07-25 09:37:16 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Ktal Vysh'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates.
2025-07-25 09:37:16 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early.
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Fluxx' (ratingKey: 539059)
2025-07-25 09:37:16 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Fluxx'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:16 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'virtual mage vwrntlyx'
2025-07-25 09:37:17 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'vwrntlyx'
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'virtual mage'
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 1 candidates.
2025-07-25 09:37:18 - newmusic.plex_client - INFO - search_tracks:344 - Found 1 candidates in Stage 1. Exiting early.
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:350 - Stored original track reference for 'Vwrn Tlyx' (ratingKey: 539060)
2025-07-25 09:37:18 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'Vwrn Tlyx'
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'kendrick lamar'
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'kendrick lamar superbowllixhalftimeshowlive'
2025-07-25 09:37:18 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive'
2025-07-25 09:37:19 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'kendrick lamar'
2025-07-25 09:37:19 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:19 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'kendrick lamar super bowl lix halftime show'
2025-07-25 09:37:20 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show'
2025-07-25 09:37:21 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'nfl'
2025-07-25 09:37:21 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'nfl superbowllixhalftimeshowlive'
2025-07-25 09:37:21 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive'
2025-07-25 09:37:22 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'nfl'
2025-07-25 09:37:22 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'nfl super bowl lix halftime show'
2025-07-25 09:37:23 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show'
2025-07-25 09:37:23 - 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:37:23 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'superbowllixhalftimeshowlive'
2025-07-25 09:37:24 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'superbowllixhalftimeshowlive'
2025-07-25 09:37:25 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'super bowl lix halftime show'
2025-07-25 09:37:25 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'super bowl lix halftime show'
2025-07-25 09:37:26 - newmusic.sync_service - DEBUG - _find_track_in_plex:290 - No Plex candidates found for 'Super Bowl LIX Halftime Show - Live'
2025-07-25 09:37:26 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno'
2025-07-25 09:37:26 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:26 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno 1800'
2025-07-25 09:37:27 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for '1800'
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1800 Satan' (ratingKey: 488568)
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1800' (ratingKey: 195875)
2025-07-25 09:37:28 - newmusic.plex_client - INFO - search_tracks:390 - Found 2 total potential matches for '1800' by 'bbno' after all stages.
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno'
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno 1-800'
2025-07-25 09:37:28 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for '1-800'
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-DIRTY' (ratingKey: 342942)
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800MYLOVE' (ratingKey: 446003)
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-273-8255' (ratingKey: 487383)
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-273-8255' (ratingKey: 487532)
2025-07-25 09:37:29 - 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:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800-SMD' (ratingKey: 330399)
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for '1-800 Nothing' (ratingKey: 327017)
2025-07-25 09:37:29 - newmusic.plex_client - INFO - search_tracks:390 - Found 7 total potential matches for '1-800' by 'bbno' after all stages.
2025-07-25 09:37:29 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for '1-800'
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno'
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:29 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno marypoppins'
2025-07-25 09:37:30 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'marypoppins'
2025-07-25 09:37:31 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno'
2025-07-25 09:37:31 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:31 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno mary poppins'
2025-07-25 09:37:31 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'mary poppins'
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Mary Poppins' (ratingKey: 325667)
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Introducing Mary Poppins' (ratingKey: 143885)
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'A Cover Is Not the Book' (ratingKey: 143886)
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Nowhere to Go But Up' (ratingKey: 143892)
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Theme from Mary Poppins Returns' (ratingKey: 143894)
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Mary Poppins Arrives' (ratingKey: 143896)
2025-07-25 09:37:32 - newmusic.plex_client - INFO - search_tracks:390 - Found 6 total potential matches for 'mary poppins' by 'bbno' after all stages.
2025-07-25 09:37:32 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'mary poppins'
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:332 - Stage 1: Searching for artist 'bbno'
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:340 - Stage 1 found 0 candidates.
2025-07-25 09:37:32 - newmusic.plex_client - DEBUG - search_tracks:357 - Stage 2: Performing keyword search for 'bbno boom'
2025-07-25 09:37:33 - newmusic.plex_client - DEBUG - search_tracks:375 - Stage 3: Performing title-only search for 'boom'
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'BOOM' (ratingKey: 258903)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'BOOM (Rap remix)' (ratingKey: 258943)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Boom (Ricky Pedretti Remix)' (ratingKey: 285354)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Boom (Original Mix)' (ratingKey: 285339)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'Here Comes The Boom (Original Mix)' (ratingKey: 285349)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit' (ratingKey: 291146)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous' (ratingKey: 291148)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'née-nah' (ratingKey: 291149)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'just like me' (ratingKey: 291153)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit (nightcore version)' (ratingKey: 291130)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous (nightcore version)' (ratingKey: 291132)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'née-nah (nightcore version)' (ratingKey: 291133)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'just like me (nightcore version)' (ratingKey: 291137)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'pop ur shit (slowed down)' (ratingKey: 291098)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - search_tracks:385 - Stored original track reference for 'dangerous (slowed down)' (ratingKey: 291100)
2025-07-25 09:37:34 - newmusic.plex_client - INFO - search_tracks:390 - Found 15 total potential matches for 'boom' by 'bbno' after all stages.
2025-07-25 09:37:34 - newmusic.sync_service - DEBUG - _find_track_in_plex:263 - Early confident match found for 'boom'
2025-07-25 09:37:34 - newmusic.sync_service - INFO - sync_playlist:141 - Found 8 matches out of 10 tracks
2025-07-25 09:37:34 - newmusic.sync_service - INFO - sync_playlist:173 - Creating playlist with 8 matched tracks
2025-07-25 09:37:34 - newmusic.plex_client - INFO - update_playlist:277 - Playlist 'Failed test' not found, creating new one
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Zztlyk Syrn Qryss by Virtual Mage (ratingKey: 539056)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Jyxkra by Virtual Mage (ratingKey: 539057)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Ktal Vysh by Virtual Mage (ratingKey: 539058)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Fluxx by Virtual Mage (ratingKey: 539059)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Vwrn Tlyx by Virtual Mage (ratingKey: 539060)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: 1800 by Snoop Dogg (ratingKey: 195875)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: Mary Poppins by Elènne (ratingKey: 325667)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:198 - Using stored track reference for: BOOM by $ebu (ratingKey: 258903)
2025-07-25 09:37:34 - 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:37:34 - newmusic.plex_client - INFO - create_playlist:214 - Final validation: 8 valid tracks with ratingKeys
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:218 - About to create playlist with tracks:
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 1: Zztlyk Syrn Qryss (type: <class 'plexapi.audio.Track'>, ratingKey: 539056)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 2: Jyxkra (type: <class 'plexapi.audio.Track'>, ratingKey: 539057)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 3: Ktal Vysh (type: <class 'plexapi.audio.Track'>, ratingKey: 539058)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 4: Fluxx (type: <class 'plexapi.audio.Track'>, ratingKey: 539059)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 5: Vwrn Tlyx (type: <class 'plexapi.audio.Track'>, ratingKey: 539060)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 6: 1800 (type: <class 'plexapi.audio.Track'>, ratingKey: 195875)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 7: Mary Poppins (type: <class 'plexapi.audio.Track'>, ratingKey: 325667)
2025-07-25 09:37:34 - newmusic.plex_client - DEBUG - create_playlist:220 - Track 8: BOOM (type: <class 'plexapi.audio.Track'>, ratingKey: 258903)
2025-07-25 09:37:34 - newmusic.plex_client - ERROR - create_playlist:227 - CreatePlaylist failed: Must include items to add when creating new playlist.
2025-07-25 09:37:34 - newmusic.plex_client - INFO - create_playlist:231 - Created playlist 'Failed test' with 8 tracks (using items parameter)
2025-07-25 09:37:34 - newmusic.sync_service - INFO - sync_playlist:196 - Sync completed: 80.0% success rate
2025-07-25 09:37:48 - newmusic.main - INFO - closeEvent:176 - Closing application...
2025-07-25 09:37:48 - newmusic.main - INFO - closeEvent:181 - Cleaning up Downloads page threads...
2025-07-25 09:37:48 - newmusic.main - INFO - closeEvent:186 - Stopping status monitoring thread...
2025-07-25 09:37:50 - newmusic.main - INFO - closeEvent:191 - Closing Soulseek client...
2025-07-25 09:37:50 - newmusic.main - INFO - closeEvent:197 - Application closed successfully

@ -1952,7 +1952,8 @@ class SyncPage(QWidget):
self.track_cache = {} # playlist_id -> tracks
# Sync worker management
self.active_sync_workers = {} # playlist_id -> SyncWorker
self.active_sync_workers = {} # playlist_id -> SyncWorker (for individual modal syncs)
self.sequential_sync_worker = None # Current sequential sync worker
# Selection tracking
self.selected_playlists = set() # Set of selected playlist IDs
@ -2024,6 +2025,46 @@ class SyncPage(QWidget):
return True
def start_sequential_playlist_sync(self, playlist):
"""Start sync for a playlist as part of sequential sync (separate from individual syncs)"""
# Create sync service if not available
if not hasattr(self, 'sync_service'):
from services.sync_service import PlaylistSyncService
self.sync_service = PlaylistSyncService(
self.spotify_client,
self.plex_client,
self.soulseek_client
)
# Create sync worker for sequential sync
sync_worker = SyncWorker(
playlist=playlist,
sync_service=self.sync_service
)
# Connect worker signals for sequential sync
sync_worker.signals.finished.connect(lambda result: self.on_sequential_sync_finished(playlist.id, result))
sync_worker.signals.error.connect(lambda error: self.on_sequential_sync_error(playlist.id, error))
sync_worker.signals.progress.connect(lambda progress: self.on_sync_progress(playlist.id, progress))
# Store the sequential sync worker
self.sequential_sync_worker = sync_worker
# Start the worker
self.thread_pool.start(sync_worker)
# Update playlist item status
playlist_item = self.find_playlist_item_widget(playlist.id)
if playlist_item:
playlist_item.is_syncing = True
playlist_item.update_sync_status(len(playlist.tracks), 0, 0)
# Log start
if hasattr(self, 'log_area'):
self.log_area.append(f"🔄 Starting sequential sync for playlist: {playlist.name}")
return True
def toggle_playlist_selection(self, playlist_id):
"""Toggle selection state of a playlist"""
if playlist_id in self.selected_playlists:
@ -2040,15 +2081,15 @@ class SyncPage(QWidget):
"""Update the selection info label and button state"""
selected_count = len(self.selected_playlists)
print(f"Updating UI with {selected_count} selected playlists, sequential syncing: {self.is_sequential_syncing}")
print(f"Updating UI with {selected_count} selected playlists, sequential syncing: {self.is_sequential_syncing}, individual syncs: {len(self.active_sync_workers)}")
if selected_count == 0:
self.selection_info.setText("Select playlists to sync")
self.start_sync_btn.setEnabled(False)
print("Button disabled - no selection")
elif self.is_sequential_syncing:
# Don't change button state during sequential sync
print(f"Sequential sync in progress - keeping button as is")
elif self.has_active_operations():
# Don't change button state during any active operations
print(f"Active operations in progress - keeping button as is")
elif selected_count == 1:
self.selection_info.setText("1 playlist selected")
self.start_sync_btn.setEnabled(True)
@ -2063,6 +2104,11 @@ class SyncPage(QWidget):
if not self.selected_playlists or self.is_sequential_syncing:
return
# Don't allow sequential sync if individual syncs are already running
if self.active_sync_workers:
print(f"DEBUG: Cannot start sequential sync - {len(self.active_sync_workers)} individual syncs are running")
return
# Get selected playlist objects
selected_playlist_objects = []
for playlist_item in self.get_all_playlist_items():
@ -2098,9 +2144,9 @@ class SyncPage(QWidget):
next_playlist = self.sequential_sync_queue.pop(0)
print(f"DEBUG: Starting sync for next playlist: {next_playlist.name}")
# Start sync for this playlist
success = self.start_playlist_sync(next_playlist)
print(f"DEBUG: start_playlist_sync returned: {success}")
# Start sync for this playlist using dedicated sequential sync method
success = self.start_sequential_playlist_sync(next_playlist)
print(f"DEBUG: start_sequential_playlist_sync returned: {success}")
if not success:
# If sync failed to start, move to next
print("DEBUG: Sync failed to start, moving to next playlist")
@ -2117,6 +2163,68 @@ class SyncPage(QWidget):
# Update refresh button state since sequential sync is complete
self.update_refresh_button_state()
def on_sequential_sync_finished(self, playlist_id, result):
"""Handle completion of individual playlist in sequential sync"""
print(f"DEBUG: Sequential sync finished for playlist {playlist_id}")
# Clear sequential sync worker
self.sequential_sync_worker = None
# Update playlist item status
playlist_item = self.find_playlist_item_widget(playlist_id)
if playlist_item:
playlist_item.is_syncing = False
playlist_item.update_sync_status(
result.total_tracks,
result.matched_tracks,
result.failed_tracks
)
# Hide status widget after completion with delay
QTimer.singleShot(3000, lambda: playlist_item.sync_status_widget.hide() if playlist_item.sync_status_widget else None)
# Update any open modals
self.update_open_modals_completion(playlist_id, result)
# Continue sequential sync to next playlist
if self.is_sequential_syncing:
print(f"DEBUG: Sequential sync continuing to next playlist")
self.process_next_in_sync_queue()
# Log completion
if hasattr(self, 'log_area'):
success_rate = result.success_rate
msg = f"✅ Sequential sync complete: {result.synced_tracks}/{result.total_tracks} tracks synced ({success_rate:.1f}%)"
if result.failed_tracks > 0:
msg += f", {result.failed_tracks} failed"
self.log_area.append(msg)
def on_sequential_sync_error(self, playlist_id, error_msg):
"""Handle error in individual playlist during sequential sync"""
print(f"DEBUG: Sequential sync error for playlist {playlist_id}: {error_msg}")
# Clear sequential sync worker
self.sequential_sync_worker = None
# Update playlist item status
playlist_item = self.find_playlist_item_widget(playlist_id)
if playlist_item:
playlist_item.is_syncing = False
if playlist_item.sync_status_widget:
playlist_item.sync_status_widget.hide()
# Update any open modals
self.update_open_modals_error(playlist_id, error_msg)
# Continue sequential sync even on error
if self.is_sequential_syncing:
print(f"DEBUG: Sequential sync continuing to next playlist despite error")
self.process_next_in_sync_queue()
# Log error
if hasattr(self, 'log_area'):
self.log_area.append(f"❌ Sequential sync failed: {error_msg}")
def get_all_playlist_items(self):
"""Get all PlaylistItem widgets from the playlist layout"""
playlist_items = []
@ -2815,7 +2923,7 @@ class SyncPage(QWidget):
"""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
has_sequential_sync = self.is_sequential_syncing or self.sequential_sync_worker is not None
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

Loading…
Cancel
Save