randydev commited on
Commit
07fe3fe
·
verified ·
1 Parent(s): d47096a
Files changed (1) hide show
  1. akn/AllDownloaderBot/admins.py +25 -26
akn/AllDownloaderBot/admins.py CHANGED
@@ -50,23 +50,22 @@ async def arz_update_admin_cache(client, chat_id):
50
  cached_admins[chat_id] = admin_list
51
  return admin_list
52
 
53
- @Client.on_callback_query(filters.regex(r"^arzunmute_(\d+)_(\d+)$"))
54
  async def xarzunmute_cbok(client, callback):
55
  chat_id = int(callback.matches[0].group(1))
56
  user_id = int(callback.matches[0].group(2))
57
  chat_member = await client.get_chat_member(chat_id, client.me.id)
58
  if not chat_member or not chat_member.can_restrict_members:
59
  await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
60
- admins = cached_admins.get(chat_id, [])
61
- chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
62
- admins = chat_data.get("chat_admins", []) if chat_data else []
63
- if not admins:
64
- await callback.answer("⚠️ You can /reload again admins", show_alert=True)
65
- return
66
- if callback.from_user.id not in admins:
67
- await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
68
- return
69
  try:
 
 
 
 
 
 
 
 
70
  user_mention = callback.from_user.mention
71
  await client.restrict_chat_member(chat_id, user_id, unmute_permissions)
72
  await callback.message.edit_text(
@@ -77,22 +76,22 @@ async def xarzunmute_cbok(client, callback):
77
  LOGS.error(f"Error xarzunmute_cbok: {str(e)} ")
78
  await callback.message.edit_text(f"❌ Failed: {str(e)}")
79
 
80
- @Client.on_callback_query(filters.regex(r"^arzunban_(\d+)_(\d+)$"))
81
  async def xarzunban_cbok(client, callback):
82
  chat_id = int(callback.matches[0].group(1))
83
  user_id = int(callback.matches[0].group(2))
84
  chat_member = await client.get_chat_member(chat_id, client.me.id)
85
  if not chat_member or not chat_member.can_restrict_members:
86
  await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
87
- chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
88
- admins = chat_data.get("chat_admins", []) if chat_data else []
89
- if not admins:
90
- await callback.answer("⚠️ You can /reload again admins", show_alert=True)
91
- return
92
- if callback.from_user.id not in admins:
93
- await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
94
- return
95
  try:
 
 
 
 
 
 
 
 
96
  user_mention = callback.from_user.mention
97
  await client.unban_chat_member(chat_id, user_id)
98
  await callback.message.edit_text(
@@ -208,7 +207,7 @@ async def arz_ban_user(client: Client, message: Message):
208
  [
209
  [
210
  InlineKeyboardButton(
211
- "⚫ Unban", callback_data=f"arzunban_{message.chat.id}_{user_id}"
212
  )
213
  ]
214
  ]
@@ -331,7 +330,7 @@ async def arz_mute(client: Client, message: Message):
331
  [
332
  [
333
  InlineKeyboardButton(
334
- "⚫ Unmute", callback_data=f"arzunmute_{message.chat.id}_{user_id}"
335
  )
336
  ]
337
  ]
@@ -459,7 +458,7 @@ async def arz_mute_me(client: Client, message: Message):
459
  [
460
  [
461
  InlineKeyboardButton(
462
- "Unmute", callback_data=f"arzunmute_{user_id}"
463
  )
464
  ]
465
  ]
@@ -480,7 +479,7 @@ async def arz_admin_list(client: Client, message: Message):
480
  return await message.reply_text("I don't have enough permissions to list admins.")
481
 
482
  try:
483
- admin_list = []
484
  async for m in client.get_chat_members(message.chat.id, filter=ChatMembersFilter.ADMINISTRATORS):
485
  if m.user.is_bot:
486
  continue
@@ -489,12 +488,12 @@ async def arz_admin_list(client: Client, message: Message):
489
  user = m.user
490
  tag = f"[{user.first_name}](tg://user?id={user.id})"
491
  role = "👑 Owner" if m.status.value == "owner" else "🔧 Admin"
492
- admin_list.append(f"┣ {role}: {tag}")
493
 
494
  if not admin_list:
495
  return await message.reply_text("No admins found.")
496
 
497
- text = "**👥 Admin List:**\n\n" + "\n".join(admin_list)
498
  await message.reply_text(
499
  text,
500
  disable_web_page_preview=True
@@ -505,7 +504,7 @@ async def arz_admin_list(client: Client, message: Message):
505
  @Client.on_message(filters.incoming & filters.group, group=-1)
506
  async def check_user_mute(client: Client, message: Message):
507
  bot = await client.get_chat_member(message.chat.id, client.me.id)
508
- if not bot.privileges.can_restrict_members:
509
  return
510
  if message.from_user and message.from_user.is_deleted:
511
  return
 
50
  cached_admins[chat_id] = admin_list
51
  return admin_list
52
 
53
+ @Client.on_callback_query(filters.regex(r"^arzunmuted_(\d+)_(\d+)$"))
54
  async def xarzunmute_cbok(client, callback):
55
  chat_id = int(callback.matches[0].group(1))
56
  user_id = int(callback.matches[0].group(2))
57
  chat_member = await client.get_chat_member(chat_id, client.me.id)
58
  if not chat_member or not chat_member.can_restrict_members:
59
  await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
 
 
 
 
 
 
 
 
 
60
  try:
61
+ chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
62
+ admins = chat_data.get("chat_admins", []) if chat_data else []
63
+ if not admins:
64
+ await callback.answer("⚠️ You can /reload again admins", show_alert=True)
65
+ return
66
+ if callback.from_user.id not in admins:
67
+ await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
68
+ return
69
  user_mention = callback.from_user.mention
70
  await client.restrict_chat_member(chat_id, user_id, unmute_permissions)
71
  await callback.message.edit_text(
 
76
  LOGS.error(f"Error xarzunmute_cbok: {str(e)} ")
77
  await callback.message.edit_text(f"❌ Failed: {str(e)}")
78
 
79
+ @Client.on_callback_query(filters.regex(r"^arzunband_(\d+)_(\d+)$"))
80
  async def xarzunban_cbok(client, callback):
81
  chat_id = int(callback.matches[0].group(1))
82
  user_id = int(callback.matches[0].group(2))
83
  chat_member = await client.get_chat_member(chat_id, client.me.id)
84
  if not chat_member or not chat_member.can_restrict_members:
85
  await callback.answer("⚠️ Bot needs 'Restrict Members' permission!", show_alert=True)
 
 
 
 
 
 
 
 
86
  try:
87
+ chat_data = await db.alldl_bot.find_one({"chat_ids": chat_id})
88
+ admins = chat_data.get("chat_admins", []) if chat_data else []
89
+ if not admins:
90
+ await callback.answer("⚠️ You can /reload again admins", show_alert=True)
91
+ return
92
+ if callback.from_user.id not in admins:
93
+ await callback.answer("⚠️ Only admins can unmute!", show_alert=True)
94
+ return
95
  user_mention = callback.from_user.mention
96
  await client.unban_chat_member(chat_id, user_id)
97
  await callback.message.edit_text(
 
207
  [
208
  [
209
  InlineKeyboardButton(
210
+ "⚫ Unban", callback_data=f"arzunband_{message.chat.id}_{user_id}"
211
  )
212
  ]
213
  ]
 
330
  [
331
  [
332
  InlineKeyboardButton(
333
+ "⚫ Unmute", callback_data=f"arzunmuted_{message.chat.id}_{user_id}"
334
  )
335
  ]
336
  ]
 
458
  [
459
  [
460
  InlineKeyboardButton(
461
+ "Unmute", callback_data=f"arzunmuted_{user_id}"
462
  )
463
  ]
464
  ]
 
479
  return await message.reply_text("I don't have enough permissions to list admins.")
480
 
481
  try:
482
+ admin_listx = []
483
  async for m in client.get_chat_members(message.chat.id, filter=ChatMembersFilter.ADMINISTRATORS):
484
  if m.user.is_bot:
485
  continue
 
488
  user = m.user
489
  tag = f"[{user.first_name}](tg://user?id={user.id})"
490
  role = "👑 Owner" if m.status.value == "owner" else "🔧 Admin"
491
+ admin_listx.append(f"┣ {role}: {tag}")
492
 
493
  if not admin_list:
494
  return await message.reply_text("No admins found.")
495
 
496
+ text = "**👥 Admin List:**\n\n" + "\n".join(admin_listx)
497
  await message.reply_text(
498
  text,
499
  disable_web_page_preview=True
 
504
  @Client.on_message(filters.incoming & filters.group, group=-1)
505
  async def check_user_mute(client: Client, message: Message):
506
  bot = await client.get_chat_member(message.chat.id, client.me.id)
507
+ if not bot or not bot.privileges.can_restrict_members:
508
  return
509
  if message.from_user and message.from_user.is_deleted:
510
  return