|
|
@ -51,6 +51,13 @@ class ExternalFD(FileDownloader): |
|
|
|
return [] |
|
|
|
return [command_option, source_address] |
|
|
|
|
|
|
|
def _configuration_args(self, default=[]): |
|
|
|
ex_args = self.params.get('external_downloader_args') |
|
|
|
if ex_args is None: |
|
|
|
return default |
|
|
|
assert isinstance(ex_args, list) |
|
|
|
return ex_args |
|
|
|
|
|
|
|
def _call_downloader(self, tmpfilename, info_dict): |
|
|
|
""" Either overwrite this or implement _make_cmd """ |
|
|
|
cmd = self._make_cmd(tmpfilename, info_dict) |
|
|
@ -79,6 +86,7 @@ class CurlFD(ExternalFD): |
|
|
|
for key, val in info_dict['http_headers'].items(): |
|
|
|
cmd += ['--header', '%s: %s' % (key, val)] |
|
|
|
cmd += self._source_address('--interface') |
|
|
|
cmd += self._configuration_args() |
|
|
|
cmd += ['--', info_dict['url']] |
|
|
|
return cmd |
|
|
|
|
|
|
@ -89,15 +97,16 @@ class WgetFD(ExternalFD): |
|
|
|
for key, val in info_dict['http_headers'].items(): |
|
|
|
cmd += ['--header', '%s: %s' % (key, val)] |
|
|
|
cmd += self._source_address('--bind-address') |
|
|
|
cmd += self._configuration_args() |
|
|
|
cmd += ['--', info_dict['url']] |
|
|
|
return cmd |
|
|
|
|
|
|
|
|
|
|
|
class Aria2cFD(ExternalFD): |
|
|
|
def _make_cmd(self, tmpfilename, info_dict): |
|
|
|
cmd = [ |
|
|
|
self.exe, '-c', |
|
|
|
'--min-split-size', '1M', '--max-connection-per-server', '4'] |
|
|
|
cmd = [self.exe, '-c'] |
|
|
|
cmd += self._configuration_args([ |
|
|
|
'--min-split-size', '1M', '--max-connection-per-server', '4']) |
|
|
|
dn = os.path.dirname(tmpfilename) |
|
|
|
if dn: |
|
|
|
cmd += ['--dir', dn] |
|
|
|