diff --git a/HpUpdater.py b/src/HpUpdater.py similarity index 68% rename from HpUpdater.py rename to src/HpUpdater.py index 8f10376..855e866 100644 --- a/HpUpdater.py +++ b/src/HpUpdater.py @@ -4,9 +4,10 @@ import os import time import logging -logger = logging.getLogger(__file__) - from selenium import webdriver +from pyvirtualdisplay import Display + +logger = logging.getLogger(__file__) class HpUpdater(): @@ -63,8 +64,27 @@ class HpUpdater(): def update(self, ip): logger.info('Start Hostpoint Record update') + + # Thanks to https://github.com/dimmg/dockselpy + # Display is only used for firefox to run properly + display = Display(visible=0, size=(800, 600)) + display.start() - with webdriver.Firefox() as driver: + logging.info('Initialized virtual display..') - self._login(driver) - self._updateARecord(driver, ip) + firefox_profile = webdriver.FirefoxProfile() + firefox_profile.set_preference('browser.download.folderList', 2) + firefox_profile.set_preference('browser.download.manager.showWhenStarting', False) + firefox_profile.set_preference('browser.download.dir', os.getcwd()) + firefox_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv') + + logging.info('Prepared firefox profile..') + + driver = webdriver.Firefox(firefox_profile=firefox_profile) + logging.info('Initialized firefox browser..') + + self._login(driver) + self._updateARecord(driver, ip) + + driver.quit() + display.stop() diff --git a/IpManager.py b/src/IpManager.py similarity index 100% rename from IpManager.py rename to src/IpManager.py diff --git a/logger.conf b/src/logger.conf similarity index 100% rename from logger.conf rename to src/logger.conf diff --git a/main.py b/src/main.py similarity index 80% rename from main.py rename to src/main.py index ee62e09..412180c 100644 --- a/main.py +++ b/src/main.py @@ -12,11 +12,13 @@ from HpUpdater import HpUpdater from IpManager import IpManager loggerConfigPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logger.conf') -logging.config.fileConfig(fname=loggerConfigPath, defaults={'logfilename': 'log/main.log', 'debuglogfilename': 'log/debug.log'}, disable_existing_loggers=False) + +home = os.environ.get('APP_HOME') +logging.config.fileConfig(fname=loggerConfigPath, defaults={'logfilename': f'{home}/log/main.log', 'debuglogfilename': f'{home}/log/debug.log'}, disable_existing_loggers=False) logger = logging.getLogger(__name__) -ipFile = "lastIp" +ipFile = f'{home}/lastIp' timeout = 60 if __name__ == "__main__":