from aiogram import F, Router from aiogram.filters import Command, CommandStart from aiogram.types import CallbackQuery, FSInputFile, InlineKeyboardButton, InlineKeyboardMarkup, Message from .common import count, in_group import db router = Router() ABOUT = ('- Этот АБОБОТ поможет вам приятно провести время в чате с различными командами, ' 'ивентами и удобными функциями, которые облегчают использование чата)\n\n' '- Также прошу если вам понравился бот, оставить отзыв о его использовании на ' 'команду /report)') @router.message(CommandStart()) @router.message(Command('help')) async def helps(message: Message): await db.ensure_user(message.from_user.id) if in_group(message): await count(message, 3, 1) keyboard = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="КОМАНДЫ", callback_data="com"), InlineKeyboardButton(text="ИВЕНТЫ", callback_data="even")], [InlineKeyboardButton(text="АВТОР", callback_data="auth"), InlineKeyboardButton(text="ФУНКЦИИ", callback_data="fun")] ]) try: await message.answer_voice(voice=FSInputFile('../data/tts.ogg'), caption=ABOUT, reply_markup=keyboard) except Exception: await message.answer(ABOUT, reply_markup=keyboard) @router.callback_query(F.data == "auth") async def author(call: CallbackQuery): await call.message.answer( '| АВТОР |\n\n>> Этот бот, как бы это не печально звучало, но одна из лучших' ' моих работ и если кого-нибудь у меня получится действительно достойный продукт,' ' вы сможете о нём узнать в моём телеграм канале @programium') @router.callback_query(F.data == "fun") async def function(call: CallbackQuery): await call.message.answer( '| ФУНКЦИИ |\n\n1. Возможность перевода случайно написанного текста на ' 'транслите\n2. Ведение обширной статистики сообщений\n3. Упоминание участника ' 'при написании его имени в чате\n4. Автоматическое удаление системных сообщений') @router.callback_query(F.data == "com") async def commands(call: CallbackQuery): await call.message.answer( '| КОМАНДЫ |\n\n/all - упомянуть всех в чате\n/help - полный список функций\n' '/recognize - транскрипция отмеченного голосового сообщения в текст\n' '/stat_group - полная статистика группы\n/stat_user - полная статистика ' 'отправителя\n/top - самые активные участники (/top all - за всё время)\n' '/month - итоги месяца (/month 2026-09 - за любой месяц)\n' '/edit и /back_edit - первая команда даёт возможность ' 'сменить имя для упоминаний на любое слово, а вторая для возврата динамического ' 'имени\n/settings - настройки бота в чате\n' '/start_bot и /stop_bot - возможность отключения текстовых ивентов') @router.callback_query(F.data == "even") async def events(call: CallbackQuery): await call.message.answer( '| ИВЕНТЫ |\n\n"Чмокнуть" - сделать кому-нибудь приятно\n"Отмудохать" - ' 'выместить злость на кого-нибудь\n"Число от ... до ..." - случайное значение из ' 'диапозона\n"Подраться с ..." - повод кого-нибудь побить\n"Переведи (..) - ..." ' '- перевод слова на керпичный язык\n"Дай блять совет!" - даёт рандомный охуенный ' 'совет\n"Переверни - ..." - переворачивает слова в предложении\n"Озвучь - ..." ' '- озвучивает написанный текст')