Updated for filename

This commit is contained in:
Dimitris Zlatanidis 2023-05-13 21:56:54 +03:00
parent 249cab6cc3
commit db8f9ad2e0

View file

@ -23,6 +23,7 @@ class Downloader(Configs):
self.errors = Errors()
self.utils = Utilities()
self.filename = None
self.downloader_command: str = str()
self.option_for_parallel: bool = self.utils.is_option(
@ -47,7 +48,7 @@ class Downloader(Configs):
def tools(self, url: str) -> None:
""" Downloader tools wget, wget2, curl and lftp. """
path: str = urlparse(url).path
filename: str = unquote(Path(path).name)
self.filename: str = unquote(Path(path).name)
downloader_tool: dict = {
'wget': self.wget_downloader,
@ -60,12 +61,12 @@ class Downloader(Configs):
self.copy_local_binary_file(url)
else:
try:
downloader_tool[self.downloader](url, filename)
downloader_tool[self.downloader](url)
except KeyError:
self.errors.raise_error_message(f"Downloader '{self.downloader}' not supported", exit_status=1)
self.utils.process(self.downloader_command)
self.check_if_downloaded(url, filename)
self.check_if_downloaded(url)
def copy_local_binary_file(self, url: str) -> None:
try:
@ -74,17 +75,18 @@ class Downloader(Configs):
except FileNotFoundError as error:
self.errors.raise_error_message(f'{error}', 1)
def wget_downloader(self, url: str, filename=None) -> None:
def wget_downloader(self, url: str) -> None:
self.downloader_command: str = f'{self.downloader} {self.wget_options} --directory-prefix={self.path} "{url}"'
def curl_downloader(self, url: str, filename: str) -> None:
self.downloader_command: str = f'{self.downloader} {self.curl_options} "{url}" --output {self.path}/{filename}'
def curl_downloader(self, url: str) -> None:
self.downloader_command: str = (f'{self.downloader} {self.curl_options} "{url}" '
f'--output {self.path}/{self.filename}')
def lftp_downloader(self, url: str, filename=None) -> None:
def lftp_downloader(self, url: str) -> None:
self.downloader_command: str = f'{self.downloader} {self.lftp_get_options} {url} -o {self.path}'
def check_if_downloaded(self, url: str, filename: str) -> None:
def check_if_downloaded(self, url: str) -> None:
""" Checks if the file downloaded. """
path_file: Path = Path(self.path, filename)
path_file: Path = Path(self.path, self.filename)
if not path_file.exists():
self.errors.raise_error_message(f"Download the '{url}'", exit_status=20)