Fix bugs, add README and Makefile

This commit is contained in:
2026-01-16 20:39:51 +03:00
parent 3e515c66ec
commit a065c6b7be
30 changed files with 695 additions and 286 deletions

View File

@@ -3,6 +3,7 @@ from typing import Any
import aiogram
import fastapi
import uvicorn
import yarl
from birthday_pool_bot.telegram_bot.base import BaseTelegramBotService
@@ -14,9 +15,10 @@ class UvicornServer(uvicorn.Server):
class TelegramBotWebhookService(BaseTelegramBotService):
async def listen_events(self):
webhook_url = yarl.URL(str(self._settings.root_url)) / self._settings.root_path.lstrip("/")
await self._bot.set_webhook(
url=self._settings.url,
secret_token=self._settings.secret_token,
url=str(webhook_url),
secret_token=self._settings.secret_access_key,
)
await self.get_server().serve()
@@ -26,10 +28,9 @@ class TelegramBotWebhookService(BaseTelegramBotService):
root_url=self._settings.root_url,
root_path=self._settings.root_path,
)
app.post("")(self.handler)
app.post(self._webhook_path)(self.handler)
config = uvicorn.Config(app=app, host="0.0.0.0", port=self._port)
config = uvicorn.Config(app=app, host="0.0.0.0", port=self._settings.port)
return UvicornServer(config)
async def handler(
@@ -37,7 +38,7 @@ class TelegramBotWebhookService(BaseTelegramBotService):
update: dict[str, Any],
x_telegram_bot_api_secret_token: str | None = fastapi.Header(None),
):
if x_telegram_bot_api_secret_token != self._secret_token:
if x_telegram_bot_api_secret_token != self._settings.secret_access_key:
raise fastapi.HTTPException(
status_code=fastapi.status.HTTP_403_FORBIDDEN,
detail="Forbidden.",