(bot: Client, m: Message)
| 235 | |
| 236 | @Client.on_message(filters.command("broadcast") & filters.user(Config.ADMIN) & filters.reply) |
| 237 | async def broadcast_handler(bot: Client, m: Message): |
| 238 | await bot.send_message(Config.LOG_CHANNEL, f"{m.from_user.mention} or {m.from_user.id} Iꜱ ꜱᴛᴀʀᴛᴇᴅ ᴛʜᴇ Bʀᴏᴀᴅᴄᴀꜱᴛ......") |
| 239 | all_users = await digital_botz.get_all_users() |
| 240 | broadcast_msg = m.reply_to_message |
| 241 | sts_msg = await m.reply_text("Bʀᴏᴀᴅᴄᴀꜱᴛ Sᴛᴀʀᴛᴇᴅ..!") |
| 242 | done = 0 |
| 243 | failed = 0 |
| 244 | success = 0 |
| 245 | start_time = time.time() |
| 246 | total_users = await digital_botz.total_users_count() |
| 247 | async for user in all_users: |
| 248 | sts = await send_msg(user['_id'], broadcast_msg) |
| 249 | if sts == 200: |
| 250 | success += 1 |
| 251 | else: |
| 252 | failed += 1 |
| 253 | if sts == 400: |
| 254 | await digital_botz.delete_user(user['_id']) |
| 255 | done += 1 |
| 256 | if not done % 20: |
| 257 | await sts_msg.edit(f"Bʀᴏᴀᴅᴄᴀꜱᴛ Iɴ Pʀᴏɢʀᴇꜱꜱ: \nTᴏᴛᴀʟ Uꜱᴇʀꜱ {total_users} \nCᴏᴍᴩʟᴇᴛᴇᴅ: {done} / {total_users}\nSᴜᴄᴄᴇꜱꜱ: {success}\nFᴀɪʟᴇᴅ: {failed}") |
| 258 | completed_in = datetime.timedelta(seconds=int(time.time() - start_time)) |
| 259 | await sts_msg.edit(f"Bʀᴏᴀᴅᴄᴀꜱᴛ Cᴏᴍᴩʟᴇᴛᴇᴅ: \nCᴏᴍᴩʟᴇᴛᴇᴅ Iɴ `{completed_in}`.\n\nTᴏᴛᴀʟ Uꜱᴇʀꜱ {total_users}\nCᴏᴍᴩʟᴇᴛᴇᴅ: {done} / {total_users}\nSᴜᴄᴄᴇꜱꜱ: {success}\nFᴀɪʟᴇᴅ: {failed}") |
| 260 | |
| 261 | async def send_msg(user_id, message): |
| 262 | try: |
nothing calls this directly
no test coverage detected