feat(torrents): support tracker exclusion

This commit is contained in:
NimBold
2026-08-02 01:19:18 +03:30
parent ab9f0507d0
commit a46a64994d
20 changed files with 295 additions and 32 deletions
+9
View File
@@ -6,6 +6,7 @@ import {
downloadMediaKindsMatch,
MAX_DOWNLOAD_FILENAME_BYTES,
canonicalizeDownloadFileName,
isValidTorrentExcludeTrackerList,
isValidTorrentTrackerList,
redactDownloadForPersistence,
resolveDownloadConnections
@@ -66,6 +67,14 @@ describe('Torrent tracker input validation', () => {
expect(isValidTorrentTrackerList('https://tracker.example/announce,')).toBe(false);
expect(isValidTorrentTrackerList(Array.from({ length: 65 }, (_, index) => `https://tracker${index}.example/announce`).join('\n'))).toBe(false);
});
it('accepts wildcard exclusions but rejects ambiguous mixtures', () => {
expect(isValidTorrentExcludeTrackerList('*')).toBe(true);
expect(isValidTorrentExcludeTrackerList('https://tracker.example/announce\nudp://tracker.example:6969/announce')).toBe(true);
expect(isValidTorrentExcludeTrackerList('*,https://tracker.example/announce')).toBe(false);
expect(isValidTorrentExcludeTrackerList('https://tracker.example/announce,*')).toBe(false);
expect(isValidTorrentExcludeTrackerList('https://user:pass@tracker.example/announce')).toBe(false);
});
});
describe('download connection resolution', () => {