8abb422725
new features
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from io import BytesIO
|
|
from pyrogram.types import Message
|
|
from pyrogram import Client, filters
|
|
|
|
from config import BOT_USERNAME
|
|
from driver.filters import command
|
|
from driver.decorators import sudo_users_only, get_arg
|
|
from driver.database.data_sql import chatdata, del_chat
|
|
|
|
|
|
@Client.on_message(
|
|
command(["broadcast", f"broadcast@{BOT_USERNAME}"]) & filters.private & ~filters.edited
|
|
)
|
|
@sudo_users_only
|
|
async def broadcast(client: Client, message: Message):
|
|
to_send = get_arg(message)
|
|
success = 0
|
|
failed = 0
|
|
for chat in chatdata()():
|
|
try:
|
|
await client.send_message(
|
|
str(chat),
|
|
to_send
|
|
)
|
|
success += 1
|
|
except BaseException:
|
|
failed += 1
|
|
del_chat(str(chat))
|
|
await message.reply(
|
|
f"Message sent to {success} chat(s). {failed} chat(s) failed recieve message"
|
|
)
|
|
|
|
|
|
@Client.on_message(
|
|
command(["chatlist", f"chatlist@{BOT_USERNAME}"]) & filters.private & ~filters.edited
|
|
)
|
|
@sudo_users_only
|
|
async def chatlist(client, message):
|
|
all_chats = chatdata()
|
|
chats = [i for i in all_chats if str(i).startswith("-")]
|
|
chatfile = "Chat List.\n0. Group ID | Members | Invite Link\n"
|
|
P = 1
|
|
for chat in chats:
|
|
try:
|
|
link = await client.export_chat_invite_link(int(chat))
|
|
except BaseException:
|
|
link = "Null"
|
|
try:
|
|
members = await client.get_chat_members_count(int(chat))
|
|
except BaseException:
|
|
members = "Null"
|
|
try:
|
|
chatfile += f"{P}. {chat} | {members} | {link}\n"
|
|
P += 1
|
|
except BaseException:
|
|
pass
|
|
with BytesIO(str.encode(chatfile)) as output:
|
|
output.name = "chatlist.txt"
|
|
await message.reply_document(document=output, disable_notification=True)
|