Skip to content

Commit

Permalink
enhancement: Improve auto-delete to support multiple messages & refac…
Browse files Browse the repository at this point in the history
…tor deletion logic.

## Summary by Sourcery

Enhance the message deletion functionality by allowing multiple messages to be deleted at once after a specified time.  Refactor existing code to use this improved function.

Enhancements:

- Improve the `auto_delete_message` function to accept multiple messages and a custom deletion time.
- Replace specific time-based deletion functions with calls to the enhanced `auto_delete_message` function.
- Update the `delete_message` function to handle multiple messages more efficiently using `asyncio.gather`.
  • Loading branch information
rk-shaju authored Feb 17, 2025
1 parent 44dce27 commit 94914f9
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 43 deletions.
6 changes: 3 additions & 3 deletions bot/helper/listeners/task_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
from bot.helper.mirror_leech_utils.telegram_uploader import TelegramUploader
from bot.helper.telegram_helper.button_build import ButtonMaker
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_status,
five_minute_del,
send_message,
update_status_message,
)
Expand Down Expand Up @@ -482,7 +482,7 @@ async def on_download_error(self, error, button=None):
await self.remove_from_same_dir()
msg = f"{self.tag} Download: {escape(str(error))}"
x = await send_message(self.message, msg, button)
create_task(five_minute_del(x)) # noqa: RUF006
await auto_delete_message(x, time=300) # noqa: RUF006
if count == 0:
await self.clean()
else:
Expand Down Expand Up @@ -521,7 +521,7 @@ async def on_upload_error(self, error):
del task_dict[self.mid]
count = len(task_dict)
x = await send_message(self.message, f"{self.tag} {escape(str(error))}")
create_task(five_minute_del(x)) # noqa: RUF006
await auto_delete_message(x, time=300) # noqa: RUF006
if count == 0:
await self.clean()
else:
Expand Down
30 changes: 8 additions & 22 deletions bot/helper/telegram_helper/message_utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asyncio import sleep
from asyncio import sleep, gather
from re import match as re_match
from time import time

Expand Down Expand Up @@ -153,21 +153,9 @@ async def send_rss(text, chat_id, thread_id):
return str(e)


async def delete_message(message):
try:
await message.delete()
except Exception as e:
LOGGER.error(str(e))


async def one_minute_del(message):
await sleep(60)
await delete_message(message)


async def five_minute_del(message):
await sleep(300)
await delete_message(message)
async def delete_message(*args):
msgs = [msg.delete() for msg in args if msg]
await gather(*msgs, return_exceptions=True)


async def delete_links(message):
Expand All @@ -178,12 +166,10 @@ async def delete_links(message):
await delete_message(message)


async def auto_delete_message(cmd_message=None, bot_message=None):
await sleep(60)
if cmd_message is not None:
await delete_message(cmd_message)
if bot_message is not None:
await delete_message(bot_message)
async def auto_delete_message(*args, time=60):
if time and time > 0:
await sleep(time)
await delete_message(*args)


async def delete_status():
Expand Down
4 changes: 2 additions & 2 deletions bot/modules/clone.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
)
from bot.helper.mirror_leech_utils.status_utils.rclone_status import RcloneStatus
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_links,
delete_message,
five_minute_del,
send_message,
send_status_message,
)
Expand Down Expand Up @@ -72,7 +72,7 @@ async def new_event(self):
if error_msg:
await delete_links(self.message)
error = await send_message(self.message, error_msg, error_button)
return await five_minute_del(error)
return await auto_delete_message(error, time=300)
args = {
"link": "",
"-i": 0,
Expand Down
4 changes: 2 additions & 2 deletions bot/modules/mediainfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
from bot.helper.telegram_helper.bot_commands import BotCommands
from bot.helper.telegram_helper.button_build import ButtonMaker
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_links,
edit_message,
five_minute_del,
send_message,
)

Expand Down Expand Up @@ -109,7 +109,7 @@ async def mediainfo(_, message):
if msg is not None:
reply_message = await send_message(message, msg, buttons.build_menu(1))
await delete_links(message)
await five_minute_del(reply_message)
await auto_delete_message(reply_message, time=300)
return
reply = message.reply_to_message
help_msg = (
Expand Down
14 changes: 7 additions & 7 deletions bot/modules/mirror_leech.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
TelegramDownloadHelper,
)
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_links,
five_minute_del,
get_tg_link_message,
send_message,
)
Expand Down Expand Up @@ -85,7 +85,7 @@ async def new_event(self):
if error_msg:
await delete_links(self.message)
error = await send_message(self.message, error_msg, error_button)
return await five_minute_del(error)
return await auto_delete_message(error, time=300)
user_id = self.message.from_user.id if self.message.from_user else ""
args = {
"-doc": False,
Expand Down Expand Up @@ -247,7 +247,7 @@ async def new_event(self):
x = await send_message(self.message, f"ERROR: {e}")
await self.remove_from_same_dir()
await delete_links(self.message)
return await five_minute_del(x)
return await auto_delete_message(x, time=300)

if isinstance(reply_to, list):
self.bulk = reply_to
Expand Down Expand Up @@ -332,7 +332,7 @@ async def new_event(self):
)
await self.remove_from_same_dir()
await delete_links(self.message)
return await five_minute_del(x)
return await auto_delete_message(x, time=300)

if len(self.link) > 0:
LOGGER.info(self.link)
Expand All @@ -343,7 +343,7 @@ async def new_event(self):
x = await send_message(self.message, e)
await self.remove_from_same_dir()
await delete_links(self.message)
return await five_minute_del(x)
return await auto_delete_message(x, time=300)

if (
not self.is_jd
Expand Down Expand Up @@ -374,12 +374,12 @@ async def new_event(self):
x = await send_message(self.message, e)
await self.remove_from_same_dir()
await delete_links(self.message)
return await five_minute_del(x)
return await auto_delete_message(x, time=300)
except Exception as e:
x = await send_message(self.message, e)
await self.remove_from_same_dir()
await delete_links(self.message)
return await five_minute_del(x)
return await auto_delete_message(x, time=300)

if file_ is not None:
create_task(
Expand Down
6 changes: 3 additions & 3 deletions bot/modules/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
from bot.helper.telegram_helper.button_build import ButtonMaker
from bot.helper.telegram_helper.filters import CustomFilters
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_message,
edit_message,
five_minute_del,
send_file,
send_message,
)
Expand Down Expand Up @@ -88,7 +88,7 @@ async def log(_, message):
buttons=buttons.build_menu(1),
)
await delete_message(message)
await five_minute_del(reply_message)
await auto_delete_message(reply_message, time=300)


@new_task
Expand Down Expand Up @@ -127,7 +127,7 @@ def parseline(line):
)
await query.edit_message_reply_markup(None)
await delete_message(message)
await five_minute_del(reply_message)
await auto_delete_message(reply_message, time=300)
except Exception as err:
LOGGER.error(f"TG Log Display : {err!s}")
elif data[2] == "private":
Expand Down
4 changes: 2 additions & 2 deletions bot/modules/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
get_readable_time,
)
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_message,
one_minute_del,
send_message,
)

Expand Down Expand Up @@ -75,7 +75,7 @@ async def bot_stats(_, message):
"""
reply_message = await send_message(message, stats)
await delete_message(message)
await one_minute_del(reply_message)
await auto_delete_message(reply_message)


async def get_version_async(command, regex):
Expand Down
4 changes: 2 additions & 2 deletions bot/modules/ytdlp.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
)
from bot.helper.telegram_helper.button_build import ButtonMaker
from bot.helper.telegram_helper.message_utils import (
auto_delete_message,
delete_links,
delete_message,
edit_message,
five_minute_del,
send_message,
)

Expand Down Expand Up @@ -306,7 +306,7 @@ async def new_event(self):
if error_msg:
await delete_links(self.message)
error = await send_message(self.message, error_msg, error_button)
return await five_minute_del(error)
return await auto_delete_message(error, time=300)
args = {
"-doc": False,
"-med": False,
Expand Down

0 comments on commit 94914f9

Please sign in to comment.