from vk_maria import Vk, types
from vk_maria.dispatcher import Dispatcher
from vk_maria.dispatcher.filters import AbstractFilter
class ChatInviteUser(AbstractFilter):
def check(self, event: types.MessageEvent):
if 'action' in event.message:
return event.message.action.type == "chat_invite_user"
vk = Vk(access_token='')
dp = Dispatcher(vk)
@dp.event_handler(types.EventType.MESSAGE_NEW, ChatInviteUser)
def handle_chat_invite_user(event: types.MessageEvent):
event.answer(f"Добро пожаловать в беседу, {event.message.from_id=}")
if __name__ == '__main__':
dp.start_polling(debug=True)
from aiogram import types
from aiogram.dispatcher.filters import Filter, Command
class CommandNotInListFilter(Filter):
def __init__(self, commands: Command):
self.commands = commands
def check(self, message: types.Message) -> bool:
if not message.text.startswith('/'):
return False
return message.text[1:] in self.commands.commands
@dp.message_handler(
CommandNotInListFilter(Command(['start', 'help']))
)
async def handle_unknown_commands(message: types.Message):
await message.reply("Данной команды не существует!")
from itertools import chain
from more_itertools import grouper
data = [[1, 2, 3], [4, 5, 6], [6, 7, 8], [1, 2]]
res = [[el for el in group if el is not None]
for group in grouper(chain.from_iterable(data), 4)]
# [[1, 2, 3, 4], [5, 6, 6, 7], [8, 1, 2]]