diff --git a/logs/app.log b/logs/app.log index 295e72ea..b2fad81f 100644 --- a/logs/app.log +++ b/logs/app.log @@ -6025,3 +6025,395 @@ 2025-07-10 09:10:40 - newmusic.soulseek_client - INFO - search:288 - Found 417 new results (total: 417) at 15.0s 2025-07-10 09:10:40 - newmusic.soulseek_client - INFO - search:298 - Early termination: Found 417 results, stopping search 2025-07-10 09:10:40 - newmusic.soulseek_client - INFO - search:309 - Search completed. Found 417 total results for query: virtual mage +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - download:325 - Attempting to download: FLACs\by genre\synthwave\Virtual Mage\Virtual Mage - Aether WEB (2020)\01 - Aether.flac from Ultravod (size: 22183233) +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - download:338 - Using web interface API format: [{'filename': 'FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac', 'size': 22183233, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - download:342 - Trying web interface endpoint: transfers/downloads/Ultravod +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/Ultravod +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:13:24 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: [{'filename': 'FLACs\\by genre\\synthwave\\Virtual Mage\\Virtual Mage - Aether WEB (2020)\\01 - Aether.flac', 'size': 22183233, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:13:25 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 201 +2025-07-10 09:13:25 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: ... +2025-07-10 09:13:25 - newmusic.soulseek_client - INFO - download:347 - [SUCCESS] Started download: FLACs\by genre\synthwave\Virtual Mage\Virtual Mage - Aether WEB (2020)\01 - Aether.flac from Ultravod +2025-07-10 09:13:46 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 09:13:46 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 09:13:46 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 09:13:47 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 09:13:47 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 09:13:47 - newmusic.soulseek_client - INFO - _setup_client:87 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 09:13:48 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 09:13:48 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 09:13:48 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 09:13:51 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 09:13:52 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 09:13:53 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 09:13:54 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 09:14:00 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 09:14:01 - newmusic.main - INFO - change_page:139 - Changed to page: sync +2025-07-10 09:14:01 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 09:14:04 - newmusic.soulseek_client - INFO - search:243 - Starting search for: 'virtual mage' +2025-07-10 09:14:04 - newmusic.soulseek_client - DEBUG - search:253 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:14:04 - newmusic.soulseek_client - DEBUG - search:254 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:14:04 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:14:04 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:04 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: {"fileCount":0,"id":"07ae51c1-45e5-4cad-98f3-de0a0753033d","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-10T16:14:05.1586969Z","state":"InProgress","token":20}... +2025-07-10 09:14:05 - newmusic.soulseek_client - INFO - search:267 - Search initiated with ID: 07ae51c1-45e5-4cad-98f3-de0a0753033d +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:05 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:07 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 09:14:07 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:07 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:07 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:07 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:07 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 09:14:09 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 09:14:09 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:09 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:09 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:09 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:11 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 09:14:11 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:11 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:11 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:11 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:13 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 09:14:13 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:13 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:13 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:13 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:14 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 09:14:14 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:14 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:15 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:15 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:16 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 09:14:16 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:16 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:17 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:17 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:18 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 09:14:18 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:18 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:18 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:18 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:20 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 09:14:20 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:20 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:20 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:20 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:22 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 09:14:22 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:22 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:22 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:22 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:24 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 09:14:24 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:24 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:24 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:24 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:26 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 09:14:26 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:26 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:26 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:26 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:27 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 13/20) - elapsed: 18.0s +2025-07-10 09:14:27 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:27 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:28 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:28 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:29 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 14/20) - elapsed: 19.5s +2025-07-10 09:14:29 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:29 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:30 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:30 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:31 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 15/20) - elapsed: 21.0s +2025-07-10 09:14:31 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:31 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:31 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:31 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:33 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 16/20) - elapsed: 22.5s +2025-07-10 09:14:33 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:33 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:33 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:33 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 17/20) - elapsed: 24.0s +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/07ae51c1-45e5-4cad-98f3-de0a0753033d/responses +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: [{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@kflrr\\World of Darkness\\Mage\\Charsheets\\virtual adepts c sheet.pdf","size":119030,"isLocked":false},{"code":1,"extension":"","filename":"@@kflrr\\World of Darkness\\Mage\\Mage - The Ascension\\WW4060 MTA - Tradition Book - Virtual Adepts (1e).pdf","size":33530594,"isLocked":false},{"code":1,"extension":"","filename":"@@kflrr\\World of Darkness\\Mage\\Mage - The Ascension\\WW4660 MTA - Tradition Book - Virtual Adepts (Revised).pd... +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:208 - Processing 24 user responses +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Letham has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User RuuqoHoosk has 346 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User KindaRatchet has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User buk4 has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User zeroscan has 2 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Ultravod has 9 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User HomotopicCensorship has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User aajzugikamlzcr has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Satani-Vitales has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User belthane has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User leonardoclk has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User soulshookt has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Dax_VR has 10 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ruszok has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User wonko1987 has 2 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User thinkibettergo has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ofoijacussa has 0 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User FixxAlish has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User koalabeer has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User nightmare_dronemk12 has 3 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Kaya-Sem has 1 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User exsanguinidraculae has 2 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Shooby has 6 files +2025-07-10 09:14:35 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User raspberry2 has 10 files +2025-07-10 09:14:35 - newmusic.soulseek_client - INFO - search:288 - Found 418 new results (total: 418) at 24.0s +2025-07-10 09:14:35 - newmusic.soulseek_client - INFO - search:298 - Early termination: Found 418 results, stopping search +2025-07-10 09:14:35 - newmusic.soulseek_client - INFO - search:309 - Search completed. Found 418 total results for query: virtual mage +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - download:325 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - download:338 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - download:342 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:21:38 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:32:35 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 09:32:35 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 09:32:35 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 09:32:35 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 09:32:35 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 09:32:35 - newmusic.soulseek_client - INFO - _setup_client:87 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 09:32:36 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 09:32:36 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 09:32:36 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 09:32:37 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 09:32:39 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 09:32:40 - newmusic.soulseek_client - INFO - search:243 - Starting search for: 'virtual mage' +2025-07-10 09:32:40 - newmusic.soulseek_client - DEBUG - search:253 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:32:40 - newmusic.soulseek_client - DEBUG - search:254 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:32:40 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:32:40 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:40 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:32:40 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: {"fileCount":0,"id":"0dd99a04-8c30-4b0f-afac-735f9eee2b3c","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-10T16:32:41.0434563Z","state":"InProgress","token":26}... +2025-07-10 09:32:41 - newmusic.soulseek_client - INFO - search:267 - Search initiated with ID: 0dd99a04-8c30-4b0f-afac-735f9eee2b3c +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:41 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:42 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 09:32:43 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 09:32:43 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:43 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:43 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:43 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:43 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 09:32:44 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 09:32:44 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:44 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:45 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:45 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:46 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 09:32:46 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:46 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:47 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:47 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:48 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 09:32:48 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:48 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:49 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:49 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:49 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 09:32:50 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 09:32:50 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:50 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:50 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:50 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:52 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 09:32:52 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:52 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:52 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:52 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:54 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 09:32:54 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:54 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:54 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:54 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:56 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 09:32:56 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:56 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:56 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:56 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:32:58 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 09:32:58 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:32:58 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:32:58 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 09:32:58 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:32:58 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:33:00 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 09:33:00 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:33:00 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:33:00 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:33:00 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:33:01 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 12/20) - elapsed: 16.5s +2025-07-10 09:33:01 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/0dd99a04-8c30-4b0f-afac-735f9eee2b3c/responses +2025-07-10 09:33:01 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: [{"fileCount":1,"files":[{"bitRate":128,"code":1,"extension":"","filename":"Shared\\Virtual Mage\\Refraction 1191940288\\Virtual Mage - Virtual Mage.mp3","isVariableBitRate":false,"length":154,"size":2476160,"isLocked":false}],"hasFreeUploadSlot":true,"lockedFileCount":0,"lockedFiles":[],"queueLength":17,"token":26,"uploadSpeed":518299,"username":"KindaRatchet"},{"fileCount":3,"files":[{"code":1,"extension":"","filename":"@@fedfm\\RPGs\\oldworldofdarkness\\Mage the Ascension\\Tradition Book - Vi... +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:208 - Processing 24 user responses +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User KindaRatchet has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User nightmare_dronemk12 has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User raspberry2 has 10 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User koalabeer has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Kaya-Sem has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User buk4 has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User zeroscan has 2 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Dax_VR has 10 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User HomotopicCensorship has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Ultravod has 9 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User exsanguinidraculae has 2 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Letham has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User soulshookt has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User belthane has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User aajzugikamlzcr has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User leonardoclk has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User thinkibettergo has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User FixxAlish has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ruszok has 1 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Shooby has 6 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ofoijacussa has 0 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User RuuqoHoosk has 346 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Satani-Vitales has 3 files +2025-07-10 09:33:02 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User wonko1987 has 2 files +2025-07-10 09:33:02 - newmusic.soulseek_client - INFO - search:288 - Found 418 new results (total: 418) at 16.5s +2025-07-10 09:33:02 - newmusic.soulseek_client - INFO - search:298 - Early termination: Found 418 results, stopping search +2025-07-10 09:33:02 - newmusic.soulseek_client - INFO - search:309 - Search completed. Found 418 total results for query: virtual mage +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - download:325 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - download:338 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - download:342 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:33:06 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:33:07 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 201 +2025-07-10 09:33:07 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: ... +2025-07-10 09:33:07 - newmusic.soulseek_client - INFO - download:347 - [SUCCESS] Started download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 +2025-07-10 09:37:28 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-10 09:37:28 - newmusic.main - INFO - main:187 - Starting NewMusic application +2025-07-10 09:37:28 - newmusic.spotify_client - INFO - _setup_client:84 - Successfully authenticated with Spotify as broquethomas +2025-07-10 09:37:28 - newmusic.plex_client - INFO - _find_music_library:98 - Found music library: Music +2025-07-10 09:37:28 - newmusic.plex_client - INFO - _setup_client:84 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-10 09:37:28 - newmusic.soulseek_client - INFO - _setup_client:87 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-10 09:37:29 - newmusic.main - INFO - change_page:139 - Changed to page: dashboard +2025-07-10 09:37:29 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Aether +2025-07-10 09:37:29 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Favorite Artists +2025-07-10 09:37:32 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Brittnea +2025-07-10 09:37:33 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Baleigh +2025-07-10 09:37:33 - newmusic.main - INFO - change_page:139 - Changed to page: downloads +2025-07-10 09:37:35 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Extra Music +2025-07-10 09:37:35 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Maggi Main +2025-07-10 09:37:40 - newmusic.soulseek_client - INFO - search:243 - Starting search for: 'virtual mage' +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - search:253 - Search data: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - search:254 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/searches +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: {'searchText': 'virtual mage', 'timeout': 30000, 'filterResponses': True, 'minimumResponseFileCount': 1, 'minimumPeerUploadSpeed': 0} +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: {"fileCount":0,"id":"2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91","isComplete":false,"lockedFileCount":0,"responseCount":0,"responses":[],"searchText":"virtual mage","startedAt":"2025-07-10T16:37:40.5347491Z","state":"InProgress","token":32}... +2025-07-10 09:37:40 - newmusic.soulseek_client - INFO - search:267 - Search initiated with ID: 2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91 +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 1/20) - elapsed: 0.0s +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:40 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:41 - newmusic.spotify_client - INFO - get_user_playlists:106 - Fetching tracks for playlist: Broque Main +2025-07-10 09:37:42 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 2/20) - elapsed: 1.5s +2025-07-10 09:37:42 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:42 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:42 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:42 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:44 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 3/20) - elapsed: 3.0s +2025-07-10 09:37:44 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:44 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:44 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:44 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:46 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 4/20) - elapsed: 4.5s +2025-07-10 09:37:46 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:46 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:46 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:46 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:48 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 5/20) - elapsed: 6.0s +2025-07-10 09:37:48 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:48 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:48 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:48 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:49 - newmusic.spotify_client - INFO - get_user_playlists:113 - Retrieved 7 playlists +2025-07-10 09:37:50 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 6/20) - elapsed: 7.5s +2025-07-10 09:37:50 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:50 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:50 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:50 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:51 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 7/20) - elapsed: 9.0s +2025-07-10 09:37:51 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:51 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:52 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:52 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:53 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 8/20) - elapsed: 10.5s +2025-07-10 09:37:53 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:53 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:54 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:54 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:55 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 9/20) - elapsed: 12.0s +2025-07-10 09:37:55 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:55 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:55 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:55 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:57 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 10/20) - elapsed: 13.5s +2025-07-10 09:37:57 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:57 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:57 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:57 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: []... +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - search:275 - Polling for results (attempt 11/20) - elapsed: 15.0s +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making GET request to: http://localhost:5030/api/v0/searches/2b6b8775-6d65-4e24-bf1f-2f4a6cf44f91/responses +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 200 +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: [{"fileCount":2,"files":[{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\03 - Virtual Mage - Breaking the Dream (Lucid Dream Edit).ogg","isVariableBitRate":false,"length":256,"size":6269644,"isLocked":false},{"bitRate":160,"code":1,"extension":"","filename":"Music\\aofd3\\Mallsoft & Shopping Mall Ambience\\09 - Virtual Mage - Moondust.ogg","isVariableBitRate":false,"length":138,"size":4266916,"isLocked":false}],"hasFreeUploadSlot":true,"lockedF... +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:208 - Processing 23 user responses +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User zeroscan has 2 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User RuuqoHoosk has 346 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User buk4 has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User HomotopicCensorship has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Ultravod has 9 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User exsanguinidraculae has 2 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User belthane has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User leonardoclk has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Letham has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User thinkibettergo has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User soulshookt has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User KindaRatchet has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User FixxAlish has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User aajzugikamlzcr has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Dax_VR has 10 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User raspberry2 has 10 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User nightmare_dronemk12 has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ruszok has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User koalabeer has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User ofoijacussa has 0 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Kaya-Sem has 1 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Shooby has 6 files +2025-07-10 09:37:59 - newmusic.soulseek_client - DEBUG - _process_search_responses:213 - User Satani-Vitales has 3 files +2025-07-10 09:37:59 - newmusic.soulseek_client - INFO - search:288 - Found 416 new results (total: 416) at 15.0s +2025-07-10 09:37:59 - newmusic.soulseek_client - INFO - search:298 - Early termination: Found 416 results, stopping search +2025-07-10 09:37:59 - newmusic.soulseek_client - INFO - search:309 - Search completed. Found 416 total results for query: virtual mage +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - download:325 - Attempting to download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 (size: 8344437) +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - download:338 - Using web interface API format: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - download:342 - Trying web interface endpoint: transfers/downloads/buk4 +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - _make_request:109 - Making POST request to: http://localhost:5030/api/v0/transfers/downloads/buk4 +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - _make_request:110 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-10 09:38:06 - newmusic.soulseek_client - DEBUG - _make_request:112 - JSON payload: [{'filename': '@@bmlwc\\Soulseek Downloads\\c34wkpcv\\Relaxing Synthwave Top 105\\083 - Virtual Mage - Aether.mp3', 'size': 8344437, 'path': 'E:\\Broque Projects\\newMusic\\downloads'}] +2025-07-10 09:38:07 - newmusic.soulseek_client - DEBUG - _make_request:121 - Response status: 201 +2025-07-10 09:38:07 - newmusic.soulseek_client - DEBUG - _make_request:122 - Response text: ... +2025-07-10 09:38:07 - newmusic.soulseek_client - INFO - download:347 - [SUCCESS] Started download: @@bmlwc\Soulseek Downloads\c34wkpcv\Relaxing Synthwave Top 105\083 - Virtual Mage - Aether.mp3 from buk4 diff --git a/ui/pages/__pycache__/downloads.cpython-312.pyc b/ui/pages/__pycache__/downloads.cpython-312.pyc index c3c18fc5..3f949c30 100644 Binary files a/ui/pages/__pycache__/downloads.cpython-312.pyc and b/ui/pages/__pycache__/downloads.cpython-312.pyc differ diff --git a/ui/pages/downloads.py b/ui/pages/downloads.py index 6064ec35..38df5359 100644 --- a/ui/pages/downloads.py +++ b/ui/pages/downloads.py @@ -6,21 +6,22 @@ from PyQt6.QtCore import Qt, QThread, pyqtSignal, QTimer from PyQt6.QtGui import QFont class DownloadThread(QThread): - download_completed = pyqtSignal(str) # Download ID or success message - download_failed = pyqtSignal(str) # Error message - download_progress = pyqtSignal(str) # Progress message + download_completed = pyqtSignal(str, object) # Download ID or success message, download_item + download_failed = pyqtSignal(str, object) # Error message, download_item + download_progress = pyqtSignal(str, object) # Progress message, download_item - def __init__(self, soulseek_client, search_result): + def __init__(self, soulseek_client, search_result, download_item): super().__init__() self.soulseek_client = soulseek_client self.search_result = search_result + self.download_item = download_item self._stop_requested = False def run(self): loop = None try: import asyncio - self.download_progress.emit(f"Starting download: {self.search_result.filename}") + self.download_progress.emit(f"Starting download: {self.search_result.filename}", self.download_item) # Create a completely fresh event loop for this thread loop = asyncio.new_event_loop() @@ -31,13 +32,20 @@ class DownloadThread(QThread): if not self._stop_requested: if download_id: - self.download_completed.emit(f"Download started: {download_id}") + self.download_completed.emit(f"Download started: {download_id}", self.download_item) else: - self.download_failed.emit("Download failed to start") + self.download_failed.emit("Download failed to start", self.download_item) + + # Give signals time to be processed before thread exits + import time + time.sleep(0.1) except Exception as e: if not self._stop_requested: - self.download_failed.emit(str(e)) + self.download_failed.emit(str(e), self.download_item) + # Give error signal time to be processed + import time + time.sleep(0.1) finally: # Ensure proper cleanup if loop: @@ -1870,12 +1878,11 @@ class DownloadsPage(QWidget): ) # Create and start download thread - download_thread = DownloadThread(self.soulseek_client, search_result) - download_thread.download_item = download_item # Store reference - download_thread.download_completed.connect(lambda msg, item=download_item: self.on_download_completed(msg, item)) - download_thread.download_failed.connect(lambda msg, item=download_item: self.on_download_failed(msg, item)) - download_thread.download_progress.connect(lambda msg, item=download_item: self.on_download_progress(msg, item)) - download_thread.finished.connect(lambda: self.on_download_thread_finished(download_thread)) + download_thread = DownloadThread(self.soulseek_client, search_result, download_item) + download_thread.download_completed.connect(self.on_download_completed, Qt.ConnectionType.QueuedConnection) + download_thread.download_failed.connect(self.on_download_failed, Qt.ConnectionType.QueuedConnection) + download_thread.download_progress.connect(self.on_download_progress, Qt.ConnectionType.QueuedConnection) + download_thread.finished.connect(lambda: self.on_download_thread_finished(download_thread), Qt.ConnectionType.QueuedConnection) # Track the thread self.download_threads.append(download_thread) @@ -1883,18 +1890,10 @@ class DownloadsPage(QWidget): # Start the download download_thread.start() - # Show immediate feedback - QMessageBox.information( - self, - "Download Started", - f"Starting download: {search_result.filename}\n" - f"From user: {search_result.username}\n\n" - f"The download will be queued in slskd.\n" - f"Check the slskd web interface or Downloads page for progress." - ) + # Download started - feedback will appear in download queue except Exception as e: - QMessageBox.critical(self, "Download Error", f"Failed to start download: {str(e)}") + print(f"Failed to start download: {str(e)}") def on_download_completed(self, message, download_item): """Handle successful download start""" @@ -1910,7 +1909,7 @@ class DownloadsPage(QWidget): # Update download item status to failed download_item.status = "failed" download_item.progress = 0 - QMessageBox.critical(self, "Download Failed", f"Download failed: {error_msg}") + # Error logged to console for debugging def on_download_progress(self, message, download_item): """Handle download progress updates""" @@ -1921,9 +1920,29 @@ class DownloadsPage(QWidget): def on_download_thread_finished(self, thread): """Clean up when download thread finishes""" - if thread in self.download_threads: - self.download_threads.remove(thread) - thread.deleteLater() + try: + if thread in self.download_threads: + self.download_threads.remove(thread) + + # Disconnect all signals to prevent stale connections + try: + thread.download_completed.disconnect() + thread.download_failed.disconnect() + thread.download_progress.disconnect() + thread.finished.disconnect() + except Exception: + pass # Ignore if signals are already disconnected + + # Ensure thread is properly stopped before deletion + if thread.isRunning(): + thread.stop() + thread.wait(1000) # Wait up to 1 second + + # Use QTimer.singleShot for delayed cleanup to ensure signal processing is complete + QTimer.singleShot(100, thread.deleteLater) + + except Exception as e: + print(f"Error cleaning up finished download thread: {e}") def clear_completed_downloads(self): """Clear completed downloads from the queue""" @@ -1988,6 +2007,10 @@ class DownloadsPage(QWidget): def cleanup_all_threads(self): """Stop and cleanup all active threads""" try: + # Stop download status timer first + if hasattr(self, 'download_status_timer'): + self.download_status_timer.stop() + # Stop search thread if self.search_thread and self.search_thread.isRunning(): self.search_thread.stop() @@ -1995,6 +2018,7 @@ class DownloadsPage(QWidget): if self.search_thread.isRunning(): self.search_thread.terminate() self.search_thread.wait(1000) + self.search_thread.deleteLater() self.search_thread = None # Stop explore thread @@ -2004,6 +2028,7 @@ class DownloadsPage(QWidget): if self.explore_thread.isRunning(): self.explore_thread.terminate() self.explore_thread.wait(1000) + self.explore_thread.deleteLater() self.explore_thread = None # Stop session thread @@ -2013,17 +2038,30 @@ class DownloadsPage(QWidget): if self.session_thread.isRunning(): self.session_thread.terminate() self.session_thread.wait(1000) + self.session_thread.deleteLater() self.session_thread = None - # Stop all download threads + # Stop all download threads with proper cleanup for download_thread in self.download_threads[:]: # Copy list to avoid modification during iteration - if download_thread.isRunning(): - download_thread.stop() - download_thread.wait(2000) # Wait up to 2 seconds + try: + # Disconnect signals first + try: + download_thread.download_completed.disconnect() + download_thread.download_failed.disconnect() + download_thread.download_progress.disconnect() + download_thread.finished.disconnect() + except Exception: + pass # Ignore if signals are already disconnected + if download_thread.isRunning(): - download_thread.terminate() - download_thread.wait(1000) - download_thread.deleteLater() + download_thread.stop() + download_thread.wait(2000) # Wait up to 2 seconds + if download_thread.isRunning(): + download_thread.terminate() + download_thread.wait(1000) + download_thread.deleteLater() + except Exception as e: + print(f"Error cleaning up download thread: {e}") self.download_threads.clear() @@ -2035,6 +2073,13 @@ class DownloadsPage(QWidget): self.cleanup_all_threads() super().closeEvent(event) + def __del__(self): + """Destructor - ensure cleanup happens even if closeEvent isn't called""" + try: + self.cleanup_all_threads() + except: + pass # Ignore errors during destruction + def create_controls_section(self): section = QWidget() layout = QVBoxLayout(section)