dme 简化代码量

This commit is contained in:
xtaodada 2022-01-16 20:43:13 +08:00
parent 800acfb6bd
commit 4805ecfd50
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
2 changed files with 5 additions and 63 deletions

64
dme.py
View File

@ -1,70 +1,12 @@
""" Module to automate message deletion. """
from asyncio import sleep
from pagermaid import log
from pagermaid.listener import listener
from pagermaid.utils import alias_command, lang
from pagermaid.modules.prune import selfprune
@listener(is_plugin=False, outgoing=True, command=alias_command("dme"),
description=lang('sp_des'),
parameters=lang('sp_parameters'))
async def selfprune(context):
async def dme(context):
""" Deletes specific amount of messages you sent. """
msgs = []
count_buffer = 0
if not len(context.parameter) == 1:
if not context.reply_to_msg_id:
await context.edit(lang('arg_error'))
return
async for msg in context.client.iter_messages(
context.chat_id,
from_user="me",
min_id=context.reply_to_msg_id,
):
msgs.append(msg)
count_buffer += 1
if len(msgs) == 100:
await context.client.delete_messages(context.chat_id, msgs)
msgs = []
if msgs:
await context.client.delete_messages(context.chat_id, msgs)
if count_buffer == 0:
await context.delete()
count_buffer += 1
await log(f"{lang('prune_hint1')}{lang('sp_hint')} {str(count_buffer)} {lang('prune_hint2')}")
notification = await send_prune_notify(context, count_buffer, count_buffer)
await sleep(1)
await notification.delete()
return
try:
count = int(context.parameter[0])
await context.delete()
except ValueError:
await context.edit(lang('arg_error'))
return
async for message in context.client.iter_messages(context.chat_id, from_user="me"):
if count_buffer == count:
break
msgs.append(message)
count_buffer += 1
if len(msgs) == 100:
await context.client.delete_messages(context.chat_id, msgs)
msgs = []
if msgs:
await context.client.delete_messages(context.chat_id, msgs)
await log(f"{lang('prune_hint1')}{lang('sp_hint')} {str(count_buffer)} / {str(count)} {lang('prune_hint2')}")
try:
notification = await send_prune_notify(context, count_buffer, count)
await sleep(1)
await notification.delete()
except ValueError:
pass
async def send_prune_notify(context, count_buffer, count):
return await context.client.send_message(
context.chat_id,
lang('spn_deleted')
+ str(count_buffer) + " / " + str(count)
+ lang('prune_hint2')
)
await selfprune(context)

View File

@ -832,10 +832,10 @@
},
{
"name": "dme",
"version": "1.2",
"version": "1.201",
"section": "chat",
"maintainer": "xtaodada",
"size": "4.3 kb",
"size": "0.4 kb",
"supported": true,
"des-short": "删除当前对话您发送的特定数量的消息。",
"des": "删除当前对话您发送的特定数量的消息。"