Branson
8c67f4acce
Update constructor with new parameter from upstream
2026-01-16 19:39:16 -05:00
bransoned
bfcb78b0b4
fix: merge conflicts and upstream changes merged
2026-01-16 22:45:04 +00:00
Vickes
4fde5a6db4
feat: add HTTP Range header support for iOS streaming clients ( #48 )
2026-01-15 23:47:03 +01:00
V1ck3s
e8e385b770
fix: resolve circular dependency and fix failing tests
2026-01-15 23:32:31 +01:00
V1ck3s
ebe6e90f39
feat: playlist implementation
2026-01-15 23:32:31 +01:00
Branson
0f93862cc2
Fix syntax error
2026-01-13 17:10:29 -05:00
bransoned
ce9689daa2
Change repeated array allocation into predefined constant
2026-01-13 17:10:11 -05:00
V1ck3s
d31a380176
fix: add HTTP Range header forwarding for iOS clients
2026-01-13 17:09:56 -05:00
Branson
c4e62cdeab
Fix syntax error
2026-01-13 16:56:51 -05:00
bransoned
183f59993f
Change repeated array allocation into predefined constant
2026-01-13 21:39:42 +00:00
bransoned
8a66db915d
Remove debug prints, fix Artist search, implement GetArtistAlbumsAsync
2026-01-12 16:10:02 -05:00
V1ck3s
c8c4fd8322
fix: add HTTP Range header forwarding for iOS clients
2026-01-12 19:35:29 +01:00
V1ck3s
7a08f15523
fix: prevent duplicate downloads from concurrent stream requests
2026-01-12 18:43:47 +01:00
V1ck3s
1d4c46b4f3
fix: use album artist for folder organization in Album download mode
2026-01-12 18:43:47 +01:00
V1ck3s
62246cc48f
fix: prevent duplicate downloads in album mode
2026-01-12 18:43:47 +01:00
bransoned
ad4a3af41e
#31 (upstream) Fix iOS client local streaming issues
2026-01-12 01:30:14 +00:00
bransoned
12598d17e2
#31 (upstream) Fix iOS client local streaming issues
2026-01-11 18:47:13 -05:00
bransoned
45363ebe3b
Make prod default behavior
2026-01-10 21:16:07 -05:00
bransoned
74d02db58a
Add SquidWTF functionality to subsonic music services
2026-01-10 21:04:05 -05:00
bransoned
81979713ef
Update appsettings file and make SquidWTF default service
2026-01-10 21:03:07 -05:00
bransoned
d8d046f6ef
Add basic settings file for constants
2026-01-10 21:00:28 -05:00
bransoned
e1db12a165
Add logic to allow for new SquidWTF service
2026-01-10 20:59:16 -05:00
bransoned
ab898ef611
Add startup validation for metadata/download services
2026-01-10 20:58:28 -05:00
bransoned
4a5f2591f7
Add mostly functional metadata service that queries SquidWTF Tidal proxy
2026-01-10 20:56:22 -05:00
bransoned
f3e3c0bfa1
Add download service module to allow for downloading from SquidWTF API
2026-01-10 20:55:37 -05:00
V1ck3s
61a21b0e0c
refactor: centralize cache path logic and add TMPDIR documentation
2026-01-11 00:29:25 +01:00
V1ck3s
dbb1964f46
feat: add cache-only storage mode for streaming without library persistence
2026-01-11 00:29:25 +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
c38291efa3
refactor: extract BaseDownloadService to eliminate code duplication between providers
2026-01-08 19:39:06 +01:00
V1ck3s
43c9a2e808
refactor: add Result<T> pattern and global exception handler for consistent error handling
2026-01-08 19:31:05 +01:00
V1ck3s
cb37c7f69a
refactor: implement unified startup validator architecture with IStartupValidator interface
2026-01-08 19:19:45 +01:00
V1ck3s
fe9cb9b758
refactor: organize services by provider and standardize settings pattern
2026-01-08 19:02:44 +01:00
V1ck3s
275467c5bf
feat: add pluggable music service architecture with Qobuz support
2026-01-07 23:55:59 +01:00
V1ck3s
9ec1bb77b5
fix: use AlbumArtist for download folder organization
2026-01-07 22:43:17 +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
06f33b8e89
feat: add form-urlencoded body parsing for Feishin compatibility
2026-01-04 22:21:31 +01:00
V1ck3s
2a6191e9db
feat: add startup validation for Subsonic and Deezer connectivity
2026-01-04 17:42:49 +01:00
V1ck3s
7eb101ea29
feat: add configurable audio quality selection for Deezer downloads
2026-01-03 18:06:24 +01:00
V1ck3s
5b736ea61a
security: remove token from log output
2026-01-02 17:45:28 +01:00
V1ck3s
7bf8446d8f
fix: use correct artist ID for Deezer albums in getArtist response
2026-01-01 20:27:29 +01:00
V1ck3s
88d8cbb376
fix: address Copilot PR review findings
...
- Register DeezerDownloadService and DeezerMetadataService as Singleton
to properly share state across requests (rate limiting, download tracking)
- Fix race condition in LocalLibraryService.LoadMappingsAsync with
double-check locking pattern
- Dispose HttpRequestMessage objects to prevent memory leaks (4 occurrences)
- Handle fire-and-forget TriggerLibraryScanAsync with proper error logging
- Replace Console.WriteLine with ILogger in SubsonicController
- Fix while loop in DownloadSongAsync to refresh activeDownload state
- Use modern C# range operator syntax for Substring calls
- Clean up appsettings.json template (remove private IP, clear ARL token)
- Add documentation comment for Blowfish decryption key
- Add downloads directory to gitignore
2025-12-13 18:06:37 +01:00
V1ck3s
2d69a5c33e
refactor: update comments and documentation to English for consistency
2025-12-13 18:06:37 +01:00
V1ck3s
c909458bee
feat: add metadatas to file after download
2025-12-13 18:06:37 +01:00
V1ck3s
7e9a6dd72d
fix: song order
2025-12-13 18:06:37 +01:00
V1ck3s
bdbafb4669
fix: deduplicate external artists in search results, prioritizing local artists
2025-12-13 18:06:37 +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