|
3 | 3 | import base64 |
4 | 4 | import re |
5 | 5 | import asyncio |
| 6 | +import logging |
6 | 7 | from pyrogram import filters |
7 | 8 | from pyrogram.enums import ChatMemberStatus |
8 | 9 | from config import FORCE_SUB_CHANNEL, ADMINS, AUTO_DELETE_TIME, AUTO_DEL_SUCCESS_MSG |
9 | 10 | from pyrogram.errors.exceptions.bad_request_400 import UserNotParticipant |
10 | 11 | from pyrogram.errors import FloodWait |
| 12 | +from datetime import datetime, timedelta |
| 13 | +from apscheduler.schedulers.background import BackgroundScheduler |
| 14 | + |
| 15 | +# Disable apscheduler logging |
| 16 | +apscheduler_logger = logging.getLogger('apscheduler') |
| 17 | +apscheduler_logger.addHandler(logging.NullHandler()) |
| 18 | +apscheduler_logger.propagate = False |
| 19 | + |
| 20 | +# Initialize background scheduler |
| 21 | +scheduler = BackgroundScheduler() |
| 22 | + |
11 | 23 |
|
12 | 24 | async def is_subscribed(filter, client, update): |
13 | 25 | if not FORCE_SUB_CHANNEL: |
@@ -106,14 +118,16 @@ def get_readable_time(seconds: int) -> str: |
106 | 118 | return up_time |
107 | 119 |
|
108 | 120 | async def delete_file(message, client, process): |
109 | | - await asyncio.sleep(AUTO_DELETE_TIME) |
110 | 121 | for msg in message: |
111 | 122 | try: |
112 | | - await client.delete_messages(chat_id=msg.chat.id, message_ids=[msg.id]) |
| 123 | + scheduler.add_job(msg.delete, 'date', run_date=datetime.now() + timedelta(seconds=AUTO_DELETE_TIME)) |
113 | 124 | except Exception as e: |
114 | | - await asyncio.sleep(e.x) |
| 125 | + await asyncio.sleep(e.value) |
115 | 126 |
|
116 | 127 | await process.edit_text(AUTO_DEL_SUCCESS_MSG) |
117 | 128 |
|
118 | 129 |
|
119 | 130 | subscribed = filters.create(is_subscribed) |
| 131 | + |
| 132 | +# start scheduler |
| 133 | +scheduler.start() |
0 commit comments