omgbeez
63fd8caee9
fix: Race conditions when deleting/updating a torrent and its downloadable files
2026-04-23 00:22:09 -04:00
Clifford Roche
d576ee7f01
fix(tests): Make the test fixtures os independant
2026-04-20 22:11:42 -04:00
omgbeez
8664993ff6
fix(tests): Fix tests to work on macos (and linux, and windows)
...
Windows is the odd OS out here, adjusting logic for test data.
2026-04-20 19:44:07 -04:00
Roger Far
75e02cfb82
Fixed some qBittorrent endpoints.
Release Docker Image / build (map[arch:amd64 platform:linux/amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
Release Docker Image / build (map[arch:arm64 platform:linux/arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
Create GitHub Release / Test, Build, and Bundle (push) Has been cancelled
dotnet test / build (push) Has been cancelled
Release Docker Image / push-images (push) Has been cancelled
Create GitHub Release / Create GitHub release (push) Has been cancelled
2026-04-06 20:38:32 -06:00
Roger Far
53f985d80d
v2.0.127
Release Docker Image / build (map[arch:amd64 platform:linux/amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
Release Docker Image / build (map[arch:arm64 platform:linux/arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
Create GitHub Release / Test, Build, and Bundle (push) Has been cancelled
dotnet test / build (push) Has been cancelled
Release Docker Image / push-images (push) Has been cancelled
Create GitHub Release / Create GitHub release (push) Has been cancelled
2026-03-15 12:18:38 -06:00
Vinod Mishra
d4e1502c60
Add state filter to info endpoint and also implement the count endpoint
2026-03-15 13:12:59 +00:00
Roger Far
66bd4560a8
Run formatters.
2026-03-14 13:41:30 -06:00
Roger Far
683ac44c12
Upgrade packages.
...
Migrate Angular to new injector constructors.
2026-03-14 13:39:51 -06:00
Roger Far
042b1e32e4
Merge pull request #946 from jfrconley/fix/torrents-info-hashes-filter
...
Fix /api/v2/torrents/info to filter by hashes query parameter
2026-03-14 13:27:13 -06:00
Roger Far
095a25f04a
Merge pull request #947 from AlexandreVassard/main
...
fix(symlink): strip duplicate torrent name from subpath
2026-03-14 13:26:56 -06:00
omgbeez
76dc3e0b98
fix: Long retry-after would generate timeout instead of RateLimitException
...
Needed to move the retry handler before the TimeOut handler, and drive the throw from the TimeOut configured by the user for the provider.
2026-03-14 09:32:51 -04:00
Alexandre Vassard
6743bd472e
fix(symlink): normalize subpath first component before comparing torrent name prefix
...
The previous fix compared subPath directly against the sanitized torrent
name, which fails when RdName contains characters removed by
RemoveInvalidPathChars (e.g. ':' on Windows). Extract and normalize the
first component of subPath before comparing so both sides go through the
same sanitization. Add tests covering the duplicate-prefix stripping case.
2026-03-08 21:29:33 +01:00
Alexandre Vassard
1dd7ab9c8e
fix(symlink): strip duplicate torrent name from subpath
...
torrent.Files[].Path already includes the torrent name as its first
component (e.g. "Hijack/Saison 1/file.mkv"), but GetDownloadPath was
also initialising torrentPath with torrent.RdName, causing the name
to appear twice (e.g. "Hijack/Hijack/Saison 1"). Strip the torrent
name prefix from subPath before combining so the resolved path matches
the actual rclone mount layout.
2026-03-08 21:15:34 +01:00
John Conley
c0bbab5fa4
Fix /api/v2/torrents/info to filter by hashes query parameter
...
Add support for the `hashes` query parameter (pipe-separated, case-insensitive)
to match real qBittorrent API behavior. This fixes compatibility with cleanuparr
and *arr apps that rely on hash-based filtering.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:39:42 -08:00
omgbeez
41787077db
Add remaining seconds display during rate-limit and improve cooldown handling
2026-03-07 18:04:12 -05:00
omgbeez
67afe189b5
Refactor TorBoxDebridClientTest to include IRateLimitCoordinator and improve test consistency across methods. Updated logging and error handling for rate-limiting scenarios.
2026-03-07 17:57:42 -05:00
Roger Far
0b726792cb
Add torrents/trackers qBittorrent endpoint for cleanuparr compatibility.
2026-03-01 11:24:11 -07:00
Roger Far
7ec977b36e
Merge pull request #941 from ALenfant/fix_login_format
...
Always return plain text from `auth/login` API endpoint
2026-03-01 10:38:37 -07:00
Antonin Lenfant-Kodia
a7dd01eb42
Fix qB auth/login to always return plain text
2026-03-01 15:01:13 +01:00
Roger Far
178270084e
no message
Release Docker Image / build (map[arch:amd64 platform:linux/amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
Release Docker Image / build (map[arch:arm64 platform:linux/arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
Create GitHub Release / Test, Build, and Bundle (push) Has been cancelled
dotnet test / build (push) Has been cancelled
Release Docker Image / push-images (push) Has been cancelled
Create GitHub Release / Create GitHub release (push) Has been cancelled
2026-02-23 20:14:27 -07:00
Roger Far
41f816ab80
Cleanup.
2026-02-23 20:04:53 -07:00
Roger Far
81dd3dd9f8
Merge pull request #923 from omgbeez/upstream/resilience
...
Add resilience handler, predictive rate limit handling
2026-02-23 08:36:35 -07:00
Roger Far
0af0b41bb8
Merge pull request #935 from ALenfant/add_legacy_version_endpoint
...
Add legacy /version/api endpoint
2026-02-22 10:40:18 -07:00
Antonin Lenfant-Kodia
e01cd6a979
Add legacy /version/api endpoint
2026-02-22 14:49:07 +01:00
Roger Far
480d881d92
Reverted SharpCompress to 0.42.1 due to file locking issues.
Release Docker Image / build (map[arch:amd64 platform:linux/amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
Release Docker Image / build (map[arch:arm64 platform:linux/arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
Create GitHub Release / Test, Build, and Bundle (push) Has been cancelled
dotnet test / build (push) Has been cancelled
Release Docker Image / push-images (push) Has been cancelled
Create GitHub Release / Create GitHub release (push) Has been cancelled
2026-02-21 16:04:36 -07:00
Roger Far
b7df2bfb15
Added test helper to make sure tests pass on Windows.
2026-02-21 15:33:12 -07:00
Roger Far
7c94528847
Merge pull request #931 from omgbeez/upstream/nzb-delete-actions
...
Handle NZB finished actions in `Sabnzbd` service
2026-02-21 15:18:41 -07:00
Roger Far
f4e1cf4717
Merge pull request #930 from omgbeez/upstream/downloads-fix
...
Fix broken download status in the UI
2026-02-21 15:18:08 -07:00
Roger Far
d023bddd24
Merge pull request #928 from omgbeez/upstream/tb-statuses
...
Adding some missing status mappings for TorBox
2026-02-21 15:17:13 -07:00
Roger Far
8e5238844e
Merge pull request #926 from omgbeez/upstream/qbt-eta-fix
...
Fix ETA calculation for QBittorrent API
2026-02-21 15:16:16 -07:00
omgbeez
e36a5a07e5
Handle NZB finished actions in Sabnzbd service
2026-02-20 17:23:21 -05:00
omgbeez
db511929cd
Addressing bug from qodo review
2026-02-20 16:13:25 -05:00
omgbeez
2db2af4cea
Fix broken download status in the UI
2026-02-20 15:59:47 -05:00
omgbeez
f32e8316e2
Adding some missing status mappings for TorBox
2026-02-20 11:38:57 -05:00
omgbeez
0ca2517eb6
Fix ETA calculation for QBittorrent API
2026-02-20 10:56:56 -05:00
omgbeez
6d0cb6ceb5
Minor fixes for Qodo
2026-02-20 10:34:30 -05:00
omgbeez
ed397f8223
Update Logger to use TorrentRunner.GetStats for consistent download statistics
2026-02-20 09:57:57 -05:00
omgbeez
a023d33d90
Add resilience handler, predictive rate limit handling
...
- Applied to TorBox, can be extended easily to other providers
- Reads response headers commonplace for pre-emptive rate limit throttling and retry-after
- When a rate limit is reached, displays a warning in the UI
- Fix socket leak from direct allocation of HttpClient, replaced with factory which handles pooling and re-use of sockets.
While HttpClient is Disposable, it doesn't gaurantee (and does not) directly release underlying sockets for queries at the time the client is disposed. These sockets will go into a TCP WAIT state often for a very long time. The expected pattern in C# is to always use the HttClientFactory which will correctly handle re-use of the OS sockets in suqsequent queries reducing resource and memory leaks.
2026-02-20 09:47:13 -05:00
Roger Far
ccee652572
Upgrade packages.
2026-02-18 21:35:02 -07:00
Roger Far
d6020594ef
Cleanup.
2026-02-18 21:34:51 -07:00
omgbeez
991ecefe3c
Clarify error messages in TorrentRunner to distinguish between provider and runner errors.
2026-02-13 17:09:16 -05:00
omgbeez
33d8c2d825
Align Sabnzbd status reporting with updated TorrentStatus values.
2026-02-13 17:08:51 -05:00
omgbeez
f25cef711b
Improve TorBox status mapping to TorrentStatus and log any unmapped statuses for debugging.
2026-02-13 17:06:57 -05:00
omgbeez
40be170677
Refactor download progress calculation to use centralized stats and simplify logic across services.
...
- Fixes an issue where progress goes back to 50% as soon as downloads are done
- Prevents copy and update of torrent/nzb list by not updating download stats on every use, most callers don't require this data, notable perf/memory improvement.
2026-02-13 17:06:12 -05:00
omgbeez
a5f9cd353b
SqLite doesn't support OrderBy on DateTimeOffset types
...
Sorting will require a copy to fix this for the moment, could probably change the underlying type later to prevent this.
2026-02-13 13:22:41 -05:00
omgbeez
e93e4f6f22
Usenet support
2026-02-13 13:15:57 -05:00
Roger Far
d76d26131c
Remove obsolete caching.
2026-02-11 20:24:27 -07:00
Roger Far
580c7132c6
Cleanup.
2026-02-11 20:22:28 -07:00
Roger Far
0c5e38e01a
Merge branch 'main' into main
2026-02-11 20:20:47 -07:00
Roger Far
01a26c614b
Merge branch 'main' into upstream/websocket-perf
2026-02-11 20:04:57 -07:00