From d08d8861d4f398856e8df4c6c5caa221f3e661e9 Mon Sep 17 00:00:00 2001 From: esir Date: Sun, 10 Nov 2019 16:42:45 +0300 Subject: [PATCH] Code cleanup --- deletefb/tools/chrome_driver.py | 42 +++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/deletefb/tools/chrome_driver.py b/deletefb/tools/chrome_driver.py index ddd8fc1..d6549ba 100644 --- a/deletefb/tools/chrome_driver.py +++ b/deletefb/tools/chrome_driver.py @@ -2,14 +2,23 @@ import re import zipfile import os, sys, stat, platform from urllib.request import urlretrieve +from collections import namedtuple from clint.textui import puts, colored import progressbar from selenium import webdriver -from selenium.webdriver.chrome.options import Options from .common import NO_CHROME_DRIVER +from ..exceptions import UnknownOSException + + +_ = namedtuple('WebDrivers', 'mac linux windows') +drivers = ['https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_mac64.zip', + 'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip', + 'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_win32.zip' + ] +WebDriver = _(drivers[0], drivers[1], drivers[2]) def extract_zip(filename): @@ -19,29 +28,28 @@ def extract_zip(filename): :return: new filename """ try: - file = zipfile.ZipFile(filename, 'r') + _file = zipfile.ZipFile(filename, 'r') except FileNotFoundError: puts(colored.red(f"{filename} Does not exist")) - sys.exit() + sys.exit(1) # Save the name of the new file - new_file_name = file.namelist()[0] + new_file_name = _file.namelist()[0] # Extract the file and make it executable - file.extractall() + _file.extractall() driver_stat = os.stat(new_file_name) os.chmod(new_file_name, driver_stat.st_mode | stat.S_IEXEC) - file.close() + _file.close() os.remove(filename) return new_file_name def setup_selenium(driver_path, options): # Configures selenium to use a custom path - driver = webdriver.Chrome(executable_path=driver_path, options=options) - return driver + return webdriver.Chrome(executable_path=driver_path, options=options) def get_webdriver(): @@ -59,23 +67,20 @@ def get_webdriver(): # Extract file extract_zip(web_driver[0]) - return os.getcwd() + '/chromedriver' + return "{0}/chromedriver".format(os.getcwd()) else: # Download it according to the current machine - webdrivers = ['https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_mac64.zip', - 'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip', - 'https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_win32.zip' - ] + os_platform = platform.system() if os_platform == 'Darwin': - chrome_webdriver = webdrivers[0] + chrome_webdriver = WebDriver.mac elif os_platform == 'Linux': - chrome_webdriver = webdrivers[1] + chrome_webdriver = WebDriver.linux elif os_platform == 'Windows': - chrome_webdriver = webdrivers[2] + chrome_webdriver = WebDriver.windows else: - raise Exception("Unknown Operating system platform") + raise UnknownOSException("Unknown Operating system platform") global total_size @@ -102,7 +107,8 @@ def get_webdriver(): if int(response[1].get('Content-Length')) == total_size: puts(colored.green(f"DONE!")) - return os.getcwd() + '/' + extract_zip(file_name) + return "{0}/{1}".format(os.getcwd(), extract_zip(file_name)) + else: puts(colored.red("An error Occurred While trying to download the driver.")) # remove the downloaded file and exit