diff --git a/program/music.py b/program/music.py index 839a09f..896def7 100644 --- a/program/music.py +++ b/program/music.py @@ -63,7 +63,7 @@ async def play(c: Client, m: Message): a = await c.get_chat_member(chat_id, aing.id) if a.status != "administrator": await m.reply_text( - f"💡 To use me, I need to be an **Administrator** with the following **permissions**:\n\n» ❌ __Delete messages__\n» ❌ __Add users__\n» ❌ __Manage video chat__\n\nData is **updated** automatically after you **promote me**" + f"💡 To use me, I need to be an **Administrator** with the following **permissions**:\n\n» ❌ __Delete messages__\n» ❌ __Add users__\n» ❌ __Add new Admins__\n» ❌ __Manage video chat__\n\nData is **updated** automatically after you **promote me**" ) return if not a.can_manage_voice_chats: @@ -79,37 +79,41 @@ async def play(c: Client, m: Message): if not a.can_invite_users: await m.reply_text("missing required permission:" + "\n\n» ❌ __Add users__") return + if not a.can_promote_members: + await m.reply_text("missing required permission:" + "\n\n» ❌ __Add new Admins__") + return try: ubot = (await user.get_me()).id - b = await c.get_chat_member(chat_id, ubot) + b = await c.get_chat_member(chat_id, ubot) if b.status == "kicked": - await m.reply_text( - f"@{ASSISTANT_NAME} **is banned in group** {m.chat.title}\n\n» **unban the userbot first if you want to use this bot.**" - ) - return - except UserNotParticipant: - if m.chat.username: - try: - await user.join_chat(m.chat.username) - except Exception as e: - await m.reply_text(f"❌ **userbot failed to join**\n\n**reason**: `{e}`") - return - else: - try: - invitelink = await c.export_chat_invite_link( - m.chat.id - ) - if invitelink.startswith("https://t.me/+"): + await c.unban_chat_member(chat_id, ubot) + invitelink = await c.export_chat_invite_link(chat_id) + if invitelink.startswith("https://t.me/+"): invitelink = invitelink.replace( "https://t.me/+", "https://t.me/joinchat/" ) - await user.join_chat(invitelink) - except UserAlreadyParticipant: - pass - except Exception as e: - return await m.reply_text( - f"❌ **userbot failed to join**\n\n**reason**: `{e}`" - ) + await user.join_chat(invitelink) + await m.chat.promote_member( + ubot, can_manage_voice_chats=True + ) + except UserNotParticipant: + try: + ubot = (await user.get_me()).id + invitelink = await c.export_chat_invite_link(chat_id) + if invitelink.startswith("https://t.me/+"): + invitelink = invitelink.replace( + "https://t.me/+", "https://t.me/joinchat/" + ) + await user.join_chat(invitelink) + await m.chat.promote_member( + ubot, can_manage_voice_chats=True + ) + except UserAlreadyParticipant: + pass + except Exception as e: + return await m.reply_text( + f"❌ **userbot failed to join**\n\n**reason**: `{e}`" + ) if replied: if replied.audio or replied.voice: suhu = await replied.reply("📥 **downloading audio...**")