Spaces:
Paused
Paused
Download Powers/plugins/clean_db.py from Dragdev/telegrambot: direct link, hf CLI and curl.
- Browser
- Download file 2.76 kB
-
https://huggingface.co/spaces/Dragdev/telegrambot/resolve/1e94de4f3d33dbf849b4f7ee27abd0e5fc348f14/Powers/plugins/clean_db.py
- Command line
-
hf download hf://spaces/Dragdev/telegrambot@1e94de4f3d33dbf849b4f7ee27abd0e5fc348f14/Powers/plugins/clean_db.py
-
curl -L -o clean_db.py https://huggingface.co/spaces/Dragdev/telegrambot/resolve/1e94de4f3d33dbf849b4f7ee27abd0e5fc348f14/Powers/plugins/clean_db.py
2.76 kB
| import time | |
| from asyncio import sleep | |
| from traceback import format_exc | |
| from apscheduler.schedulers.asyncio import AsyncIOScheduler | |
| from pyrogram.enums import ChatMemberStatus as CMS | |
| from pyrogram.errors import PeerIdInvalid, UserNotParticipant | |
| from Powers import LOGGER, MESSAGE_DUMP, TIME_ZONE | |
| from Powers.bot_class import Gojo | |
| from Powers.database.approve_db import Approve | |
| from Powers.database.blacklist_db import Blacklist | |
| from Powers.database.chats_db import Chats | |
| from Powers.database.disable_db import Disabling | |
| from Powers.database.filters_db import Filters | |
| from Powers.database.flood_db import Floods | |
| from Powers.database.greetings_db import Greetings | |
| from Powers.database.notes_db import Notes, NotesSettings | |
| from Powers.database.pins_db import Pins | |
| from Powers.database.reporting_db import Reporting | |
| # from Powers.database.users_db import Users | |
| from Powers.database.warns_db import Warns, WarnSettings | |
| from Powers.utils.custom_filters import command | |
| from Powers.vars import Config | |
| async def clean_my_db(c:Gojo,is_cmd=False, id=None): | |
| to_clean = list() | |
| chats_list = Chats.list_chats_by_id() | |
| to_clean.clear() | |
| start = time.time() | |
| for chats in chats_list: | |
| try: | |
| stat = await c.get_chat_member(chat_id=chats,user_id=Config.BOT_ID) | |
| if stat.status not in [CMS.MEMBER, CMS.ADMINISTRATOR, CMS.OWNER]: | |
| to_clean.append(chats) | |
| except UserNotParticipant: | |
| to_clean.append(chats) | |
| except Exception as e: | |
| LOGGER.error(e) | |
| LOGGER.error(format_exc()) | |
| if not is_cmd: | |
| return e | |
| else: | |
| to_clean.append(chats) | |
| for i in to_clean: | |
| Approve(i).clean_approve() | |
| Blacklist(i).clean_blacklist() | |
| Chats.remove_chat(i) | |
| Disabling(i).clean_disable() | |
| Filters().rm_all_filters(i) | |
| Floods().rm_flood(i) | |
| Greetings(i).clean_greetings() | |
| Notes().rm_all_notes(i) | |
| NotesSettings().clean_notes(i) | |
| Pins(i).clean_pins() | |
| Reporting(i).clean_reporting() | |
| Warns(i).clean_warn() | |
| WarnSettings(i).clean_warns() | |
| x = len(to_clean) | |
| txt = f"#INFO\n\nCleaned db:\nTotal chats removed: {x}" | |
| to_clean.clear() | |
| nums = time.time()-start | |
| if is_cmd: | |
| txt += f"\nClean type: Forced\nInitiated by: {(await c.get_users(user_ids=id)).mention}" | |
| txt += f"\nClean type: Manual\n\tTook {round(nums,2)} seconds to complete the process" | |
| await c.send_message(chat_id=MESSAGE_DUMP,text=txt) | |
| return txt | |
| else: | |
| txt += f"\nClean type: Auto\n\tTook {round(nums,2)} seconds to complete the process" | |
| await c.send_message(chat_id=MESSAGE_DUMP,text=txt) | |
| return txt | |