sample_config.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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_REVIEW_FORUM_CHAT_ID = os.environ.get("SERVICE_REVIEW_FORUM_CHAT_ID", "")
  56. SERVICE_REVIEW_FORUM_USERNAME = os.environ.get(
  57. "SERVICE_REVIEW_FORUM_USERNAME", ""
  58. )
  59. SERVICE_CUSTOMER_MAX_OPEN_ORDERS = _env_int("SERVICE_CUSTOMER_MAX_OPEN_ORDERS", 3)
  60. SERVICE_CUSTOMER_DAILY_REQUEST_LIMIT = _env_int(
  61. "SERVICE_CUSTOMER_DAILY_REQUEST_LIMIT", 10
  62. )
  63. SERVICE_TECHNICIAN_MINI_APP_URL = os.environ.get(
  64. "SERVICE_TECHNICIAN_MINI_APP_URL",
  65. "https://tg.97admin.com/admin/technician",
  66. )
  67. SERVICE_MINI_APP_AUTH_MAX_AGE_SECONDS = _env_int(
  68. "SERVICE_MINI_APP_AUTH_MAX_AGE_SECONDS",
  69. 3600,
  70. )
  71. BUSINESS_ASSISTANT_OPENAI_BASE_URL = os.environ.get(
  72. "BUSINESS_ASSISTANT_OPENAI_BASE_URL", ""
  73. )
  74. BUSINESS_ASSISTANT_OPENAI_API_KEY = os.environ.get(
  75. "BUSINESS_ASSISTANT_OPENAI_API_KEY", ""
  76. )
  77. BUSINESS_ASSISTANT_OPENAI_MODEL = os.environ.get(
  78. "BUSINESS_ASSISTANT_OPENAI_MODEL", ""
  79. )
  80. BUSINESS_ASSISTANT_OPENAI_TIMEOUT_SECONDS = _env_int(
  81. "BUSINESS_ASSISTANT_OPENAI_TIMEOUT_SECONDS", 30
  82. )
  83. BUSINESS_ASSISTANT_OPENAI_MAX_OUTPUT_TOKENS = _env_int(
  84. "BUSINESS_ASSISTANT_OPENAI_MAX_OUTPUT_TOKENS", 600
  85. )
  86. USERBOT_ENABLED = os.environ.get("USERBOT_ENABLED", "False").lower() in ["true", "1"]
  87. ADMIN_BOOTSTRAP_MODE = os.environ.get("WBB_ADMIN_BOOTSTRAP", "0").lower() in ["true", "1"]
  88. SUPERVISOR_MODE = os.environ.get("WBB_SUPERVISOR_MODE", "0").lower() in ["true", "1"]
  89. BOT_PROFILE_ID = os.environ.get("WBB_BOT_PROFILE_ID", "primary")
  90. BOT_PROFILES_PATH = os.environ.get("BOT_PROFILES_PATH", "runtime/bot_profiles.json")
  91. BOT_WORKER_MODE = os.environ.get("WBB_BOT_WORKER", "0").lower() in ["true", "1"]
  92. SUPERVISOR_INTERNAL_URL = os.environ.get("WBB_SUPERVISOR_INTERNAL_URL", "")
  93. INTERNAL_TOKEN = os.environ.get("WBB_INTERNAL_TOKEN", "")
  94. _BOT_PERMISSIONS_RAW = os.environ.get("WBB_BOT_PERMISSIONS")
  95. BOT_PERMISSIONS = (
  96. {"*"}
  97. if _BOT_PERMISSIONS_RAW is None
  98. else {
  99. item.strip()
  100. for item in _BOT_PERMISSIONS_RAW.split(",")
  101. if item.strip()
  102. }
  103. )