Allow Aria2 downloader to use absolute paths. #825
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
馃毃Please review the guidelines for contributing to this repository.
Proposed changes
This should fix #275.
The downloader for aria2 has a bug which prevents it from supporting absolute paths.
From aria2c manpage (v1.35.0):
Thus both
--dir
and--out
should be specified together for absolute paths, but insteadAria2Downloader
indownloaders.py
specifies the full path in--out
, causing the working directory to be appended to all paths:For example, if you run
coursera-dl
in working directory/home/user1/
and specify--path /home/user1/downloads
, aria2 will download to a directory/home/user1//home/user1/downloads
. This is what @FinalTheory reported, and is still the behavior as of the latestcoursera-dl
on PyPi (0.11.5).This change is a simple fix, though I suspect it would be easier and more robust to avoid these sorts of issues by changing the
_create_command
interface to pass in filedir and filename separately.Testing
Added Aria2 downloader unit tests for relative and absolute paths.
I also tested the script myself using absolute and relative paths on real courses, both cases worked.
Types of changes
What types of changes does your code introduce?
Put an
x
in the boxes that applyChecklist
Put an
x
in the boxes that apply. You can also fill these out after creatingthe PR. If you're unsure about any of them, don't hesitate to ask. We're here
to help! This is simply a reminder of what we are going to look for before
merging your code.
Reviewers
@rbrito