import os # Load environment variables from .env in the project root def _load_env(): root_dir = os.path.dirname(os.path.abspath(__file__)) dotenv_path = os.path.join(root_dir, ".env") if os.path.exists(dotenv_path): try: with open(dotenv_path, "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line or line.startswith("#"): continue if "=" in line: key, val = line.split("=", 1) val = val.strip().strip('"').strip("'") os.environ[key.strip()] = val except Exception as e: print(f"Warning: Failed to load .env file: {e}") _load_env() # VK API Configuration VK_TOKEN = os.getenv("VK_TOKEN", "your_vk_community_token_here") GROUP_ID = int(os.getenv("VK_GROUP_ID", "0")) # Operator / Admin configuration OPERATOR_PEER_ID = int(os.getenv("OPERATOR_PEER_ID", "0")) admin_ids_raw = os.getenv("ADMIN_IDS") if admin_ids_raw: try: ADMIN_IDS = [int(x.strip()) for x in admin_ids_raw.split(",") if x.strip().isdigit()] except Exception: ADMIN_IDS = [OPERATOR_PEER_ID] if OPERATOR_PEER_ID else [] else: ADMIN_IDS = [OPERATOR_PEER_ID] if OPERATOR_PEER_ID else [] # YooKassa Configuration YOOKASSA_SHOP_ID = os.getenv("YOOKASSA_SHOP_ID", "") YOOKASSA_SECRET_KEY = os.getenv("YOOKASSA_SECRET_KEY", "") # SMTP configuration for email notifications SMTP_SERVER = os.getenv("SMTP_SERVER", "smtp.yandex.ru") SMTP_PORT = int(os.getenv("SMTP_PORT", "465")) SMTP_USER = os.getenv("SMTP_USER", "") SMTP_PASSWORD = os.getenv("SMTP_PASSWORD", "") SMTP_FROM = os.getenv("SMTP_FROM", "") SMTP_TO = os.getenv("SMTP_TO", "") # Admin Dashboard Password (устарело — используется OIDC через Authentik) ADMIN_PASSWORD = os.getenv("ADMIN_PASSWORD", "") # Authentik OIDC Configuration AUTHENTIK_BASE_URL = os.getenv("AUTHENTIK_BASE_URL", "") # например https://auth.infocyber.pro AUTHENTIK_CLIENT_ID = os.getenv("AUTHENTIK_CLIENT_ID", "") AUTHENTIK_CLIENT_SECRET = os.getenv("AUTHENTIK_CLIENT_SECRET", "") AUTHENTIK_REDIRECT_URI = os.getenv("AUTHENTIK_REDIRECT_URI", "") # например https://infocyber.pro/admin/callback # Supplier / Agent Configuration for 54-FZ receipts (Agent Scheme) SUPPLIER_NAME = os.getenv("SUPPLIER_NAME", "ИП Груздев Артём Сергеевич") SUPPLIER_INN = os.getenv("SUPPLIER_INN", "370306440114") SUPPLIER_PHONE = os.getenv("SUPPLIER_PHONE", "+79611157051") TAX_SYSTEM_CODE = int(os.getenv("TAX_SYSTEM_CODE", "2")) # Default: 2 (УСН Доход ООО "АЙТИГРУПП") # Security Configurations VERIFY_WEBHOOK_IP = os.getenv("VERIFY_WEBHOOK_IP", "True").lower() == "true"