I've just added the support for partial downloads in master, so it goes into 1.7 release. There are a few issues remaining to be solved and things to be done:
I've noticed that sometimes CLI does not terminate when all non-skipped files have been downloaded. This had never happened before, so I tend to think that I've introduced a bug somewhere. Need to investigate (might start with bt.processor.torrent.ProcessTorrentStage#doExecute, which controls when download is considered finished). Maybe it's a CLI-specific issue (it's hard to say b/c there aren't any integration tests for partial downloads yet).
Adding a couple of unit tests for new methods in bt.data.Bitfield would be nice
CLI client might need an additional command-line flag to disable file selection (otherwise people may be forced to keep Enter/Esc pressed for quite some time if there are many files in the torrent)
Displaying selection prompt for an existing file (e.g. when it's not the first session for current torrent) makes little sense
Esc keypress does not work in headless mode
Ctrl-C keypress does not work in file selection dialog when run with GUI
Might want to update the gif in the README to show off the new feature (looks pretty cool!)
Also, current implementation does not account for some edge cases:
Empty files are always created by bt.data.DefaultDataDescriptor, regardless of whether they've been selected or not
Selection is performed on raw torrent file metadata (i.e. the paths from the info dictionary). Would be great to use normalized file info instead (currently normalization is done in bt.data.file.FileSystemStorage)
I've just added the support for partial downloads in master, so it goes into 1.7 release. There are a few issues remaining to be solved and things to be done:
bt.processor.torrent.ProcessTorrentStage#doExecute
, which controls when download is considered finished). Maybe it's a CLI-specific issue (it's hard to say b/c there aren't any integration tests for partial downloads yet).Adding a couple of unit tests for new methods inbt.data.Bitfield
would be niceCLI client might need an additional command-line flag to disable file selection (otherwise people may be forced to keep Enter/Esc pressed for quite some time if there are many files in the torrent)