61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import re
|
||
import asyncio
|
||
import logging
|
||
from datetime import datetime
|
||
from aiogram import F
|
||
from aiogram.types import Message
|
||
from aiogram.filters import Command, CommandObject, CommandStart
|
||
from aiogram import Bot, Dispatcher, types
|
||
from aiogram.client.default import DefaultBotProperties
|
||
from aiogram.enums import ParseMode
|
||
|
||
from config_reader import config
|
||
|
||
# Включаем логирование, чтобы не пропустить важные сообщения
|
||
logging.basicConfig(level=logging.INFO)
|
||
|
||
# Для записей с типом Secret* необходимо
|
||
# вызывать метод get_secret_value(),
|
||
# чтобы получить настоящее содержимое вместо '*******'
|
||
bot = Bot(
|
||
token=config.bot_token.get_secret_value(),
|
||
default=DefaultBotProperties(
|
||
parse_mode=ParseMode.HTML
|
||
# тут ещё много других интересных настроек
|
||
))
|
||
|
||
# Объект бота напрямую из .env
|
||
# bot = Bot(token=os.getenv("BOT_TOKEN"))
|
||
|
||
# Диспетчер
|
||
dp = Dispatcher()
|
||
dp["started_at"] = datetime.now().strftime("%Y-%m-%d %H:%M")
|
||
|
||
@dp.message(Command("help"))
|
||
@dp.message(CommandStart(
|
||
deep_link=True, magic=F.args == "help"
|
||
))
|
||
async def cmd_start_help(message: Message):
|
||
await message.answer("Это сообщение со справкой")
|
||
|
||
|
||
@dp.message(CommandStart(
|
||
deep_link=True,
|
||
magic=F.args.regexp(re.compile(r'book_(\d+)'))
|
||
))
|
||
async def cmd_start_book(
|
||
message: Message,
|
||
command: CommandObject
|
||
):
|
||
book_number = command.args.split("_")[1]
|
||
await message.answer(f"Sending book №{book_number}")
|
||
|
||
# Запуск процесса поллинга новых апдейтов
|
||
async def main():
|
||
# Регистрируем хэндлер cmd_test2 по команде /start
|
||
# Запускаем бота
|
||
await dp.start_polling(bot)
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(main())
|