mirror of
https://github.com/ArtzSU/SRSP-bot.git
synced 2026-09-17 05:48:54 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from aiogram.filters import Command
|
||||
from aiogram.enums import ParseMode, ChatType
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
from aiogram import (
|
||||
F,
|
||||
Bot,
|
||||
html,
|
||||
Dispatcher,
|
||||
)
|
||||
from aiogram.types import (
|
||||
Message,
|
||||
FSInputFile,
|
||||
BotCommand,
|
||||
)
|
||||
|
||||
from Modules.getAnecdote import getAnecdote
|
||||
|
||||
import config
|
||||
|
||||
from keyboard import main_kb
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG if config.DEBUG else logging.INFO,
|
||||
format='%(asctime)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
|
||||
dp = Dispatcher()
|
||||
bot = Bot(
|
||||
token=config.TOKEN,
|
||||
default=DefaultBotProperties(
|
||||
parse_mode=ParseMode.HTML
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
async def set_commands(service: Bot):
|
||||
"""
|
||||
Регистрация команд бота в меню команд Telegram
|
||||
"""
|
||||
commands = [
|
||||
BotCommand(command="start", description="Start the bot"),
|
||||
BotCommand(command="help", description="Help"),
|
||||
BotCommand(command="team_members", description="Show members of development team"),
|
||||
BotCommand(command="documentation", description="Show documentation"),
|
||||
BotCommand(command="presentation", description="Show presentation"),
|
||||
]
|
||||
|
||||
await service.set_my_commands(commands)
|
||||
logger.info("Команды бота успешно зарегистрированы")
|
||||
|
||||
|
||||
|
||||
@dp.message(Command("start"))
|
||||
async def command_start_handler(message: Message) -> None:
|
||||
"""
|
||||
Handler for the `/start` command
|
||||
"""
|
||||
|
||||
await message.reply(
|
||||
text=f"Hello, {html.bold(message.from_user.full_name)}! {await getAnecdote()}",
|
||||
reply_markup=main_kb
|
||||
)
|
||||
|
||||
|
||||
@dp.message(Command("team_members"))
|
||||
async def command_of_devers(message: Message):
|
||||
"""
|
||||
Handler for the `/team_members` command
|
||||
"""
|
||||
|
||||
await message.reply(text=config.TEAM_MEMBERS_STR)
|
||||
|
||||
|
||||
@dp.message(Command("help"))
|
||||
async def cmd_help(message: Message):
|
||||
"""
|
||||
Handler for the `/help` command
|
||||
"""
|
||||
|
||||
await message.reply(
|
||||
text = """Вот список команд:
|
||||
/start - начать работу
|
||||
/help - вывести это сообщение
|
||||
/documentation - отправляет отчет проделанной работы
|
||||
/presentation - отправляет презентацию о боте"""
|
||||
|
||||
)
|
||||
|
||||
|
||||
@dp.message(Command("documentation"))
|
||||
async def cmd_doc(message: Message):
|
||||
"""
|
||||
Handler for the `/documentation` command
|
||||
"""
|
||||
|
||||
await message.reply_document(
|
||||
document=FSInputFile(path="assets/tech_doc.docx", filename="техническая документация.docx")
|
||||
)
|
||||
|
||||
|
||||
@dp.message(Command("presentation"))
|
||||
async def cmd_presentation(message: Message):
|
||||
"""
|
||||
Handler for the `/presentation` command
|
||||
"""
|
||||
|
||||
await message.reply_document(
|
||||
document=FSInputFile(path="assets/pressetation.pptx", filename="презентация.pptx")
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
"""
|
||||
Main function to start the bot
|
||||
"""
|
||||
|
||||
logging.info("Starting bot")
|
||||
|
||||
dp.message.filter(F.chat.type == ChatType.PRIVATE)
|
||||
dp.callback_query.filter(F.message.chat.type == ChatType.PRIVATE)
|
||||
|
||||
await set_commands(bot)
|
||||
await bot.delete_webhook(drop_pending_updates=True)
|
||||
await dp.start_polling(bot)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user