import os from pathlib import Path from dotenv import load_dotenv load_dotenv() class Config: BACKBLAZE_EMAIL = os.getenv("BACKBLAZE_EMAIL", "") BACKBLAZE_PASSWORD = os.getenv("BACKBLAZE_PASSWORD", "") INVOICE_VAT_ID = os.getenv("INVOICE_VAT_ID", "") INVOICE_DOCUMENT_TYPE = os.getenv("INVOICE_DOCUMENT_TYPE", "") INVOICE_COMPANY = os.getenv("INVOICE_COMPANY", "") INVOICE_NOTES = os.getenv("INVOICE_NOTES", "").replace("\\n", "\n") OUTPUT_DIR = os.getenv("OUTPUT_DIR", "./invoices") BROWSER_DATA_DIR = os.getenv("BROWSER_DATA_DIR", "./.browser_data") BROWSER_HEADLESS = os.getenv("BROWSER_HEADLESS", "true").lower() == "true" BROWSER_TIMEOUT = int(os.getenv("BROWSER_TIMEOUT", "60000")) LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") DOWNLOAD_ALL_YEARS = os.getenv("DOWNLOAD_ALL_YEARS", "false").lower() in ("1", "true", "yes", "y") @classmethod def validate(cls): if not cls.BACKBLAZE_EMAIL or not cls.BACKBLAZE_PASSWORD: raise ValueError("BACKBLAZE_EMAIL and BACKBLAZE_PASSWORD must be set") Path(cls.OUTPUT_DIR).mkdir(parents=True, exist_ok=True)