# Copyright (C) 2021 Veez Music Project import asyncio from pyrogram import Client, filters from pyrogram.errors import UserAlreadyParticipant from pyrogram.raw.types import InputGroupCall from pyrogram.raw.functions.phone import CreateGroupCall, DiscardGroupCall from helpers.filters import command from helpers.decorators import authorized_users_only, errors from bot.videoplayer import app as USER from config import Veez @Client.on_message(command(["vjoin", f"vjoin@{Veez.BOT_USERNAME}"]) & ~filters.private & ~filters.bot) @authorized_users_only @errors async def entergroup(client, message): chid = message.chat.id try: invitelink = await client.export_chat_invite_link(chid) except: await message.reply_text( "๐Ÿ’ก promote me as admin first to do that !", ) return try: user = await USER.get_me() except: user.first_name = "assistant" try: await USER.join_chat(invitelink) await USER.send_message(message.chat.id, "๐Ÿค–: i'm joined here for streaming video on video chat") except UserAlreadyParticipant: await message.reply_text( "โœ… assistant already entered this group", ) except Exception as e: print(e) await message.reply_text( f"๐Ÿ”ด FLOODWAIT ERROR ๐Ÿ”ด\n\n user {user.first_name} couldn't join your group due to heavy join requests for userbot! make sure assistant is not banned in this group." ) return await message.reply_text( "โœ… assistant userbot joined your chat", ) @Client.on_message(command(["vleave", f"vleave@{Veez.BOT_USERNAME}"]) & filters.group & ~filters.edited) @authorized_users_only async def leavegroup(client, message): try: await USER.leave_chat(message.chat.id) except: await message.reply_text( "โŒ assistant can't leave from group because floodwaits.\n\nยป you can manually kick me from this group" ) return @Client.on_message(command(["leaveall", f"leaveall@{Veez.BOT_USERNAME}"])) async def outall(client, message): if message.from_user.id not in Veez.SUDO_USERS: return left=0 failed=0 lol = await message.reply("๐Ÿ” assistant leaving all chats") async for dialog in USER.iter_dialogs(): try: await USER.leave_chat(dialog.chat.id) left += 1 await lol.edit(f"๐Ÿ” assistant leaving...\nโณ Left: {left} chats.\n\nโŒ Failed: {failed} chats.") except: failed += 1 await lol.edit(f"๐Ÿ” assistant leaving...\nโณ Left: {left} chats.\n\nโŒ Failed: {failed} chats.") await asyncio.sleep(0.7) await client.send_message(message.chat.id, f"โœ… Left {left} chats.\n\nโŒ Failed {failed} chats.") @Client.on_message(command(["startvc", f"startvc@{Veez.BOT_USERNAME}"])) async def start_vc(client, message): chat_id = message.chat.id try: await USER.send(CreateGroupCall( peer=(await USER.resolve_peer(chat_id)), random_id=randint(10000, 999999999) ) ) await message.reply("โœ… **voice chat started !**") except Exception: await message.reply( "๐Ÿ’ก **I need to be an administrator with the permission:\n\nยป โŒ __Can manage voice chat__" ) @Client.on_message(command(["stopvc", f"stopvc@{Veez.BOT_USERNAME}"])) async def stop_vc(client, message): chat_id = message.chat.id