diff --git a/logs/app.log b/logs/app.log index eacffb09..5028f2b8 100644 --- a/logs/app.log +++ b/logs/app.log @@ -176950,3 +176950,275 @@ 2025-07-27 22:02:58 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE 2025-07-27 22:03:02 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) 2025-07-27 22:03:07 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:04:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:04:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:06:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:06:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:08:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:08:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:10:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:10:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:12:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:12:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:12:08 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:14:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:14:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:16:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:16:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:16:07 - newmusic.main - INFO - change_page:233 - Changed to page: sync +2025-07-27 22:16:08 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 9 playlist metadata (first batch) +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:18:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:18:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:20:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:20:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:22:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:22:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:23:52 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 9 playlist metadata (first batch) +2025-07-27 22:23:53 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 22:23:54 - newmusic.main - INFO - change_page:233 - Changed to page: sync +2025-07-27 22:23:55 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 22:23:55 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 22:23:58 - newmusic.main - INFO - change_page:233 - Changed to page: dashboard +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:24:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:24:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:25:49 - newmusic.main - INFO - change_page:233 - Changed to page: sync +2025-07-27 22:25:52 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 22:26:03 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:26:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:26:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:26:09 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 22:26:23 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 22:26:24 - newmusic.main - INFO - change_page:233 - Changed to page: downloads +2025-07-27 22:26:31 - newmusic.main - INFO - change_page:233 - Changed to page: artists +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:28:04 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:28:04 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:28:38 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 22:29:06 - newmusic.main - INFO - closeEvent:246 - Closing application... +2025-07-27 22:29:06 - newmusic.main - INFO - closeEvent:251 - Cleaning up Downloads page threads... +2025-07-27 22:29:06 - newmusic.main - INFO - closeEvent:256 - Stopping status monitoring thread... +2025-07-27 22:29:09 - newmusic.main - INFO - closeEvent:261 - Stopping search maintenance timer... +2025-07-27 22:29:09 - newmusic.main - INFO - closeEvent:266 - Closing Soulseek client... +2025-07-27 22:29:09 - newmusic.main - INFO - closeEvent:272 - Application closed successfully +2025-07-27 22:40:41 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 22:40:41 - newmusic.main - INFO - main:286 - Starting NewMusic application +2025-07-27 22:40:41 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:40:41 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:40:41 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:40:42 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:40:42 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:40:42 - newmusic.main - INFO - change_page:233 - Changed to page: dashboard +2025-07-27 22:40:42 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 22:40:42 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 22:40:42 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 22:40:43 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:40:43 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:42:21 - newmusic.main - INFO - change_page:233 - Changed to page: settings +2025-07-27 22:42:42 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:42:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:42:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:42:43 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:42:43 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:42:43 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:42:43 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:44:42 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:44:42 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:44:42 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:44:43 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:44:43 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:44:43 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:44:43 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:44:44 - newmusic.main - INFO - closeEvent:246 - Closing application... +2025-07-27 22:44:44 - newmusic.main - INFO - closeEvent:251 - Cleaning up Downloads page threads... +2025-07-27 22:44:44 - newmusic.main - INFO - closeEvent:256 - Stopping status monitoring thread... +2025-07-27 22:44:46 - newmusic.main - INFO - closeEvent:261 - Stopping search maintenance timer... +2025-07-27 22:44:46 - newmusic.main - INFO - closeEvent:266 - Closing Soulseek client... +2025-07-27 22:44:46 - newmusic.main - INFO - closeEvent:272 - Application closed successfully +2025-07-27 22:44:49 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 22:44:49 - newmusic.main - INFO - main:314 - Starting NewMusic application +2025-07-27 22:44:49 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:44:49 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:49 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:44:49 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:44:49 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:49 - newmusic.main - INFO - change_page:261 - Changed to page: dashboard +2025-07-27 22:44:49 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 22:44:49 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 22:44:49 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 22:44:50 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:44:50 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:44:51 - newmusic.main - INFO - change_page:261 - Changed to page: settings +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: soulseek.download_path = E:/Broque Projects/newMusic/downloads +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:237 - Soulseek settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:240 - Soulseek client reinitialized successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: soulseek.transfer_path = E:/Broque Projects/newMusic/Transfer +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:237 - Soulseek settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:240 - Soulseek client reinitialized successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: spotify.client_id = 512b25bd9e0d4ecd82140f6d1ce0c8e6 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:218 - Spotify settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:221 - Spotify client reinitialized successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: spotify.client_secret = c3844dcbedbc4e09a6242a14b2e89e89 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:218 - Spotify settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:221 - Spotify client reinitialized successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: plex.base_url = http://192.168.86.36:32400 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:226 - Plex settings changed, resetting connection... +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:232 - Plex client reset successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: plex.token = a9hTgvasV1aJMLSdoBkr +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:226 - Plex settings changed, resetting connection... +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:232 - Plex client reset successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: soulseek.slskd_url = http://localhost:5030 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:237 - Soulseek settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:240 - Soulseek client reinitialized successfully +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:214 - Settings changed: soulseek.api_key = 1234567891234567 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:237 - Soulseek settings changed, reinitializing client... +2025-07-27 22:44:53 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:44:53 - newmusic.main - INFO - on_settings_changed:240 - Soulseek client reinitialized successfully +2025-07-27 22:44:56 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:44:56 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:46:28 - newmusic.main - INFO - closeEvent:274 - Closing application... +2025-07-27 22:46:28 - newmusic.main - INFO - closeEvent:279 - Cleaning up Downloads page threads... +2025-07-27 22:46:28 - newmusic.main - INFO - closeEvent:284 - Stopping status monitoring thread... +2025-07-27 22:46:29 - newmusic.main - INFO - closeEvent:289 - Stopping search maintenance timer... +2025-07-27 22:46:29 - newmusic.main - INFO - closeEvent:294 - Closing Soulseek client... +2025-07-27 22:46:29 - newmusic.main - INFO - closeEvent:300 - Application closed successfully +2025-07-27 22:46:32 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 22:46:32 - newmusic.main - INFO - main:306 - Starting NewMusic application +2025-07-27 22:46:32 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:46:32 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:32 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:46:32 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:46:32 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:32 - newmusic.main - INFO - change_page:253 - Changed to page: dashboard +2025-07-27 22:46:32 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 22:46:32 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 22:46:32 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 22:46:32 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:46:32 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:46:34 - newmusic.main - INFO - change_page:253 - Changed to page: settings +2025-07-27 22:46:39 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:39 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:39 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:46:39 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:46:39 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:39 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:46:41 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:46:41 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:47:29 - newmusic - INFO - setup_logging:57 - Logging initialized with level: DEBUG +2025-07-27 22:47:29 - newmusic.main - INFO - main:306 - Starting NewMusic application +2025-07-27 22:47:29 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:47:29 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:29 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:47:30 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:47:30 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:30 - newmusic.main - INFO - change_page:253 - Changed to page: dashboard +2025-07-27 22:47:30 - newmusic.main - INFO - setup_media_player_connections:205 - Media player connections established between sidebar and downloads page +2025-07-27 22:47:30 - newmusic.main - INFO - setup_settings_connections:210 - Settings change connections established +2025-07-27 22:47:30 - newmusic.main - INFO - setup_search_maintenance:86 - Search maintenance timer started (every 2 minutes, keeps 200 most recent searches) +2025-07-27 22:47:30 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:47:30 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:47:31 - newmusic.main - INFO - change_page:253 - Changed to page: settings +2025-07-27 22:47:41 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:41 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:41 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:47:41 - newmusic.spotify_client - INFO - _setup_client:179 - Spotify client initialized (user info will be fetched when needed) +2025-07-27 22:47:41 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:41 - newmusic.soulseek_client - INFO - _setup_client:220 - Soulseek client configured with slskd at http://localhost:5030 +2025-07-27 22:47:42 - newmusic.plex_client - INFO - _find_music_library:127 - Found music library: Music +2025-07-27 22:47:42 - newmusic.plex_client - INFO - _setup_client:113 - Successfully connected to Plex server: PLEX-MACHINE +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:49:30 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:49:30 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:50:29 - newmusic.main - INFO - change_page:253 - Changed to page: artists +2025-07-27 22:50:29 - newmusic.main - INFO - change_page:253 - Changed to page: downloads +2025-07-27 22:50:30 - newmusic.main - INFO - change_page:253 - Changed to page: sync +2025-07-27 22:50:30 - newmusic.spotify_client - INFO - _ensure_user_id:195 - Successfully authenticated with Spotify as broquethomas +2025-07-27 22:50:30 - newmusic.spotify_client - INFO - get_user_playlists_metadata_only:256 - Retrieved 8 playlist metadata (first batch) +2025-07-27 22:50:30 - newmusic.main - INFO - change_page:253 - Changed to page: dashboard +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:51:30 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:51:30 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - get_all_searches:952 - Getting all searches with endpoint: searches +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - _make_request:242 - Making GET request to: http://localhost:5030/api/v0/searches +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - _make_request:243 - Headers: {'Content-Type': 'application/json', 'X-API-Key': '1234567891234567'} +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - _make_request:254 - Response status: 200 +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - _make_request:255 - Response text: [{"endedAt":"2025-07-27T21:28:19.7264233Z","fileCount":13,"id":"41b335b7-58a3-4201-8506-22e0954564eb","isComplete":true,"lockedFileCount":0,"responseCount":12,"responses":[],"searchText":"Tommy Cash Baba Yaga","startedAt":"2025-07-27T21:28:02.1709869Z","state":"Completed, TimedOut","token":80},{"endedAt":"2025-07-27T21:28:20.4645342Z","fileCount":5,"id":"7e66f9a9-00ac-451b-a199-5f6a7f18930c","isComplete":true,"lockedFileCount":0,"responseCount":5,"responses":[],"searchText":"Tommy Cash SugaSuga"... +2025-07-27 22:53:30 - newmusic.soulseek_client - INFO - get_all_searches:957 - Retrieved 50 searches from slskd +2025-07-27 22:53:30 - newmusic.soulseek_client - DEBUG - maintain_search_history:1058 - Search count (50) within limit (200), no maintenance needed +2025-07-27 22:54:21 - newmusic.main - INFO - change_page:253 - Changed to page: settings diff --git a/main.py b/main.py index fb775479..e84f0898 100644 --- a/main.py +++ b/main.py @@ -211,7 +211,27 @@ class MainWindow(QMainWindow): def on_settings_changed(self, key: str, value: str): """Handle settings changes and broadcast to relevant pages""" - logger.info(f"Settings changed: {key} = {value}") + # Reinitialize service clients when their settings change + if key.startswith('spotify.'): + try: + self.spotify_client._setup_client() + except Exception as e: + logger.error("Failed to reinitialize Spotify client") + + elif key.startswith('plex.'): + try: + # Reset Plex connection to force reconnection with new settings + self.plex_client.server = None + self.plex_client.music_library = None + self.plex_client._connection_attempted = False + except Exception as e: + logger.error("Failed to reset Plex client") + + elif key.startswith('soulseek.'): + try: + self.soulseek_client._setup_client() + except Exception as e: + logger.error("Failed to reinitialize Soulseek client") # Broadcast to all pages that need to know about path changes if hasattr(self.downloads_page, 'on_paths_updated'): diff --git a/ui/pages/__pycache__/settings.cpython-312.pyc b/ui/pages/__pycache__/settings.cpython-312.pyc index 46460427..d1670259 100644 Binary files a/ui/pages/__pycache__/settings.cpython-312.pyc and b/ui/pages/__pycache__/settings.cpython-312.pyc differ diff --git a/ui/pages/settings.py b/ui/pages/settings.py index ad21146c..9a23d8e9 100644 --- a/ui/pages/settings.py +++ b/ui/pages/settings.py @@ -411,6 +411,14 @@ class SettingsPage(QWidget): self.settings_changed.emit('soulseek.download_path', self.download_path_input.text()) self.settings_changed.emit('soulseek.transfer_path', self.transfer_path_input.text()) + # Emit signals for service configuration changes to reinitialize clients + self.settings_changed.emit('spotify.client_id', self.client_id_input.text()) + self.settings_changed.emit('spotify.client_secret', self.client_secret_input.text()) + self.settings_changed.emit('plex.base_url', self.plex_url_input.text()) + self.settings_changed.emit('plex.token', self.plex_token_input.text()) + self.settings_changed.emit('soulseek.slskd_url', self.slskd_url_input.text()) + self.settings_changed.emit('soulseek.api_key', self.api_key_input.text()) + # Show success message QMessageBox.information(self, "Success", "Settings saved successfully!") @@ -752,13 +760,17 @@ class SettingsPage(QWidget): button.setText("Copied!") button.setEnabled(False) - # Reset button after 1 second - QTimer.singleShot(1000, lambda: self.reset_copy_button(button, original_text)) - - def reset_copy_button(self, button, original_text): - """Reset copy button to original state""" - button.setText(original_text) - button.setEnabled(True) + # Reset button after 1 second with safe reference check + def safe_reset(): + try: + if button and not button.isHidden(): # Check if button still exists and is valid + button.setText(original_text) + button.setEnabled(True) + except RuntimeError: + # Button was deleted, ignore silently + pass + + QTimer.singleShot(1000, safe_reset) def browse_download_path(self): """Open a directory dialog to select download path"""