Skip to content

Commit

Permalink
Фикс Local Bot API.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zensonaton committed Dec 30, 2023
1 parent e6a8d7b commit d6e0c32
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
6 changes: 4 additions & 2 deletions src/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ class Configuration(BaseSettings):

telegram_token: SecretStr = Field(..., description="Токен для Telegram-бота, который можно получить у @BotFather", env="telegram_token")
"""Токен для Telegram-бота, который можно получить у @BotFather."""
telegram_local_api_url: str | None = Field(None, description="URL для Local Bot API. Чаще всего используется `http://localhost:8082`", env="telegram_local_api_url")
"""URL для Local Bot API. Чаще всего используется `http://localhost:8082`."""
telegram_local_api_url: str | None = Field(None, description="URL для Local Bot API. Чаще всего используется `http://localhost:8081`", env="telegram_local_api_url")
"""URL для Local Bot API. Чаще всего используется `http://localhost:8081`."""
telegram_local_file_url: str | None = Field(None, description="URL для хранимых файлов Local Bot API. Чаще всего используется `http://localhost:8080`", env="telegram_local_file_url")
"""URL для хранимых файлов Local Bot API. Чаще всего используется `http://localhost:8080`."""
minibot_tokens: SecretStr = Field("", description="Список токенов для Telegram мини ботов, которые можно получить у @BotFather. Все эти токены должны разделяться запятой", env="minibot_tokens")
"""Список токенов для Telegram мини ботов, которые можно получить у @BotFather. Все эти токены должны разделяться запятой."""

Expand Down
2 changes: 1 addition & 1 deletion src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ async def bot_init() -> None:
# Логирование.
init_logger(debug=config.debug)

logger.info(f"Привет, мир! Запускаем Telehooper commit {await utils.get_commit_hash() or '<неизвестно>'}... {'с Local Bot API' if utils.is_local_bot_api() else ''}")
logger.info(f"Привет, мир! Запускаем Telehooper commit {await utils.get_commit_hash() or '<неизвестно>'} {'с Local Bot API' if utils.is_local_bot_api() else ''}...")

# Проверяем на debug-режим.
if config.debug:
Expand Down
11 changes: 7 additions & 4 deletions src/telegram/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import pkgutil
import re
from types import ModuleType
from typing import cast

from aiocouch import Document
from aiogram import Bot, Dispatcher
Expand All @@ -24,15 +25,17 @@
from DB import get_db
from services.vk.service import VKServiceAPI


bot = Bot(
token=config.telegram_token.get_secret_value(),
parse_mode="HTML",
session=AiohttpSession(
api=TelegramAPIServer.from_base(
config.telegram_local_api_url,
is_local=True
api=TelegramAPIServer(
f"{config.telegram_local_api_url}/bot{{token}}/{{method}}",
f"{config.telegram_local_file_url}/file/bot{{token}}/{{path}}",
is_local=False # Если указать True, то бот немного ломается.
)
) if config.telegram_local_api_url else None
) if utils.is_local_bot_api() else None
)
dispatcher = Dispatcher()
username: str | None
Expand Down
2 changes: 1 addition & 1 deletion src/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ def is_local_bot_api() -> bool:
Возвращает True, если используется Local Bot API.
"""

return bool(config.telegram_local_api_url)
return bool(config.telegram_local_api_url and config.telegram_local_file_url)

def max_upload_bytes() -> int:
"""
Expand Down

0 comments on commit d6e0c32

Please sign in to comment.