Добавлена команда исключения участника.

This commit is contained in:
Kirill Kirilenko 2025-09-21 20:11:33 +03:00
parent 7ac6cd9bd1
commit b11b3ab16d
2 changed files with 35 additions and 1 deletions

View file

@ -1,4 +1,4 @@
from vkbottle import bold from vkbottle import bold, VKAPIError
from vkbottle.bot import Message from vkbottle.bot import Message
from vkbottle_types.codegen.objects import MessagesGetConversationMembers from vkbottle_types.codegen.objects import MessagesGetConversationMembers
@ -157,3 +157,36 @@ async def warning_handler(message: Message):
user['warnings'], user['warnings'],
utils.make_word_agree_with_number(user['warnings'], 'предупреждение')) utils.make_word_agree_with_number(user['warnings'], 'предупреждение'))
) )
@labeler.chat_message(text="!исключить")
async def ban_handler(message: Message):
chat_id = message.peer_id
chat = database.create_chat_if_not_exists(chat_id)
if chat['active'] == 0:
await message.answer(MESSAGE_CHAT_NOT_ACTIVE)
return
chat_members = await message.ctx_api.messages.get_conversation_members(peer_id=chat_id, extended=False)
if not vk_user_is_admin(message.from_id, chat_members):
await message.answer(MESSAGE_PERMISSION_DENIED)
return
if message.reply_message is None:
await message.answer(MESSAGE_NEED_REPLY)
return
user_id = message.reply_message.from_id
try:
await message.ctx_api.messages.remove_chat_user(chat_id - 2000000000, member_id=user_id)
if user_id > 0:
database.DB.delete_user(chat_id, user_id)
user_info = await message.ctx_api.users.get(user_ids=[user_id])
await message.answer('Участник {} {} исключен.'.format(user_info[0].first_name, user_info[0].last_name))
except VKAPIError as e:
print(e)
await message.answer('Извините, у меня не получилось исключить этого участника.')

View file

@ -57,6 +57,7 @@ async def rules_handler(message: Message):
response += '!возвращение* - изменить приветствие при возвращении\n' response += '!возвращение* - изменить приветствие при возвращении\n'
response += '!деньрождения* - изменить уведомление о дне рождения\n' response += '!деньрождения* - изменить уведомление о дне рождения\n'
response += '!предупреждение* - выдать предупреждение участнику\n' response += '!предупреждение* - выдать предупреждение участнику\n'
response += '!исключить* - навсегда исключить участника\n'
response += '\n' response += '\n'
response += italic('Команды с пометкой * нужно вызывать в ответном сообщении.') response += italic('Команды с пометкой * нужно вызывать в ответном сообщении.')