From 64762cea0e30443cf92e1a3e658c800f820c72de Mon Sep 17 00:00:00 2001 From: levina <82658782+levina-lab@users.noreply.github.com> Date: Sun, 23 Jan 2022 19:45:37 +0700 Subject: [PATCH] create broadcast --- program/extra.py | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 program/extra.py diff --git a/program/extra.py b/program/extra.py new file mode 100644 index 0000000..782c50c --- /dev/null +++ b/program/extra.py @@ -0,0 +1,112 @@ +""" broadcast & statistic collector """ + +import asyncio +from pyrogram import Client, filters +from pyrogram.types import Message +from driver.filters import command +from driver.decorators import sudo_users_only +from driver.database.dbchat import get_served_chats + +from config import BOT_USERNAME as bn + + +@Client.on_message(command(["broadcast", f"broadcast@{bn}"]) & ~filters.edited) +@sudo_users_only +async def broadcast(c: Client, message: Message): + if not message.reply_to_message: + pass + else: + x = message.reply_to_message.message_id + y = message.chat.id + sent = 0 + chats = [] + schats = await get_served_chats() + for chat in schats: + chats.append(int(chat["chat_id"])) + for i in chats: + try: + m = await c.forward_messages(i, y, x) + await asyncio.sleep(0.3) + sent += 1 + except Exception: + pass + await message.reply_text(f"āœ… Broadcast complete in {sent} Group.") + return + if len(message.command) < 2: + await message.reply_text( + "**usage**:\n\n/broadcast (`message`) or (`reply to message`)" + ) + return + text = message.text.split(None, 1)[1] + sent = 0 + chats = [] + schats = await get_served_chats() + for chat in schats: + chats.append(int(chat["chat_id"])) + for i in chats: + try: + m = await c.send_message(i, text=text) + await asyncio.sleep(0.3) + sent += 1 + except Exception: + pass + await message.reply_text(f"āœ… Broadcast complete in {sent} Group.") + + +@Client.on_message(command(["broadcast_pin", f"broadcast_pin@{bn}"]) & ~filters.edited) +@sudo_users_only +async def broadcast_pin(c: Client, message: Message): + if not message.reply_to_message: + pass + else: + x = message.reply_to_message.message_id + y = message.chat.id + sent = 0 + pin = 0 + chats = [] + schats = await get_served_chats() + for chat in schats: + chats.append(int(chat["chat_id"])) + for i in chats: + try: + m = await c.forward_messages(i, y, x) + try: + await m.pin(disable_notification=True) + pin += 1 + except Exception: + pass + await asyncio.sleep(0.3) + sent += 1 + except Exception: + pass + await message.reply_text( + f"āœ… Broadcast complete in {sent} Group.\nšŸ“Œ With the {pin} pins." + ) + return + if len(message.command) < 2: + await message.reply_text( + "**usage**:\n\n/broadcast (`message`) or (`reply to message`)" + ) + return + text = message.text.split(None, 1)[1] + sent = 0 + pin = 0 + chats = [] + schats = await get_served_chats() + for chat in schats: + chats.append(int(chat["chat_id"])) + for i in chats: + try: + m = await c.send_message(i, text=text) + try: + await m.pin(disable_notification=True) + pin += 1 + except Exception: + pass + await asyncio.sleep(0.3) + sent += 1 + except Exception: + pass + await message.reply_text( + f"āœ… Broadcast complete in {sent} Group.\nšŸ“Œ With the {pin} pins." + )