from pyrogram import enums
from pyrogram.types import Message
from Powers.bot_class import Gojo
from Powers.database.antispam_db import GBan
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.greetings_db import Greetings
from Powers.database.notes_db import Notes, NotesSettings
from Powers.database.pins_db import Pins
from Powers.database.rules_db import Rules
from Powers.database.users_db import Users
from Powers.database.warns_db import Warns, WarnSettings
from Powers.utils.custom_filters import command
@Gojo.on_message(command("stats", dev_cmd=True))
async def get_stats(c: Gojo, m: Message):
# initialise
bldb = Blacklist
gbandb = GBan()
notesdb = Notes()
rulesdb = Rules
grtdb = Greetings
userdb = Users
dsbl = Disabling
appdb = Approve
chatdb = Chats
fldb = Filters()
pinsdb = Pins
notesettings_db = NotesSettings()
warns_db = Warns
warns_settings_db = WarnSettings
replymsg = await m.reply_text("Fetching Stats...", quote=True)
rply = (
f"Users: {(userdb.count_users())}
in {(chatdb.count_chats())}
chats\n"
f"Anti Channel Pin: {(pinsdb.count_chats('antichannelpin'))}
enabled chats\n"
f"Clean Linked: {(pinsdb.count_chats('cleanlinked'))}
enabled chats\n"
f"Filters: {(fldb.count_filters_all())}
in {(fldb.count_filters_chats())}
chats\n"
f" Aliases: {(fldb.count_filter_aliases())}
\n"
f"Blacklists: {(bldb.count_blacklists_all())}
in {(bldb.count_blackists_chats())}
chats\n"
f" Action Specific:\n"
f" None: {(bldb.count_action_bl_all('none'))}
chats\n"
f" Kick {(bldb.count_action_bl_all('kick'))}
chats\n"
f" Warn: {(bldb.count_action_bl_all('warn'))}
chats\n"
f" Ban {(bldb.count_action_bl_all('ban'))}
chats\n"
f"Rules: Set in {(rulesdb.count_chats_with_rules())}
chats\n"
f" Private Rules: {(rulesdb.count_privrules_chats())}
chats\n"
f"Warns: {(warns_db.count_warns_total())}
in {(warns_db.count_all_chats_using_warns())}
chats\n"
f" Users Warned: {(warns_db.count_warned_users())}
users\n"
f" Action Specific:\n"
f" Kick: {(warns_settings_db.count_action_chats('kick'))}
\n"
f" Mute: {(warns_settings_db.count_action_chats('mute'))}
\n"
f" Ban: {warns_settings_db.count_action_chats('ban')}
\n"
f"Notes: {(notesdb.count_all_notes())}
in {(notesdb.count_notes_chats())}
chats\n"
f" Private Notes: {(notesettings_db.count_chats())}
chats\n"
f"GBanned Users: {(gbandb.count_gbans())}
\n"
f"Welcoming Users in: {(grtdb.count_chats('welcome'))}
chats\n"
f"Approved People: {(appdb.count_all_approved())}
in {(appdb.count_approved_chats())}
chats\n"
f"Disabling: {(dsbl.count_disabled_all())}
items in {(dsbl.count_disabling_chats())}
chats.\n"
"Action:\n"
f" Del: Applied in {(dsbl.count_action_dis_all('del'))}
chats.\n"
)
try:
await replymsg.edit_text(rply, parse_mode=enums.ParseMode.HTML)
except Exception:
await c.send_message(m.chat.id, rply, parse_mode=enums.ParseMode.HTML)
return