|
@@ -1,6 +1,6 @@
|
|
|
from pyrogram import filters
|
|
from pyrogram import filters
|
|
|
from pyrogram.types import ChatPermissions
|
|
from pyrogram.types import ChatPermissions
|
|
|
-from wbb import OWNER_ID, SUDO_USER_ID, app
|
|
|
|
|
|
|
+from wbb import OWNER_ID, SUDOERS, app
|
|
|
from wbb.utils.botinfo import BOT_ID
|
|
from wbb.utils.botinfo import BOT_ID
|
|
|
from wbb.utils.errors import capture_err
|
|
from wbb.utils.errors import capture_err
|
|
|
|
|
|
|
@@ -15,17 +15,30 @@ __HELP__ = '''/ban - Ban A User
|
|
|
/mute - Mute A User
|
|
/mute - Mute A User
|
|
|
/unmute - Unmute A User'''
|
|
/unmute - Unmute A User'''
|
|
|
|
|
|
|
|
-SUDO = [OWNER_ID, SUDO_USER_ID]
|
|
|
|
|
|
|
|
|
|
-# Get List Of Admins In A Chat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-async def list_admins(group_id):
|
|
|
|
|
- list_of_admins = []
|
|
|
|
|
- async for member in app.iter_chat_members(
|
|
|
|
|
- group_id, filter="administrators"):
|
|
|
|
|
- list_of_admins.append(member.user.id)
|
|
|
|
|
- return list_of_admins
|
|
|
|
|
|
|
+async def member_permissions(chat_id, user_id):
|
|
|
|
|
+ perms = []
|
|
|
|
|
+ member = (await app.get_chat_member(chat_id, user_id))
|
|
|
|
|
+ if member.can_post_messages:
|
|
|
|
|
+ perms.append("can_post_messages")
|
|
|
|
|
+ if member.can_edit_messages:
|
|
|
|
|
+ perms.append("can_edit_messages")
|
|
|
|
|
+ if member.can_delete_messages:
|
|
|
|
|
+ perms.append("can_delete_messages")
|
|
|
|
|
+ if member.can_restrict_members:
|
|
|
|
|
+ perms.append("can_restrict_members")
|
|
|
|
|
+ if member.can_promote_members:
|
|
|
|
|
+ perms.append("can_promote_members")
|
|
|
|
|
+ if member.can_change_info:
|
|
|
|
|
+ perms.append("can_change_info")
|
|
|
|
|
+ if member.can_invite_users:
|
|
|
|
|
+ perms.append("can_invite_users")
|
|
|
|
|
+ if member.can_pin_messages:
|
|
|
|
|
+ perms.append("can_pin_messages")
|
|
|
|
|
+ return perms
|
|
|
|
|
+
|
|
|
|
|
|
|
|
# Get List Of Members In A Chat
|
|
# Get List Of Members In A Chat
|
|
|
|
|
|
|
@@ -34,6 +47,7 @@ async def list_members(group_id):
|
|
|
list_of_members = []
|
|
list_of_members = []
|
|
|
async for member in app.iter_chat_members(group_id):
|
|
async for member in app.iter_chat_members(group_id):
|
|
|
list_of_members.append(member.user.id)
|
|
list_of_members.append(member.user.id)
|
|
|
|
|
+
|
|
|
return list_of_members
|
|
return list_of_members
|
|
|
|
|
|
|
|
# Purge Messages
|
|
# Purge Messages
|
|
@@ -43,45 +57,36 @@ async def list_members(group_id):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def purge(client, message):
|
|
async def purge(client, message):
|
|
|
message_ids = []
|
|
message_ids = []
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ user_id = message.from_user.id
|
|
|
if message.chat.type not in ("supergroup", "channel"):
|
|
if message.chat.type not in ("supergroup", "channel"):
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
- admins = await list_admins(message.chat.id)
|
|
|
|
|
-
|
|
|
|
|
- if message.from_user.id in admins \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
- chat_id = message.chat.id
|
|
|
|
|
- from_user_id = message.from_user.id
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_delete_messages \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
- if message.reply_to_message:
|
|
|
|
|
- for a_s_message_id in range(
|
|
|
|
|
- message.reply_to_message.message_id,
|
|
|
|
|
- message.message_id
|
|
|
|
|
- ):
|
|
|
|
|
- message_ids.append(a_s_message_id)
|
|
|
|
|
- if len(message_ids) == 100:
|
|
|
|
|
- await client.delete_messages(
|
|
|
|
|
- chat_id=message.chat.id,
|
|
|
|
|
- message_ids=message_ids,
|
|
|
|
|
- revoke=True
|
|
|
|
|
- )
|
|
|
|
|
- message_ids = []
|
|
|
|
|
- if len(message_ids) > 0:
|
|
|
|
|
- await client.delete_messages(
|
|
|
|
|
- chat_id=message.chat.id,
|
|
|
|
|
|
|
+ permissions = await member_permissions(chat_id, user_id)
|
|
|
|
|
+
|
|
|
|
|
+ if "can_delete_messages" in permissions or user_id in SUDOERS:
|
|
|
|
|
+ if message.reply_to_message:
|
|
|
|
|
+ for a_s_message_id in range(
|
|
|
|
|
+ message.reply_to_message.message_id,
|
|
|
|
|
+ message.message_id
|
|
|
|
|
+ ):
|
|
|
|
|
+ message_ids.append(a_s_message_id)
|
|
|
|
|
+ if len(message_ids) == 100:
|
|
|
|
|
+ await client.delete_messages(chat_id=chat_id,
|
|
|
message_ids=message_ids,
|
|
message_ids=message_ids,
|
|
|
- revoke=True
|
|
|
|
|
- )
|
|
|
|
|
- else:
|
|
|
|
|
- await message.reply_text(
|
|
|
|
|
- "Reply To A Message To Delete It,"
|
|
|
|
|
- " Don't Make Fun Of Yourself!")
|
|
|
|
|
|
|
+ revoke=True)
|
|
|
|
|
+
|
|
|
|
|
+ message_ids = []
|
|
|
|
|
+ if len(message_ids) > 0:
|
|
|
|
|
+ await client.delete_messages(
|
|
|
|
|
+ chat_id=chat_id,
|
|
|
|
|
+ message_ids=message_ids,
|
|
|
|
|
+ revoke=True
|
|
|
|
|
+ )
|
|
|
|
|
+ else:
|
|
|
|
|
+ await message.reply_text(
|
|
|
|
|
+ "Reply To A Message To Delete It,"
|
|
|
|
|
+ " Don't Make Fun Of Yourself!")
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text("Your Don't Have Enough Permissions!")
|
|
await message.reply_text("Your Don't Have Enough Permissions!")
|
|
|
await message.delete()
|
|
await message.delete()
|
|
@@ -94,19 +99,17 @@ async def purge(client, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def kick(_, message):
|
|
async def kick(_, message):
|
|
|
try:
|
|
try:
|
|
|
- if (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).status == 'creator' \
|
|
|
|
|
- or (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).can_restrict_members \
|
|
|
|
|
- is True or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
|
|
+ from_user_id = message.from_user.id
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in SUDO:
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
|
- username = (message.text.split(None, 1)[1])
|
|
|
|
|
|
|
+ username = message.text.split(None, 1)[1]
|
|
|
if (await app.get_users(username)).id in SUDO:
|
|
if (await app.get_users(username)).id in SUDO:
|
|
|
await message.reply_text("You Wanna Kick The Elevated One?")
|
|
await message.reply_text("You Wanna Kick The Elevated One?")
|
|
|
else:
|
|
else:
|
|
|
if (await app.get_users(username)).id in \
|
|
if (await app.get_users(username)).id in \
|
|
|
- await list_members(message.chat.id):
|
|
|
|
|
|
|
+ await list_members(chat_):
|
|
|
await message.chat.kick_member(username)
|
|
await message.chat.kick_member(username)
|
|
|
await message.chat.unban_member(username)
|
|
await message.chat.unban_member(username)
|
|
|
await message.reply_text(f"Kicked {username}")
|
|
await message.reply_text(f"Kicked {username}")
|
|
@@ -115,12 +118,11 @@ async def kick(_, message):
|
|
|
" consider kicking yourself.")
|
|
" consider kicking yourself.")
|
|
|
|
|
|
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
|
- if message.reply_to_message.from_user.id in SUDO:
|
|
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ if user_id in SUDO:
|
|
|
await message.reply_text("You Wanna Kick The Elevated One?")
|
|
await message.reply_text("You Wanna Kick The Elevated One?")
|
|
|
else:
|
|
else:
|
|
|
- if message.reply_to_message.from_user.id in \
|
|
|
|
|
- await list_members(message.chat.id):
|
|
|
|
|
- user_id = message.reply_to_message.from_user.id
|
|
|
|
|
|
|
+ if user_id in await list_members(chat_id):
|
|
|
await message.reply_to_message.chat.kick_member(user_id)
|
|
await message.reply_to_message.chat.kick_member(user_id)
|
|
|
await message.reply_to_message.chat.unban_member(user_id)
|
|
await message.reply_to_message.chat.unban_member(user_id)
|
|
|
await message.reply_text("Kicked!")
|
|
await message.reply_text("Kicked!")
|
|
@@ -136,19 +138,17 @@ async def kick(_, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def ban(_, message):
|
|
async def ban(_, message):
|
|
|
try:
|
|
try:
|
|
|
- if (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).status == 'creator' \
|
|
|
|
|
- or (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).can_restrict_members \
|
|
|
|
|
- is True or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
|
|
+ from_user_id = message.from_user.id
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in SUDO:
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
|
- username = (message.text.split(None, 1)[1])
|
|
|
|
|
|
|
+ username = message.text.split(None, 1)[1]
|
|
|
if (await app.get_users(username)).id in SUDO:
|
|
if (await app.get_users(username)).id in SUDO:
|
|
|
await message.reply_text("You Wanna Ban The Elevated One?")
|
|
await message.reply_text("You Wanna Ban The Elevated One?")
|
|
|
else:
|
|
else:
|
|
|
if (await app.get_users(username)).id in \
|
|
if (await app.get_users(username)).id in \
|
|
|
- await list_members(message.chat.id):
|
|
|
|
|
|
|
+ await list_members(chat_id):
|
|
|
await message.chat.kick_member(username)
|
|
await message.chat.kick_member(username)
|
|
|
await message.reply_text(f"Banned! {username}")
|
|
await message.reply_text(f"Banned! {username}")
|
|
|
else:
|
|
else:
|
|
@@ -156,12 +156,11 @@ async def ban(_, message):
|
|
|
" consider banning yourself.")
|
|
" consider banning yourself.")
|
|
|
|
|
|
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
|
- if message.reply_to_message.from_user.id in SUDO:
|
|
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ if user_id in SUDO:
|
|
|
await message.reply_text("You Wanna Ban The Elevated One?")
|
|
await message.reply_text("You Wanna Ban The Elevated One?")
|
|
|
else:
|
|
else:
|
|
|
- if message.reply_to_message.from_user.id in \
|
|
|
|
|
- await list_members(message.chat.id):
|
|
|
|
|
- user_id = message.reply_to_message.from_user.id
|
|
|
|
|
|
|
+ if user_id in await list_members(chat_id):
|
|
|
await message.reply_to_message.chat.kick_member(user_id)
|
|
await message.reply_to_message.chat.kick_member(user_id)
|
|
|
await message.reply_text("Banned!")
|
|
await message.reply_text("Banned!")
|
|
|
else:
|
|
else:
|
|
@@ -177,14 +176,12 @@ async def ban(_, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def unban(_, message):
|
|
async def unban(_, message):
|
|
|
try:
|
|
try:
|
|
|
- if (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).status == 'creator' \
|
|
|
|
|
- or (await app.get_chat_member(
|
|
|
|
|
- message.chat.id, message.from_user.id)).can_restrict_members \
|
|
|
|
|
- is True or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
|
|
+ from_user_id = message.from_user.id
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in sudo:
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
|
- username = (message.text.split(None, 1)[1])
|
|
|
|
|
|
|
+ username = message.text.split(None, 1)[1]
|
|
|
if (await app.get_users(username)).id not in \
|
|
if (await app.get_users(username)).id not in \
|
|
|
await list_members(message.chat.id):
|
|
await list_members(message.chat.id):
|
|
|
await message.chat.unban_member(username)
|
|
await message.chat.unban_member(username)
|
|
@@ -194,9 +191,9 @@ async def unban(_, message):
|
|
|
" consider banning yourself.")
|
|
" consider banning yourself.")
|
|
|
|
|
|
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
if len(message.command) == 1 and message.reply_to_message:
|
|
|
- if message.reply_to_message.from_user.id not in \
|
|
|
|
|
- await list_members(message.chat.id):
|
|
|
|
|
- user_id = message.reply_to_message.from_user.id
|
|
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ if user_id not in \
|
|
|
|
|
+ await list_members(chat_id):
|
|
|
await message.chat.unban_member(user_id)
|
|
await message.chat.unban_member(user_id)
|
|
|
await message.reply_text("Unbanned!")
|
|
await message.reply_text("Unbanned!")
|
|
|
else:
|
|
else:
|
|
@@ -208,29 +205,22 @@ async def unban(_, message):
|
|
|
# Delete messages
|
|
# Delete messages
|
|
|
|
|
|
|
|
|
|
|
|
|
-@app.on_message(filters.command("del"))
|
|
|
|
|
|
|
+@app.on_message(filters.command("del") & ~filters.edited)
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def delete(_, message):
|
|
async def delete(_, message):
|
|
|
if not message.reply_to_message:
|
|
if not message.reply_to_message:
|
|
|
await message.reply_text("Reply To A Message To Delete It")
|
|
await message.reply_text("Reply To A Message To Delete It")
|
|
|
return
|
|
return
|
|
|
try:
|
|
try:
|
|
|
- admins = await list_admins(message.chat.id)
|
|
|
|
|
- chat_id = message.chat.id
|
|
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
-
|
|
|
|
|
- if message.from_user.id in admins \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_delete_messages \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- await message.reply_to_message.delete()
|
|
|
|
|
- await message.delete()
|
|
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_delete_messages" in permissions or from_user_id in sudo:
|
|
|
|
|
+ await message.reply_to_message.delete()
|
|
|
|
|
+ await message.delete()
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text("You Don't Have Enough Permissions,"
|
|
await message.reply_text("You Don't Have Enough Permissions,"
|
|
|
- + " Consider Wiping Yourself Off The Existence!")
|
|
|
|
|
|
|
+ + " Consider Deleting Yourself!")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
|
|
@@ -241,55 +231,39 @@ async def delete(_, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def promote(_, message):
|
|
async def promote(_, message):
|
|
|
try:
|
|
try:
|
|
|
- admins = await list_admins(message.chat.id)
|
|
|
|
|
- chat_id = message.chat.id
|
|
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
-
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- BOT_ID)).can_promote_members:
|
|
|
|
|
- if message.from_user.id in admins \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_promote_members \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
- if not message.reply_to_message and len(message.command) == 2:
|
|
|
|
|
- username = message.text.split(None, 1)[1]
|
|
|
|
|
- user_id = (await app.get_users(username)).id
|
|
|
|
|
- await message.chat.promote_member(
|
|
|
|
|
- user_id=user_id,
|
|
|
|
|
- can_change_info=True,
|
|
|
|
|
- can_invite_users=True,
|
|
|
|
|
- can_delete_messages=True,
|
|
|
|
|
- can_restrict_members=False,
|
|
|
|
|
- can_pin_messages=True,
|
|
|
|
|
- can_promote_members=True)
|
|
|
|
|
- await message.reply_text('Promoted!')
|
|
|
|
|
-
|
|
|
|
|
- elif message.reply_to_message:
|
|
|
|
|
- user_id = message.reply_to_message.from_user.id
|
|
|
|
|
- await message.chat.promote_member(
|
|
|
|
|
- user_id=user_id,
|
|
|
|
|
- can_change_info=True,
|
|
|
|
|
- can_invite_users=True,
|
|
|
|
|
- can_delete_messages=True,
|
|
|
|
|
- can_restrict_members=False,
|
|
|
|
|
- can_pin_messages=True,
|
|
|
|
|
- can_promote_members=True)
|
|
|
|
|
- await message.reply_text('Promoted!')
|
|
|
|
|
- else:
|
|
|
|
|
- await message.reply_text("Reply To A User's Message Or Give A Username To Promote.")
|
|
|
|
|
- else:
|
|
|
|
|
- await message.reply_text("Yeah, I Can See You're An Admin,"
|
|
|
|
|
- + " But You Don't Have Permissions"
|
|
|
|
|
- + " To Promote Someone.")
|
|
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_promote_members" in permissions or from_user_id in sudo:
|
|
|
|
|
+ if len(message.command) == 2:
|
|
|
|
|
+ username = message.text.split(None, 1)[1]
|
|
|
|
|
+ user_id = (await app.get_users(username)).id
|
|
|
|
|
+ await message.chat.promote_member(
|
|
|
|
|
+ user_id=user_id,
|
|
|
|
|
+ can_change_info=True,
|
|
|
|
|
+ can_invite_users=True,
|
|
|
|
|
+ can_delete_messages=True,
|
|
|
|
|
+ can_restrict_members=False,
|
|
|
|
|
+ can_pin_messages=True,
|
|
|
|
|
+ can_promote_members=True)
|
|
|
|
|
+ await message.reply_text('Promoted!')
|
|
|
|
|
+
|
|
|
|
|
+ elif len(message.command) == 1 and message.reply_to_message:
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ await message.chat.promote_member(
|
|
|
|
|
+ user_id=user_id,
|
|
|
|
|
+ can_change_info=True,
|
|
|
|
|
+ can_invite_users=True,
|
|
|
|
|
+ can_delete_messages=True,
|
|
|
|
|
+ can_restrict_members=False,
|
|
|
|
|
+ can_pin_messages=True,
|
|
|
|
|
+ can_promote_members=True)
|
|
|
|
|
+ await message.reply_text('Promoted!')
|
|
|
else:
|
|
else:
|
|
|
- await message.reply_text("You're Not An Admin, Want A Good Ban?")
|
|
|
|
|
|
|
+ await message.reply_text("Reply To A User's Message Or Give A Username To Promote.")
|
|
|
|
|
+
|
|
|
else:
|
|
else:
|
|
|
- await message.reply_text("Well, Your Know What?, I'M NOT AN ADMIN!"
|
|
|
|
|
- + " MAKE ME ADMIN!")
|
|
|
|
|
|
|
+ await message.reply_text("You're Not An Admin, Want A Good Ban?")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
|
|
@@ -303,19 +277,11 @@ async def pin(_, message):
|
|
|
await message.reply_text("Reply To A Message To Pin.")
|
|
await message.reply_text("Reply To A Message To Pin.")
|
|
|
return
|
|
return
|
|
|
try:
|
|
try:
|
|
|
- admins = await list_admins(message.chat.id)
|
|
|
|
|
- chat_id = message.chat.id
|
|
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
-
|
|
|
|
|
- if message.from_user.id in admins \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_pin_messages \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
-
|
|
|
|
|
- await message.reply_to_message.pin(disable_notification=True)
|
|
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_pin_messages" in permissions or from_user_id in sudo:
|
|
|
|
|
+ await message.reply_to_message.pin(disable_notification=True)
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text("You're Not An Admin, Stop Spamming!")
|
|
await message.reply_text("You're Not An Admin, Stop Spamming!")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -328,20 +294,16 @@ async def pin(_, message):
|
|
|
@app.on_message(filters.command("mute") & ~filters.edited)
|
|
@app.on_message(filters.command("mute") & ~filters.edited)
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def mute(_, message):
|
|
async def mute(_, message):
|
|
|
|
|
+ if not message.reply_to_message:
|
|
|
|
|
+ await message.reply_text("Reply To A User's Message!")
|
|
|
|
|
+ return
|
|
|
try:
|
|
try:
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
- if not message.reply_to_message:
|
|
|
|
|
- await message.reply_text("Reply To A User's Message!")
|
|
|
|
|
- return
|
|
|
|
|
-
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_restrict_members \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- victim = message.reply_to_message.from_user.id
|
|
|
|
|
- await message.chat.restrict_member(victim,
|
|
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in sudo:
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ await message.chat.restrict_member(user_id,
|
|
|
permissions=ChatPermissions())
|
|
permissions=ChatPermissions())
|
|
|
await message.reply_text("Muted!")
|
|
await message.reply_text("Muted!")
|
|
|
else:
|
|
else:
|
|
@@ -355,21 +317,52 @@ async def mute(_, message):
|
|
|
@app.on_message(filters.command("unmute") & ~filters.edited)
|
|
@app.on_message(filters.command("unmute") & ~filters.edited)
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def unmute(_, message):
|
|
async def unmute(_, message):
|
|
|
|
|
+ if not message.reply_to_message:
|
|
|
|
|
+ await message.reply_text("Reply To A User's Message!")
|
|
|
|
|
+ return
|
|
|
try:
|
|
try:
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
- if not message.reply_to_message:
|
|
|
|
|
- await message.reply_text("Reply To A User's Message!")
|
|
|
|
|
- return
|
|
|
|
|
- if (await app.get_chat_member(chat_id,
|
|
|
|
|
- from_user_id)).can_restrict_members \
|
|
|
|
|
- or (await app.get_chat_member(chat_id, from_user_id)).status \
|
|
|
|
|
- == 'creator' \
|
|
|
|
|
- or message.from_user.id in SUDO:
|
|
|
|
|
- victim = message.reply_to_message.from_user.id
|
|
|
|
|
- await message.chat.unban_member(victim)
|
|
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in sudo:
|
|
|
|
|
+ user_id = message.reply_to_message.from_user.id
|
|
|
|
|
+ await message.chat.unban_member(user_id)
|
|
|
await message.reply_text("Unmuted!")
|
|
await message.reply_text("Unmuted!")
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text("Get Yourself An Admin Tag!")
|
|
await message.reply_text("Get Yourself An Admin Tag!")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# Ban deleted accounts
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.on_message(filters.command("ban_ghosts"))
|
|
|
|
|
+async def ban_deleted_accounts(_, message)
|
|
|
|
|
+ try:
|
|
|
|
|
+ from_user_id = message.from_user.id
|
|
|
|
|
+ chat_id = message.chat.id
|
|
|
|
|
+ permissions = await member_permissions(chat_id, from_user_id)
|
|
|
|
|
+ if "can_restrict_members" in permissions or from_user_id in SUDO:
|
|
|
|
|
+ deleted_users = []
|
|
|
|
|
+ banned_users = 0
|
|
|
|
|
+ async for i in app.iter_chat_members(chat_id):
|
|
|
|
|
+ if i.user.is_deleted:
|
|
|
|
|
+ deleted_users.append(i.user.id)
|
|
|
|
|
+ if len(deleted_users) > 0:
|
|
|
|
|
+ for deleted_user in deleted_users:
|
|
|
|
|
+ try:
|
|
|
|
|
+ await message.chat.kick_member(deleted_user)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print(str(e))
|
|
|
|
|
+ pass
|
|
|
|
|
+ banned_users += 1
|
|
|
|
|
+ await message.reply_text(f"Banned {banned_users} Deleted Accounts")
|
|
|
|
|
+ else:
|
|
|
|
|
+ await message.reply_text("No Deleted Accounts In This Chat")
|
|
|
|
|
+ return
|
|
|
|
|
+ else:
|
|
|
|
|
+ await message.reply_text("You Don't Have Enough Permissions")
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ await message.reply_text(str(e))
|
|
|
|
|
+ print(str(e))
|