Updated
Browse files
akn/AllDownloaderBot/admins.py
CHANGED
@@ -4,15 +4,20 @@ from pyrogram.types import *
|
|
4 |
from pyrogram.enums import *
|
5 |
from akn.utils.database import db
|
6 |
|
|
|
|
|
7 |
unmute_permissions = ChatPermissions(
|
8 |
can_send_messages=True,
|
9 |
can_send_media_messages=True,
|
10 |
can_send_polls=True,
|
|
|
|
|
11 |
can_change_info=False,
|
12 |
can_invite_users=True,
|
13 |
-
can_pin_messages=False
|
14 |
)
|
15 |
|
|
|
16 |
async def extract_userid(message, text: str):
|
17 |
def is_int(text: str):
|
18 |
try:
|
@@ -51,7 +56,9 @@ async def arz_update_admin_cache(client, chat_id):
|
|
51 |
async def xarzunmute_cbok(client, callback):
|
52 |
chat_id = int(callback.matches[0].group(1))
|
53 |
user_id = int(callback.matches[0].group(2))
|
54 |
-
|
|
|
|
|
55 |
admins = cached_admins.get(chat_id, [])
|
56 |
chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
|
57 |
admins = chat_data.get("chat_admins", []) if chat_data else []
|
@@ -62,18 +69,23 @@ async def xarzunmute_cbok(client, callback):
|
|
62 |
await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
|
63 |
return
|
64 |
try:
|
|
|
65 |
await client.restrict_chat_member(chat_id, user_id, unmute_permissions)
|
66 |
await callback.message.edit_text(
|
67 |
-
f"✅ User {user_id} unmuted by
|
68 |
reply_markup=None
|
69 |
)
|
70 |
except Exception as e:
|
|
|
71 |
await callback.message.edit_text(f"❌ Failed: {str(e)}")
|
72 |
|
73 |
@Client.on_callback_query(filters.regex(r"^arzunban_(\d+)_(\d+)$"))
|
74 |
async def xarzunban_cbok(client, callback):
|
75 |
chat_id = int(callback.matches[0].group(1))
|
76 |
user_id = int(callback.matches[0].group(2))
|
|
|
|
|
|
|
77 |
chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
|
78 |
admins = chat_data.get("chat_admins", []) if chat_data else []
|
79 |
if not admins:
|
@@ -83,12 +95,14 @@ async def xarzunban_cbok(client, callback):
|
|
83 |
await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
|
84 |
return
|
85 |
try:
|
|
|
86 |
await client.unban_chat_member(chat_id, user_id)
|
87 |
await callback.message.edit_text(
|
88 |
-
f"✅ User {user_id} unbanned by
|
89 |
reply_markup=None
|
90 |
)
|
91 |
except Exception as e:
|
|
|
92 |
await callback.message.edit_text(f"❌ Failed: {str(e)}")
|
93 |
|
94 |
async def extract_user_and_reason(message, sender_chat=False):
|
|
|
4 |
from pyrogram.enums import *
|
5 |
from akn.utils.database import db
|
6 |
|
7 |
+
from pyrogram.types import ChatPermissions
|
8 |
+
|
9 |
unmute_permissions = ChatPermissions(
|
10 |
can_send_messages=True,
|
11 |
can_send_media_messages=True,
|
12 |
can_send_polls=True,
|
13 |
+
can_send_other_messages=True,
|
14 |
+
can_add_web_page_previews=True,
|
15 |
can_change_info=False,
|
16 |
can_invite_users=True,
|
17 |
+
can_pin_messages=False
|
18 |
)
|
19 |
|
20 |
+
|
21 |
async def extract_userid(message, text: str):
|
22 |
def is_int(text: str):
|
23 |
try:
|
|
|
56 |
async def xarzunmute_cbok(client, callback):
|
57 |
chat_id = int(callback.matches[0].group(1))
|
58 |
user_id = int(callback.matches[0].group(2))
|
59 |
+
chat_member = await client.get_chat_member(chat_id, client.me.id)
|
60 |
+
if not chat_member or not chat_member.can_restrict_members:
|
61 |
+
await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
|
62 |
admins = cached_admins.get(chat_id, [])
|
63 |
chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
|
64 |
admins = chat_data.get("chat_admins", []) if chat_data else []
|
|
|
69 |
await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
|
70 |
return
|
71 |
try:
|
72 |
+
user_mention = callback.from_user.mention
|
73 |
await client.restrict_chat_member(chat_id, user_id, unmute_permissions)
|
74 |
await callback.message.edit_text(
|
75 |
+
f"✅ User {user_id} unmuted by {user_mention}",
|
76 |
reply_markup=None
|
77 |
)
|
78 |
except Exception as e:
|
79 |
+
LOGS.error(f"Error xarzunmute_cbok: {str(e)} ")
|
80 |
await callback.message.edit_text(f"❌ Failed: {str(e)}")
|
81 |
|
82 |
@Client.on_callback_query(filters.regex(r"^arzunban_(\d+)_(\d+)$"))
|
83 |
async def xarzunban_cbok(client, callback):
|
84 |
chat_id = int(callback.matches[0].group(1))
|
85 |
user_id = int(callback.matches[0].group(2))
|
86 |
+
chat_member = await client.get_chat_member(chat_id, client.me.id)
|
87 |
+
if not chat_member or not chat_member.can_restrict_members:
|
88 |
+
await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
|
89 |
chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
|
90 |
admins = chat_data.get("chat_admins", []) if chat_data else []
|
91 |
if not admins:
|
|
|
95 |
await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
|
96 |
return
|
97 |
try:
|
98 |
+
user_mention = callback.from_user.mention
|
99 |
await client.unban_chat_member(chat_id, user_id)
|
100 |
await callback.message.edit_text(
|
101 |
+
f"✅ User {user_id} unbanned by {user_mention}",
|
102 |
reply_markup=None
|
103 |
)
|
104 |
except Exception as e:
|
105 |
+
LOGS.error(f"Error xarzunban_cbok: {str(e)} ")
|
106 |
await callback.message.edit_text(f"❌ Failed: {str(e)}")
|
107 |
|
108 |
async def extract_user_and_reason(message, sender_chat=False):
|