59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
import asyncio
|
||
import logging
|
||
|
||
from typing import Any, Dict
|
||
|
||
from maxapi import Bot, Dispatcher
|
||
from maxapi.filters.middleware import BaseMiddleware
|
||
from maxapi.types import MessageCreated, Command, UpdateUnion
|
||
from maxapi.types.command import Command
|
||
|
||
logging.basicConfig(level=logging.INFO)
|
||
|
||
bot = Bot(token='тут_ваш_токен')
|
||
dp = Dispatcher()
|
||
|
||
|
||
class CheckChatTitleMiddleware(BaseMiddleware):
|
||
async def __call__(
|
||
self,
|
||
event: UpdateUnion,
|
||
):
|
||
|
||
return event.chat.title == 'MAXApi'
|
||
|
||
|
||
@dp.message_created(Command('start'), CheckChatTitleMiddleware())
|
||
async def start(event: MessageCreated):
|
||
await event.message.answer('Это сообщение было отправлено, так как ваш чат называется "MAXApi"!')
|
||
|
||
|
||
class CustomDataMiddleware(BaseMiddleware):
|
||
async def __call__(
|
||
self,
|
||
event: UpdateUnion,
|
||
data: Dict[str, Any]
|
||
):
|
||
|
||
data['custom_data'] = f'Это ID того кто вызвал команду: {event.from_user.user_id}'
|
||
|
||
return data
|
||
|
||
|
||
@dp.message_created(Command('custom_data'), CustomDataMiddleware())
|
||
async def custom_data(event: MessageCreated, custom_data: str):
|
||
await event.message.answer(custom_data)
|
||
|
||
|
||
@dp.message_created(Command('many_middlewares'), CheckChatTitleMiddleware(), CustomDataMiddleware())
|
||
async def many_middlewares(event: MessageCreated, custom_data: str):
|
||
await event.message.answer('Это сообщение было отправлено, так как ваш чат называется "MAXApi"!')
|
||
await event.message.answer(custom_data)
|
||
|
||
|
||
async def main():
|
||
await dp.start_polling(bot)
|
||
|
||
|
||
if __name__ == '__main__':
|
||
asyncio.run(main()) |