understanding commited on
Commit
278122e
·
verified ·
1 Parent(s): 6758e52

Update bot/__main__.py

Browse files
Files changed (1) hide show
  1. bot/__main__.py +22 -8
bot/__main__.py CHANGED
@@ -2,21 +2,39 @@
2
  import asyncio
3
  from logging import getLogger
4
  from logging.config import dictConfig
5
-
6
  from uvicorn import Config as UvicornConfig, Server as UvicornServer
7
 
8
  from bot.config import Server, LOGGER_CONFIG_JSON
9
  from bot.client import create_client
10
- from bot.handlers import setup_handlers
11
  from bot.startup_log import log_startup
 
12
  from bot.server import create_app
13
 
14
  logger = getLogger("bot")
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  async def main():
17
  dictConfig(LOGGER_CONFIG_JSON)
 
18
 
19
- # Create web app + uvicorn server
20
  quart_app = create_app()
21
  uv_cfg = UvicornConfig(
22
  app=quart_app,
@@ -26,20 +44,16 @@ async def main():
26
  )
27
  uv_server = UvicornServer(uv_cfg)
28
 
29
- # Create Telegram client
30
  app = create_client()
31
  setup_handlers(app)
32
 
33
- # Start telegram first (so you see quickly if TG blocked)
34
  await app.start()
35
  asyncio.create_task(log_startup(app))
36
-
37
- # Start web server
38
  asyncio.create_task(uv_server.serve())
39
 
40
  logger.info("All services started ✅")
41
 
42
- # Idle forever
43
  try:
44
  while True:
45
  await asyncio.sleep(3600)
 
2
  import asyncio
3
  from logging import getLogger
4
  from logging.config import dictConfig
 
5
  from uvicorn import Config as UvicornConfig, Server as UvicornServer
6
 
7
  from bot.config import Server, LOGGER_CONFIG_JSON
8
  from bot.client import create_client
 
9
  from bot.startup_log import log_startup
10
+ from bot.handlers import setup_handlers
11
  from bot.server import create_app
12
 
13
  logger = getLogger("bot")
14
 
15
+ def _validate_required_secrets() -> None:
16
+ from bot.config import Telegram, Workers
17
+
18
+ missing = []
19
+ if not Telegram.API_ID: missing.append("API_ID")
20
+ if not Telegram.API_HASH: missing.append("API_HASH")
21
+ if not Telegram.OWNER_ID: missing.append("OWNER_ID")
22
+ if not (Telegram.SESSION_STRING or Telegram.BOT_TOKEN):
23
+ missing.append("SESSION_STRING (preferred) or BOT_TOKEN")
24
+
25
+ if not Workers.WORKER1_URL: missing.append("WORKER1_URL")
26
+ if not Workers.WORKER2_URL: missing.append("WORKER2_URL")
27
+ if not Workers.BOT_BACKEND_KEY: missing.append("BOT_BACKEND_KEY")
28
+ if not Workers.HF_API_KEY: missing.append("HF_API_KEY")
29
+
30
+ if missing:
31
+ raise RuntimeError("Missing required secrets: " + ", ".join(missing))
32
+
33
  async def main():
34
  dictConfig(LOGGER_CONFIG_JSON)
35
+ _validate_required_secrets()
36
 
37
+ # web server
38
  quart_app = create_app()
39
  uv_cfg = UvicornConfig(
40
  app=quart_app,
 
44
  )
45
  uv_server = UvicornServer(uv_cfg)
46
 
47
+ # telegram
48
  app = create_client()
49
  setup_handlers(app)
50
 
 
51
  await app.start()
52
  asyncio.create_task(log_startup(app))
 
 
53
  asyncio.create_task(uv_server.serve())
54
 
55
  logger.info("All services started ✅")
56
 
 
57
  try:
58
  while True:
59
  await asyncio.sleep(3600)