- Июн
- 1
- 0
Пользователь
Здраствуйте подскажите код для выдачи мута в чатах в библиотеке vkbottle
By registering with us, you'll be able to discuss, share and private message with other members of our community.
SignUp Now! if command in ['mute', 'мут', 'мьют', 'муте', 'addmute']:
if await get_role(user_id, chat_id) < 1:
await message.replyLocalizedMessage('not_preminisionss')
return True
user = int
arg = 0
if message.reply_message:
user = message.reply_message.from_id
arg = 2
elif message.fwd_messages and message.fwd_messages[0].from_id > 0:
user = message.fwd_messages[0].from_id
arg = 2
elif len(arguments) >= 2 and await getID(arguments[1]):
user = await getID(arguments[1])
arg = 3
else:
await message.replyLocalizedMessage('select_user')
return True
if len(arguments) < 4 and arg == 3:
await message.replyLocalizedMessage('command_mute_params')
return True
if len(arguments) < 3 and arg == 2:
await message.replyLocalizedMessage('command_mute_params')
return True
await checkMute(chat_id, user)
if await equals_roles(user_id, user, chat_id, message) < 2:
await message.replyLocalizedMessage('command_mute_preminisionss')
return True
if await get_mute(user, chat_id):
await message.replyLocalizedMessage('command_mute_alyready')
return True
reason = await get_string(arguments, arg)
if not reason:
await message.replyLocalizedMessage('command_mute_not_reason')
return True
if arg == 3: mute_time = arguments[2]
else: mute_time = arguments[1]
try: mute_time = int(mute_time)
except:
await message.replyLocalizedMessage('command_mute_params')
return True
if mute_time < 1 or mute_time > 1000:
await message.replyLocalizedMessage('command_mute_time')
return True
await add_mute(user, chat_id, user_id, reason, mute_time)
await add_mutelog(chat_id, user, user_id, reason, mute_time, "выдан")
do_time = datetime.now() + timedelta(minutes=mute_time)
mute_time = str(do_time).split('.')[0]
keyboard = (
Keyboard(inline=True)
.add(Callback("Снять мут", {"command": "unmute", "user": user, "chatId": chat_id}), color=KeyboardButtonColor.POSITIVE)
.add(Callback("Очистить", {"command": "clear", "chatId": chat_id, "user": user}), color=KeyboardButtonColor.NEGATIVE)
)
await message.replyLocalizedMessage('command_mute', {
'user': f'@id{user_id} ({await get_user_name(user_id, chat_id)})',
'target': f'@id{user} ({await get_user_name(user, chat_id)})',
'reason': reason,
'time_mute': mute_time
}, keyboard=keyboard)
await chats_log(user_id=user_id, target_id=user, role=None, log=f"замутил(-а) @id{user} Мут выдан до: {mute_time}")
await add_punishment(chat_id, user_id)
if await get_sliv(user_id, chat_id) and await get_role(user_id, chat_id) < 5:
await roleG(user_id, chat_id, 0)
await message.reply(
f"❗️ Уровень прав @id{user_id} (пользователя) был снят из-за подозрений в сливе беседы\n\n{await staff_zov(chat_id)}")
а саму функцию мута он типо сам должен написать?Физический писать не сможет:if command in ['mute', 'мут', 'мьют', 'муте', 'addmute']: if await get_role(user_id, chat_id) < 1: await message.replyLocalizedMessage('not_preminisionss') return True user = int arg = 0 if message.reply_message: user = message.reply_message.from_id arg = 2 elif message.fwd_messages and message.fwd_messages[0].from_id > 0: user = message.fwd_messages[0].from_id arg = 2 elif len(arguments) >= 2 and await getID(arguments[1]): user = await getID(arguments[1]) arg = 3 else: await message.replyLocalizedMessage('select_user') return True if len(arguments) < 4 and arg == 3: await message.replyLocalizedMessage('command_mute_params') return True if len(arguments) < 3 and arg == 2: await message.replyLocalizedMessage('command_mute_params') return True await checkMute(chat_id, user) if await equals_roles(user_id, user, chat_id, message) < 2: await message.replyLocalizedMessage('command_mute_preminisionss') return True if await get_mute(user, chat_id): await message.replyLocalizedMessage('command_mute_alyready') return True reason = await get_string(arguments, arg) if not reason: await message.replyLocalizedMessage('command_mute_not_reason') return True if arg == 3: mute_time = arguments[2] else: mute_time = arguments[1] try: mute_time = int(mute_time) except: await message.replyLocalizedMessage('command_mute_params') return True if mute_time < 1 or mute_time > 1000: await message.replyLocalizedMessage('command_mute_time') return True await add_mute(user, chat_id, user_id, reason, mute_time) await add_mutelog(chat_id, user, user_id, reason, mute_time, "выдан") do_time = datetime.now() + timedelta(minutes=mute_time) mute_time = str(do_time).split('.')[0] keyboard = ( Keyboard(inline=True) .add(Callback("Снять мут", {"command": "unmute", "user": user, "chatId": chat_id}), color=KeyboardButtonColor.POSITIVE) .add(Callback("Очистить", {"command": "clear", "chatId": chat_id, "user": user}), color=KeyboardButtonColor.NEGATIVE) ) await message.replyLocalizedMessage('command_mute', { 'user': f'@id{user_id} ({await get_user_name(user_id, chat_id)})', 'target': f'@id{user} ({await get_user_name(user, chat_id)})', 'reason': reason, 'time_mute': mute_time }, keyboard=keyboard) await chats_log(user_id=user_id, target_id=user, role=None, log=f"замутил(-а) @id{user} Мут выдан до: {mute_time}") await add_punishment(chat_id, user_id) if await get_sliv(user_id, chat_id) and await get_role(user_id, chat_id) < 5: await roleG(user_id, chat_id, 0) await message.reply( f"❗️ Уровень прав @id{user_id} (пользователя) был снят из-за подозрений в сливе беседы\n\n{await staff_zov(chat_id)}")
метод messages.changeConversationMemberRestrictions. работает не у всех, у меня лично не работал, у коллеги вполне. c параметрами как на фото
Посмотреть вложение 26024
action: rw означает readwrite - разрешить писать.
action: ro запрещает писать