Added curl downloader

This commit is contained in:
Dimitris Zlatanidis 2023-01-25 22:23:31 +02:00
parent 1efcf6e70e
commit 338d76e01e
4 changed files with 31 additions and 2 deletions

View file

@ -5,6 +5,7 @@ Updated:
- manpages for options (Thanks to marav)
Added:
- Option --file-pattern
- Curl downloader as the second option
4.5.1 - 16/01/2023
Added:

View file

@ -51,6 +51,10 @@
# Default is true. [true/false]
dialog = true
# You can choose downloader between wget and curl:
# Default is wget.
downloader = "wget"
# Wget downloader options.
# -c, --continue: resume getting a partially-downloaded file.
# -N, --timestamping: don't re-retrieve files unless newer.
@ -59,6 +63,10 @@
# than local.
wget_options = "-c -N -q --show-progress"
# Curl downloader options.
# Pass the options you want here.
curl_options = ""
# If silent mode is true,
# do not print the commands as they are executed.
# Default is true. [true/false]

View file

@ -65,9 +65,15 @@ class Configs:
# Dialog utility
dialog: str = True
# Downloader command. Wget and curl.
downloader = 'wget'
# Wget options
wget_options = '-c -N -q --show-progress'
# Curl options
curl_options = ''
# Choose the view mode
silent_mode: str = True
@ -107,9 +113,15 @@ class Configs:
# Dialog utility
dialog: str = config['dialog']
# Downloader command
downloader: str = config['downloader']
# Wget options
wget_options: str = config['wget_options']
# Curl options
curl_options: str = config['curl_options']
# Choose the view mode
silent_mode: str = config['silent_mode']
except KeyError as error:

View file

@ -36,8 +36,16 @@ class Downloader(Configs):
def wget(self):
""" Wget downloader. """
self.output = subprocess.call(f'wget {self.wget_options} --directory-prefix={self.path} "{self.url}"',
shell=True, stderr=self.stderr, stdout=self.stdout)
if self.downloader == 'wget':
self.output = subprocess.call(f'{self.downloader} {self.wget_options} --directory-prefix={self.path} '
f'"{self.url}"', shell=True, stderr=self.stderr, stdout=self.stdout)
elif self.downloader == 'curl':
self.output = subprocess.call(f'{self.downloader} {self.curl_options} "{self.url}" --output '
f'{self.path}/{self.filename}', shell=True, stderr=self.stderr,
stdout=self.stdout)
else:
raise SystemExit(f"{self.red}Error:{self.endc} Downloader '{self.downloader}' not supported.\n")
if self.output != 0:
raise SystemExit(self.output)