1
0
mirror of https://github.com/civsocit/olgram.git synced 2025-05-24 14:23:25 +00:00
olgram/olgram/commands/bot.py
2021-09-06 02:03:04 +03:00

67 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Здесь работа с конкретным ботом
"""
from aiogram import types, Bot as AioBot
from aiogram.dispatcher import FSMContext
from aiogram.utils.callback_data import CallbackData
from textwrap import dedent
from olgram.utils.mix import try_delete_message
from olgram.models.models import Bot, User
from olgram.router import dp
# Пользователь выбрал бота
select_bot = CallbackData('bot_select', 'bot_id')
# Пользователь выбрал, что хочет сделать со своим ботом
bot_operation = CallbackData('bot_operation', 'bot_id', 'operation')
# Пользователь выбрал чат
select_bot_chat = CallbackData('chat_select', 'bot_id', 'chat_id')
# Пользователь выбрал чат - личные сообщения
select_bot_chat_personal = CallbackData('chat_select_personal', 'bot_id')
async def delete_bot_callback(bot: Bot, call: types.CallbackQuery, callback_data: dict, state: FSMContext):
"""
Кнопка "удалить" для бота
"""
await bot.delete()
await call.answer("Бот удалён")
await try_delete_message(call.message)
async def chat_selected_callback(bot: Bot, call: types.CallbackQuery, callback_data: dict, state: FSMContext):
"""
Пользователь выбрал групповой чат для бота
"""
chat_id = callback_data["chat_id"]
chat = await bot.group_chats.filter(id=chat_id).first()
if not chat:
await call.answer("Нельзя привязать бота к этому чату")
return
bot.group_chat = chat
await bot.save()
await call.answer(f"Выбран чат {chat.name}")
async def chat_selected_personal_callback(bot: Bot, call: types.CallbackQuery, callback_data: dict, state: FSMContext):
"""
Пользователь выбрал личный чат для бота
"""
bot.group_chat = None
await bot.save()
await call.answer(f"Выбран личный чат")
async def text_bot_callback(bot: Bot, call: types.CallbackQuery, callback_data: dict, state: FSMContext):
"""
Кнопка "текст" для бота
"""
await AioBot.get_current().send_message(call.message.chat.id, dedent(f"""
Текущий текст бота по кнопке start:
{bot.start_text}
"""))