mirror of
https://github.com/TeamPGM/PagerMaid_Plugins.git
synced 2024-11-24 10:33:36 +00:00
97 lines
4.5 KiB
Python
97 lines
4.5 KiB
Python
from pagermaid import bot, log, user_id, version
|
|
from pagermaid.listener import listener
|
|
from telethon.errors import rpcerrorlist
|
|
from asyncio import sleep
|
|
from datetime import timedelta
|
|
from pagermaid.utils import alias_command
|
|
|
|
|
|
@listener(is_plugin=True, outgoing=True, command=alias_command("portball"),
|
|
description="回复你要临时禁言的人的消息来实现XX秒的禁言",
|
|
parameters="<理由>(空格)<时间/秒>")
|
|
async def portball(context):
|
|
if context.is_group:
|
|
reply = await context.get_reply_message()
|
|
if reply:
|
|
action = context.arguments.split()
|
|
if reply.sender:
|
|
if reply.sender.last_name is None:
|
|
last_name = ''
|
|
else:
|
|
last_name = reply.sender.last_name
|
|
if reply.sender.id == user_id:
|
|
await context.edit('无法禁言自己。')
|
|
return
|
|
else:
|
|
await context.edit('无法获取所回复的用户。')
|
|
return
|
|
|
|
if len(action) < 2:
|
|
notification = await bot.send_message(context.chat_id, '格式是\n-portball 理由 秒数\n真蠢', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
try:
|
|
await context.delete()
|
|
except:
|
|
pass
|
|
return False
|
|
try:
|
|
int(action[1])
|
|
except ValueError:
|
|
notification = await bot.send_message(context.chat_id, '格式是\n-portball 理由 秒数\n真蠢', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
try:
|
|
await context.delete()
|
|
except:
|
|
pass
|
|
return False
|
|
if int(action[1]) < 60:
|
|
notification = await bot.send_message(context.chat_id, '诶呀不要小于60秒啦', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
try:
|
|
await context.delete()
|
|
except:
|
|
pass
|
|
return False
|
|
try:
|
|
await bot.edit_permissions(context.chat_id, reply.sender.id,
|
|
timedelta(seconds=int(action[1].replace(' ', ''))), send_messages=False,
|
|
send_media=False, send_stickers=False, send_gifs=False, send_games=False,
|
|
send_inline=False, send_polls=False, invite_users=False, change_info=False,
|
|
pin_messages=False)
|
|
portball_message = await bot.send_message(
|
|
context.chat_id,
|
|
f'[{reply.sender.first_name}{last_name}](tg://user?id={reply.sender.id}) 由于 {action[0]} 被塞了{action[1]}秒口球.\n'
|
|
f'到期自动拔出,无后遗症.',
|
|
reply_to=reply.id
|
|
)
|
|
await context.delete()
|
|
await sleep(int(action[1].replace(' ', '')))
|
|
await portball_message.delete()
|
|
except rpcerrorlist.UserAdminInvalidError:
|
|
notification = await bot.send_message(context.chat_id, '错误:我没有管理员权限或我的权限比被封禁的人要小', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
except rpcerrorlist.ChatAdminRequiredError:
|
|
notification = await bot.send_message(context.chat_id, '错误:我没有管理员权限或我的权限比被封禁的人要小', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
except OverflowError:
|
|
notification = await bot.send_message(context.chat_id, '错误:封禁值太大了', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
else:
|
|
notification = await bot.send_message(context.chat_id, '你好蠢诶,都没有回复人,我哪知道你要搞谁的事情……', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
else:
|
|
notification = await bot.send_message(context.chat_id, '你好蠢诶,又不是群组,怎么禁言啦!', reply_to=context.id)
|
|
await sleep(10)
|
|
await notification.delete()
|
|
try:
|
|
await context.delete()
|
|
except:
|
|
pass
|