122 lines
2.9 KiB
Python
122 lines
2.9 KiB
Python
import asyncio
|
||
import logging
|
||
|
||
from maxapi import Bot, Dispatcher
|
||
from maxapi.types import (
|
||
BotStarted,
|
||
Command,
|
||
MessageCreated,
|
||
CallbackButton,
|
||
MessageCallback,
|
||
BotAdded,
|
||
ChatTitleChanged,
|
||
MessageEdited,
|
||
MessageRemoved,
|
||
UserAdded,
|
||
UserRemoved
|
||
)
|
||
from maxapi.utils.inline_keyboard import InlineKeyboardBuilder
|
||
|
||
logging.basicConfig(level=logging.INFO)
|
||
|
||
bot = Bot('тут_ваш_токен')
|
||
dp = Dispatcher()
|
||
|
||
|
||
@dp.message_created(Command('start'))
|
||
async def hello(event: MessageCreated):
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
builder.row(
|
||
CallbackButton(
|
||
text='Кнопка 1',
|
||
payload='btn_1'
|
||
),
|
||
CallbackButton(
|
||
text='Кнопка 2',
|
||
payload='btn_2',
|
||
)
|
||
)
|
||
builder.add(
|
||
CallbackButton(
|
||
text='Кнопка 3',
|
||
payload='btn_3',
|
||
)
|
||
)
|
||
|
||
await event.message.answer(
|
||
text='Привет!',
|
||
attachments=[
|
||
builder.as_markup(),
|
||
] # Для MAX клавиатура это вложение,
|
||
) # поэтому она в списке вложений
|
||
|
||
|
||
@dp.bot_added()
|
||
async def bot_added(event: BotAdded):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat.id,
|
||
text=f'Привет чат {event.chat.title}!'
|
||
)
|
||
|
||
|
||
@dp.message_removed()
|
||
async def message_removed(event: MessageRemoved):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat_id,
|
||
text='Я всё видел!'
|
||
)
|
||
|
||
|
||
@dp.bot_started()
|
||
async def bot_started(event: BotStarted):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat_id,
|
||
text='Привет! Отправь мне /start'
|
||
)
|
||
|
||
|
||
@dp.chat_title_changed()
|
||
async def chat_title_changed(event: ChatTitleChanged):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat_id,
|
||
text=f'Крутое новое название "{event.chat.title}!"'
|
||
)
|
||
|
||
|
||
@dp.message_callback()
|
||
async def message_callback(event: MessageCallback):
|
||
await event.answer(
|
||
new_text=f'Вы нажали на кнопку {event.callback.payload}!'
|
||
)
|
||
|
||
|
||
@dp.message_edited()
|
||
async def message_edited(event: MessageEdited):
|
||
await event.message.answer(
|
||
text='Вы отредактировали сообщение!'
|
||
)
|
||
|
||
|
||
@dp.user_removed()
|
||
async def user_removed(event: UserRemoved):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat_id,
|
||
text=f'{event.from_user.first_name} кикнул {event.user.first_name} 😢'
|
||
)
|
||
|
||
|
||
@dp.user_added()
|
||
async def user_added(event: UserAdded):
|
||
await event.bot.send_message(
|
||
chat_id=event.chat_id,
|
||
text=f'Чат "{event.chat.title}" приветствует вас, {event.user.first_name}!'
|
||
)
|
||
|
||
|
||
async def main():
|
||
await dp.start_polling(bot)
|
||
|
||
|
||
if __name__ == '__main__':
|
||
asyncio.run(main()) |