sample_config.py 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import os
  2. from dotenv import load_dotenv
  3. def _env_int(name: str, default: int = 0) -> int:
  4. try:
  5. return int(os.environ.get(name, default))
  6. except (TypeError, ValueError):
  7. return default
  8. CONFIG_ENV_PATH = os.environ.get(
  9. "WBB_CONFIG_PATH",
  10. "config.env" if os.path.isfile("config.env") else "sample_config.env",
  11. )
  12. load_dotenv(CONFIG_ENV_PATH)
  13. BOT_TOKEN = os.environ.get("BOT_TOKEN", "")
  14. API_ID = _env_int("API_ID")
  15. SESSION_STRING = os.environ.get("SESSION_STRING", "")
  16. API_HASH = os.environ.get("API_HASH", "")
  17. USERBOT_PREFIX = os.environ.get("USERBOT_PREFIX", "\\")
  18. PHONE_NUMBER = os.environ.get("PHONE_NUMBER", "")
  19. SUDO_USERS_ID = [
  20. int(item)
  21. for item in os.environ.get("SUDO_USERS_ID", "").split()
  22. if item.lstrip("-").isdigit() and int(item) > 0
  23. ]
  24. LOG_GROUP_ID = _env_int("LOG_GROUP_ID")
  25. GBAN_LOG_GROUP_ID = _env_int("GBAN_LOG_GROUP_ID")
  26. MESSAGE_DUMP_CHAT = _env_int("MESSAGE_DUMP_CHAT")
  27. WELCOME_DELAY_KICK_SEC = _env_int("WELCOME_DELAY_KICK_SEC", 600)
  28. MONGO_URL = os.environ.get("MONGO_URL", "mongodb://127.0.0.1:27017/wbb")
  29. ARQ_API_KEY = os.environ.get("ARQ_API_KEY")
  30. ARQ_API_URL = os.environ.get("ARQ_API_URL", "https://arq.hamker.dev")
  31. LOG_MENTIONS = os.environ.get("LOG_MENTIONS", "True").lower() in ["true", "1"]
  32. RSS_DELAY = int(os.environ.get("RSS_DELAY", 300))
  33. PM_PERMIT = os.environ.get("PM_PERMIT", "True").lower() in ["true", "1"]
  34. ADMIN_WEB_ENABLED = os.environ.get("ADMIN_WEB_ENABLED", "True").lower() in [
  35. "true",
  36. "1",
  37. ]
  38. ADMIN_WEB_HOST = os.environ.get("ADMIN_WEB_HOST", "127.0.0.1")
  39. ADMIN_WEB_PORT = _env_int("ADMIN_WEB_PORT", 8088)
  40. ADMIN_WEB_USERNAME = os.environ.get("ADMIN_WEB_USERNAME", "admin")
  41. ADMIN_WEB_INITIAL_PASSWORD = os.environ.get(
  42. "ADMIN_WEB_INITIAL_PASSWORD", "qwe0.123456"
  43. )
  44. ADMIN_WEB_SESSION_HOURS = _env_int("ADMIN_WEB_SESSION_HOURS", 12)
  45. ADMIN_WEB_COOKIE_SECURE = os.environ.get(
  46. "ADMIN_WEB_COOKIE_SECURE", "False"
  47. ).lower() in ["true", "1"]
  48. ADMIN_WEB_UPLOAD_MAX_MB = _env_int("ADMIN_WEB_UPLOAD_MAX_MB", 20)
  49. ADMIN_WEB_STATIC_DIR = os.environ.get("ADMIN_WEB_STATIC_DIR", "admin-web/dist")
  50. SERVICE_ADDRESS_ENCRYPTION_KEY = os.environ.get(
  51. "SERVICE_ADDRESS_ENCRYPTION_KEY", ""
  52. )
  53. SERVICE_ADDRESS_RETENTION_DAYS = _env_int("SERVICE_ADDRESS_RETENTION_DAYS", 7)
  54. SERVICE_REVIEW_QR_EXPIRY_HOURS = _env_int("SERVICE_REVIEW_QR_EXPIRY_HOURS", 24)
  55. SERVICE_CUSTOMER_MAX_OPEN_ORDERS = _env_int("SERVICE_CUSTOMER_MAX_OPEN_ORDERS", 3)
  56. SERVICE_CUSTOMER_DAILY_REQUEST_LIMIT = _env_int(
  57. "SERVICE_CUSTOMER_DAILY_REQUEST_LIMIT", 10
  58. )
  59. SERVICE_TECHNICIAN_MINI_APP_URL = os.environ.get(
  60. "SERVICE_TECHNICIAN_MINI_APP_URL",
  61. "https://tg.97admin.com/admin/technician",
  62. )
  63. SERVICE_MINI_APP_AUTH_MAX_AGE_SECONDS = _env_int(
  64. "SERVICE_MINI_APP_AUTH_MAX_AGE_SECONDS",
  65. 3600,
  66. )
  67. USERBOT_ENABLED = os.environ.get("USERBOT_ENABLED", "False").lower() in ["true", "1"]
  68. ADMIN_BOOTSTRAP_MODE = os.environ.get("WBB_ADMIN_BOOTSTRAP", "0").lower() in ["true", "1"]
  69. SUPERVISOR_MODE = os.environ.get("WBB_SUPERVISOR_MODE", "0").lower() in ["true", "1"]
  70. BOT_PROFILE_ID = os.environ.get("WBB_BOT_PROFILE_ID", "primary")
  71. BOT_PROFILES_PATH = os.environ.get("BOT_PROFILES_PATH", "runtime/bot_profiles.json")
  72. BOT_WORKER_MODE = os.environ.get("WBB_BOT_WORKER", "0").lower() in ["true", "1"]
  73. SUPERVISOR_INTERNAL_URL = os.environ.get("WBB_SUPERVISOR_INTERNAL_URL", "")
  74. INTERNAL_TOKEN = os.environ.get("WBB_INTERNAL_TOKEN", "")
  75. _BOT_PERMISSIONS_RAW = os.environ.get("WBB_BOT_PERMISSIONS")
  76. BOT_PERMISSIONS = (
  77. {"*"}
  78. if _BOT_PERMISSIONS_RAW is None
  79. else {
  80. item.strip()
  81. for item in _BOT_PERMISSIONS_RAW.split(",")
  82. if item.strip()
  83. }
  84. )