This pull request introduces the ability to configure how completed downloads are handled, allowing users to choose whether files are moved or copied into the library output path. It also implements finalized download handling for qBittorrent and Transmission clients, ensuring files are reliably transferred and marked complete after a stability window. The UI and backend have been updated to support this new setting, and download completion logic has been consolidated and exposed for easier testing and maintenance.
Completed Download Handling Improvements
- Added a new
completedFileActionsetting to both frontend (ApplicationSettingsinterface inindex.ts) and backend (ApplicationSettingsclass inConfiguration.cs) to let users choose between moving or copying completed downloads. [1] [2] - Updated the Settings UI in
SettingsView.vueto include a dropdown for selecting the completed file action, with sensible defaulting to "Move". [1] [2]
Download Monitoring and Finalization
- Implemented logic in
DownloadMonitorServiceto poll qBittorrent and Transmission clients, detect completed downloads, and after a short stability window, finalize them by moving/copying files according to the new setting. [1] [2] - Added a
FinalizeDownloadAsyncmethod to handle locating the correct file, determining the destination path, and moving or copying the file as configured, then updati...
Automated canary build