57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
from aiogram import F, Router
|
||
from aiogram.filters import Command, CommandStart
|
||
from aiogram.types import CallbackQuery, Message
|
||
|
||
from bot.keyboards.inline import get_links_keyboard
|
||
from bot.keyboards.reply import get_main_menu_keyboard
|
||
|
||
router = Router()
|
||
|
||
|
||
@router.message(CommandStart())
|
||
async def cmd_start(message: Message):
|
||
"""
|
||
Handles /start command. Greets user and sends the main reply menu.
|
||
"""
|
||
await message.answer(
|
||
f"Hello, {message.from_user.full_name}! Welcome to Frankenstein Bot.\n"
|
||
f"This bot is bootstrapped with a modular and clean structure.",
|
||
reply_markup=get_main_menu_keyboard(),
|
||
)
|
||
|
||
|
||
@router.message(Command("help"))
|
||
@router.message(F.text == "Help ❓")
|
||
async def cmd_help(message: Message):
|
||
"""
|
||
Handles /help command or 'Help ❓' reply keyboard button click.
|
||
"""
|
||
await message.answer(
|
||
"Here is what I can do:\n"
|
||
"/start - Start the bot\n"
|
||
"/help - Get help information\n"
|
||
"/about - Learn more about the bot",
|
||
reply_markup=get_links_keyboard(),
|
||
)
|
||
|
||
|
||
@router.message(Command("about"))
|
||
@router.message(F.text == "About ℹ️")
|
||
async def cmd_about(message: Message):
|
||
"""
|
||
Handles /about command or 'About ℹ️' reply keyboard button click.
|
||
"""
|
||
await message.answer(
|
||
"Frankenstein Bot is a high-performance Python Telegram bot built on aiogram v3, "
|
||
"designed to work seamlessly with systemd process management."
|
||
)
|
||
|
||
|
||
@router.callback_query(F.data == "support_contact")
|
||
async def process_support_callback(callback: CallbackQuery):
|
||
"""
|
||
Processes the inline keyboard callback query 'support_contact'.
|
||
"""
|
||
await callback.message.answer("Support: Open an issue or contact our administrator.")
|
||
await callback.answer()
|