Downloads fail on Linux containers when filenames contain square
brackets or multiple consecutive spaces. On Linux, .NET's
Path.GetInvalidFileNameChars() only returns NUL and '/', so characters
like [ ] { } that cause issues with shell globbing, URI handling, and
various download clients pass through the existing filter unchanged.
Add FilenameSanitizer that:
- Strips square brackets, curly braces, and control characters
- Collapses multiple consecutive spaces into one
- Trims leading and trailing whitespace
- Preserves parentheses and all other characters
Apply sanitization at filesystem boundaries: DownloadHelper (where the
Real-Debrid filename is turned into a local path), UnpackClient,
Torrent delete / RunOnTorrentComplete, and the qBittorrent / SABnzbd
status paths that *arr reads back. Aria2c and DownloadStation also
sanitize their remote output paths so they match the sanitized local
filePath. Symlink's rclone-mount lookup still uses the original name
since that has to match the real file in the mount.
Add a SanitizeFilenames toggle in DbSettings (default on) so users
can disable the behaviour if they need the exact Real-Debrid name.
|
||
|---|---|---|
| .. | ||
| DebridClients | ||
| Downloaders | ||
| Authentication.cs | ||
| DownloadableFileFilter.cs | ||
| DownloadClient.cs | ||
| Downloads.cs | ||
| Enricher.cs | ||
| IDownloads.cs | ||
| ITrackerListGrabber.cs | ||
| QBittorrent.cs | ||
| RdtHub.cs | ||
| RemoteService.cs | ||
| Sabnzbd.cs | ||
| Settings.cs | ||
| TorrentRunner.cs | ||
| Torrents.cs | ||
| TrackerListGrabber.cs | ||
| UnpackClient.cs | ||