Commit Graph

13 Commits

Author SHA1 Message Date
V1ck3s
c8c4fd8322 fix: add HTTP Range header forwarding for iOS clients 2026-01-12 19:35:29 +01:00
bransoned
428b7f06c4 #31 (upstream) Add http context handling to tests 2026-01-12 01:30:18 +00:00
V1ck3s
5d93af6aa0 test: add comprehensive test suite for QobuzDownloadService
- Add 15 unit tests covering authentication, download logic, and configuration
- Test IsAvailableAsync with various credential combinations
- Test download flow for unsupported providers, existing files, and missing songs
- Test album background download functionality
- Test quality format configuration (FLAC, MP3, default)
- All tests passing (127 total tests)
2026-01-08 22:51:37 +01:00
V1ck3s
9245dac99e refactor: extract subsonic controller logic into specialized services
- Extract SubsonicRequestParser for HTTP parameter extraction
- Extract SubsonicResponseBuilder for XML/JSON response formatting
- Extract SubsonicModelMapper for search result parsing and merging
- Extract SubsonicProxyService for upstream Subsonic server communication
- Add comprehensive test coverage (45 tests) for all new services
- Reduce SubsonicController from 1174 to 666 lines (-43%)

All tests passing. Build succeeds with 0 errors.
2026-01-08 21:47:05 +01:00
V1ck3s
09ee618ac8 refactor: extract PathHelper to Services/Common for reusability
Moved PathHelper from DeezerDownloadService to Services/Common/ to:
- Remove awkward dependency of Qobuz on Deezer namespace
- Make path utilities reusable by all services
- Improve code organization and clarify dependencies

Updated imports in DeezerDownloadService, QobuzDownloadService,
BaseDownloadService, and DeezerDownloadServiceTests.
2026-01-08 20:00:05 +01:00
V1ck3s
ce779b3c8a refactor: reorganize Models into subdirectories by context
Split monolithic MusicModels.cs (177 lines) into separate files:
- Models/Settings/ (DeezerSettings, QobuzSettings, SubsonicSettings)
- Models/Domain/ (Song, Album, Artist)
- Models/Search/ (SearchResult)
- Models/Download/ (DownloadInfo, DownloadStatus)
- Models/Subsonic/ (ScanStatus)

Updated namespaces and imports across 22 files.
Improves navigation and separates models by business context.
2026-01-08 19:57:11 +01:00
V1ck3s
fe9cb9b758 refactor: organize services by provider and standardize settings pattern 2026-01-08 19:02:44 +01:00
V1ck3s
5d03f86872 feat: add download mode option (Track/Album) for Deezer downloads
Closes #10
2026-01-06 22:53:43 +01:00
V1ck3s
3fd98ea3de feat: add explicit content filter for Deezer tracks (#22) 2026-01-06 21:59:00 +01:00
V1ck3s
55727f206f fix: artist, album, songs image problem fixed with new ID format 2025-12-13 18:06:37 +01:00
V1ck3s
d183853cb2 feat: improve downloaded files organization 2025-12-13 18:06:37 +01:00
V1ck3s
9b398c7484 feat: replace OpenSSL with native Blowfish decryption and add library rescan
- Replace OpenSSL subprocess with BouncyCastle native Blowfish CBC decryption
- Add automatic Subsonic library scan trigger after downloads (with 30s debounce)
- Improve error handling in DeezerMetadataService search methods
- Add comprehensive tests for download service, metadata service, and library service
- Increase test coverage from 13 to 32 tests
2025-12-13 18:06:37 +01:00
V1ck3s
ad15e10ea6 test: add unit tests for DeezerMetadataService and LocalLibraryService
- Add DeezerMetadataServiceTests with mocked HTTP responses
- Add LocalLibraryServiceTests for song ID parsing and registration
- Configure xUnit test project with Moq and MVC Testing packages
2025-12-13 18:06:37 +01:00