xtao-some 增加 getdel 错误提示,支持生成群组机器人列表。

This commit is contained in:
xtaodada 2021-06-16 22:57:44 +08:00
parent cf2a0defb1
commit 949e0b8a1d
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
2 changed files with 34 additions and 5 deletions

View File

@ -62,13 +62,13 @@
},
{
"name": "xtao-some",
"version": "1.17",
"version": "1.18",
"section": "daily",
"maintainer": "xtaodada",
"size": "18.8 kb",
"supported": true,
"des-short": "一大堆便民功能。",
"des": "超多功能 例如 -ip -ipping -guess -t -getdel 等。"
"des": "超多功能 例如 -ip -ipping -guess -t -getdel -get_bots 等。"
},
{
"name": "yb-dl",

View File

@ -5,7 +5,8 @@ from pagermaid import bot, log
from pagermaid.listener import listener, config
from pagermaid.utils import clear_emojis, obtain_message, attach_log, alias_command
from telethon.errors import ChatAdminRequiredError
from telethon.tl.types import ChannelParticipantsAdmins
from telethon.errors.rpcerrorlist import FloodWaitError
from telethon.tl.types import ChannelParticipantsAdmins, ChannelParticipantsBots, ChannelParticipantAdmin
@listener(is_plugin=True, outgoing=True, command=alias_command("guess"),
@ -291,7 +292,11 @@ async def getdel(context):
if member.deleted:
member_count += 1
if need_kick:
await context.client.kick_participant(context.chat_id, member.id)
try:
await context.client.kick_participant(context.chat_id, member.id)
except FloodWaitError:
await context.edit(context.chat_id, '处理失败,您已受到 TG 服务器限制。')
return
if need_kick:
await context.edit(f'此频道/群组的死号数:`{member_count}`,并且已经清理完毕。')
else:
@ -299,4 +304,28 @@ async def getdel(context):
except ChatAdminRequiredError:
await context.edit('未加入此频道。')
else:
await context.edit("请在在群组/频道发送。")
await context.edit("请在群组/频道发送。")
@listener(is_plugin=True, outgoing=True, command=alias_command("get_bots"),
description="获取当前群组/频道的Bot列表。")
async def get_bots(context):
cid = str(context.chat_id)
pri = cid.startswith('-100')
mentions = '以下是当前群组/频道的 Bot 列表:\n'
admins = []
members = []
if pri:
try:
await context.edit('遍历成员中。。。')
async for x in context.client.iter_participants(context.chat, filter=ChannelParticipantsBots):
if isinstance(x.participant, ChannelParticipantAdmin):
admins.append("⚜️ [{}](tg://user?id={})".format(x.first_name, x.id))
else:
members.append("[{}](tg://user?id={})".format(x.first_name, x.id))
mentions = mentions + '\n'.join(admins) + '\n' + '\n'.join(members)
except Exception as e:
mentions += " " + str(e) + "\n"
await context.edit(mentions)
else:
await context.edit("请在群组/频道发送。")