diff options
-rw-r--r-- | .env.template | 2 | ||||
-rw-r--r-- | csvReader.py | 22 | ||||
-rw-r--r-- | downloader.py | 9 | ||||
-rw-r--r-- | util.py | 18 |
4 files changed, 51 insertions, 0 deletions
diff --git a/.env.template b/.env.template index e983322..06cab91 100644 --- a/.env.template +++ b/.env.template @@ -1,5 +1,7 @@ URL= DOWNLOAD_PATH= +FILENAME="Akhdani Task Management Report_Dashboard_Tabel.csv" +LOGFILE='watcher.log' REPORT_AREA_SELECTOR_TYPE="css selector" REPORT_AREA= EXPORT_BUTTON_SELECTOR_TYPE="xpath" diff --git a/csvReader.py b/csvReader.py index e69de29..a3c03b8 100644 --- a/csvReader.py +++ b/csvReader.py @@ -0,0 +1,22 @@ +import sys +from datetime import datetime +import csv +from util import setupLogger + +# Terlalu males setup locale +MONTH = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'agu', 'sep', 'okt', 'nov', 'des'] +currentMonth = MONTH[datetime.now().month - 1] + +logger = setupLogger() + + +def readCSV(filename): + try: + with open(filename) as csvfile: + pass + except FileNotFoundError: + logger.error(f'File "{filename}" not found') + + +if __name__ == '__main__': + readCSV('ngetest') diff --git a/downloader.py b/downloader.py index 8b74611..58b5f42 100644 --- a/downloader.py +++ b/downloader.py @@ -6,12 +6,17 @@ import time from dotenv import load_dotenv from selenium import webdriver +from selenium.common import TimeoutException from selenium.webdriver import ActionChains from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait +from util import setupLogger + load_dotenv() +logger = setupLogger() + def driverSetup(url): op = webdriver.ChromeOptions() @@ -49,6 +54,10 @@ def downloadCsv(): downloadButton.click() time.sleep(5) + logger.info("REPORT FILE DOWNLOADED") + + except TimeoutException: + logger.error("Timed out while downloading report") finally: driver.quit() @@ -0,0 +1,18 @@ +import logging +import os + +from dotenv import load_dotenv + +load_dotenv() + + +def setupLogger(): + # kayanya python logger itu singleton, bisa dipanggil berkali2 + logger = logging.getLogger(__name__) + logging.basicConfig( + filename=os.getenv('LOGFILE'), + encoding='utf-8', + level=logging.DEBUG, + format='%(asctime)s - %(levelname)s - %(message)s' + ) + return logger |