|
@@ -25,7 +25,6 @@ import asyncio
|
|
|
|
|
|
|
|
from pyrogram import filters
|
|
from pyrogram import filters
|
|
|
from pyrogram.types import ChatPermissions
|
|
from pyrogram.types import ChatPermissions
|
|
|
-
|
|
|
|
|
from wbb import BOT_ID, SUDOERS, app
|
|
from wbb import BOT_ID, SUDOERS, app
|
|
|
from wbb.core.decorators.errors import capture_err
|
|
from wbb.core.decorators.errors import capture_err
|
|
|
from wbb.utils.dbfunctions import (add_warn, get_warn, int_to_alpha,
|
|
from wbb.utils.dbfunctions import (add_warn, get_warn, int_to_alpha,
|
|
@@ -51,9 +50,7 @@ __HELP__ = """/ban - Ban A User
|
|
|
|
|
|
|
|
async def list_admins(chat_id: int):
|
|
async def list_admins(chat_id: int):
|
|
|
list_of_admins = []
|
|
list_of_admins = []
|
|
|
- async for member in app.iter_chat_members(
|
|
|
|
|
- chat_id, filter="administrators"
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ async for member in app.iter_chat_members(chat_id, filter="administrators"):
|
|
|
list_of_admins.append(member.user.id)
|
|
list_of_admins.append(member.user.id)
|
|
|
return list_of_admins
|
|
return list_of_admins
|
|
|
|
|
|
|
@@ -153,8 +150,7 @@ async def purge(client, message):
|
|
|
)
|
|
)
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text(
|
|
await message.reply_text(
|
|
|
- "Reply To A Message To Delete It,"
|
|
|
|
|
- " Don't Make Fun Of Yourself!"
|
|
|
|
|
|
|
+ "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!")
|
|
@@ -174,10 +170,7 @@ async def kick(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_restrict_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_restrict_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions.")
|
|
await message.reply_text("You don't have enough permissions.")
|
|
|
return
|
|
return
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
@@ -211,10 +204,7 @@ async def ban(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_restrict_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_restrict_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions.")
|
|
await message.reply_text("You don't have enough permissions.")
|
|
|
return
|
|
return
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
@@ -245,10 +235,7 @@ async def unban(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_restrict_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_restrict_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions.")
|
|
await message.reply_text("You don't have enough permissions.")
|
|
|
return
|
|
return
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
@@ -279,13 +266,9 @@ async def delete(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_delete_messages" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_delete_messages" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text(
|
|
await message.reply_text(
|
|
|
- "You Don't Have Enough Permissions,"
|
|
|
|
|
- + " Consider Deleting Yourself!"
|
|
|
|
|
|
|
+ "You Don't Have Enough Permissions," + " Consider Deleting Yourself!"
|
|
|
)
|
|
)
|
|
|
return
|
|
return
|
|
|
await message.reply_to_message.delete()
|
|
await message.reply_to_message.delete()
|
|
@@ -304,10 +287,7 @@ async def promote(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_promote_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_promote_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions")
|
|
await message.reply_text("You don't have enough permissions")
|
|
|
return
|
|
return
|
|
|
bot = await app.get_chat_member(chat_id, BOT_ID)
|
|
bot = await app.get_chat_member(chat_id, BOT_ID)
|
|
@@ -337,8 +317,10 @@ async def promote(_, message):
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
|
|
|
|
|
+
|
|
|
# Demote Member
|
|
# Demote Member
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@app.on_message(filters.command("demote") & ~filters.edited)
|
|
@app.on_message(filters.command("demote") & ~filters.edited)
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def demote(_, message):
|
|
async def demote(_, message):
|
|
@@ -375,6 +357,7 @@ async def demote(_, message):
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
|
|
|
|
|
+
|
|
|
# Pin Messages
|
|
# Pin Messages
|
|
|
|
|
|
|
|
|
|
|
|
@@ -407,10 +390,7 @@ async def mute(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_restrict_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_restrict_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions.")
|
|
await message.reply_text("You don't have enough permissions.")
|
|
|
return
|
|
return
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
@@ -425,9 +405,7 @@ async def mute(_, message):
|
|
|
if user_id in SUDOERS:
|
|
if user_id in SUDOERS:
|
|
|
await message.reply_text("You Wanna Mute The Elevated One?")
|
|
await message.reply_text("You Wanna Mute The Elevated One?")
|
|
|
return
|
|
return
|
|
|
- await message.chat.restrict_member(
|
|
|
|
|
- user_id, permissions=ChatPermissions()
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.chat.restrict_member(user_id, permissions=ChatPermissions())
|
|
|
await message.reply_text("Muted!")
|
|
await message.reply_text("Muted!")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
@@ -443,10 +421,7 @@ async def unmute(_, message):
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
|
chat_id = message.chat.id
|
|
chat_id = message.chat.id
|
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
permissions = await member_permissions(chat_id, from_user_id)
|
|
|
- if (
|
|
|
|
|
- "can_restrict_members" not in permissions
|
|
|
|
|
- and from_user_id not in SUDOERS
|
|
|
|
|
- ):
|
|
|
|
|
|
|
+ if "can_restrict_members" not in permissions and from_user_id not in SUDOERS:
|
|
|
await message.reply_text("You don't have enough permissions.")
|
|
await message.reply_text("You don't have enough permissions.")
|
|
|
return
|
|
return
|
|
|
if len(message.command) == 2:
|
|
if len(message.command) == 2:
|
|
@@ -487,9 +462,7 @@ async def ban_deleted_accounts(_, message):
|
|
|
print(str(e))
|
|
print(str(e))
|
|
|
pass
|
|
pass
|
|
|
banned_users += 1
|
|
banned_users += 1
|
|
|
- await message.reply_text(
|
|
|
|
|
- f"Banned {banned_users} Deleted Accounts"
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.reply_text(f"Banned {banned_users} Deleted Accounts")
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text("No Deleted Accounts In This Chat")
|
|
await message.reply_text("No Deleted Accounts In This Chat")
|
|
|
return
|
|
return
|
|
@@ -523,16 +496,12 @@ async def warn_user(_, message):
|
|
|
await message.reply_text("I wouldn't do that if i were you.")
|
|
await message.reply_text("I wouldn't do that if i were you.")
|
|
|
else:
|
|
else:
|
|
|
if user_id in await list_members(chat_id):
|
|
if user_id in await list_members(chat_id):
|
|
|
- warns = await get_warn(
|
|
|
|
|
- chat_id, await int_to_alpha(user_id)
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ warns = await get_warn(chat_id, await int_to_alpha(user_id))
|
|
|
if warns:
|
|
if warns:
|
|
|
warns = warns["warns"]
|
|
warns = warns["warns"]
|
|
|
else:
|
|
else:
|
|
|
warn = {"warns": 1}
|
|
warn = {"warns": 1}
|
|
|
- await add_warn(
|
|
|
|
|
- chat_id, await int_to_alpha(user_id), warn
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await add_warn(chat_id, await int_to_alpha(user_id), warn)
|
|
|
await message.reply_text(
|
|
await message.reply_text(
|
|
|
f"Warned {mention} !, 1/3 warnings now."
|
|
f"Warned {mention} !, 1/3 warnings now."
|
|
|
)
|
|
)
|
|
@@ -542,14 +511,10 @@ async def warn_user(_, message):
|
|
|
await message.reply_text(
|
|
await message.reply_text(
|
|
|
f"Number of warns of {mention} exceeded, Banned!"
|
|
f"Number of warns of {mention} exceeded, Banned!"
|
|
|
)
|
|
)
|
|
|
- await remove_warns(
|
|
|
|
|
- chat_id, await int_to_alpha(user_id)
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await remove_warns(chat_id, await int_to_alpha(user_id))
|
|
|
else:
|
|
else:
|
|
|
warn = {"warns": warns + 1}
|
|
warn = {"warns": warns + 1}
|
|
|
- await add_warn(
|
|
|
|
|
- chat_id, await int_to_alpha(user_id), warn
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await add_warn(chat_id, await int_to_alpha(user_id), warn)
|
|
|
await message.reply_text(
|
|
await message.reply_text(
|
|
|
f"Warned {mention} !, {warns+1}/3 warnings now."
|
|
f"Warned {mention} !, {warns+1}/3 warnings now."
|
|
|
)
|
|
)
|
|
@@ -568,9 +533,7 @@ async def warn_user(_, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def remove_warnings(_, message):
|
|
async def remove_warnings(_, message):
|
|
|
if not message.reply_to_message:
|
|
if not message.reply_to_message:
|
|
|
- await message.reply_text(
|
|
|
|
|
- "Reply to a message to remove a user's warnings."
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.reply_text("Reply to a message to remove a user's warnings.")
|
|
|
return
|
|
return
|
|
|
try:
|
|
try:
|
|
|
from_user_id = message.from_user.id
|
|
from_user_id = message.from_user.id
|
|
@@ -600,9 +563,7 @@ async def remove_warnings(_, message):
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def check_warns(_, message):
|
|
async def check_warns(_, message):
|
|
|
if not message.reply_to_message:
|
|
if not message.reply_to_message:
|
|
|
- await message.reply_text(
|
|
|
|
|
- "Reply to a message to check a user's warnings."
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.reply_text("Reply to a message to check a user's warnings.")
|
|
|
return
|
|
return
|
|
|
try:
|
|
try:
|
|
|
user_id = message.reply_to_message.from_user.id
|
|
user_id = message.reply_to_message.from_user.id
|
|
@@ -616,9 +577,7 @@ async def check_warns(_, message):
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text(f"{mention_user} have no warnings.")
|
|
await message.reply_text(f"{mention_user} have no warnings.")
|
|
|
return
|
|
return
|
|
|
- await message.reply_text(
|
|
|
|
|
- f"{mention_user} have {warns}/3 warnings."
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.reply_text(f"{mention_user} have {warns}/3 warnings.")
|
|
|
return
|
|
return
|
|
|
warns = await get_warn(chat_id, await int_to_alpha(user_id))
|
|
warns = await get_warn(chat_id, await int_to_alpha(user_id))
|
|
|
if warns:
|
|
if warns:
|
|
@@ -626,9 +585,7 @@ async def check_warns(_, message):
|
|
|
else:
|
|
else:
|
|
|
await message.reply_text(f"{mention_user} have no warnings.")
|
|
await message.reply_text(f"{mention_user} have no warnings.")
|
|
|
return
|
|
return
|
|
|
- await message.reply_text(
|
|
|
|
|
- f"{mention_from_user} have {warns}/3 warnings."
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ await message.reply_text(f"{mention_from_user} have {warns}/3 warnings.")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
await message.reply_text(str(e))
|
|
await message.reply_text(str(e))
|
|
|
|
|
|
|
@@ -637,8 +594,7 @@ async def check_warns(_, message):
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
@app.on_message(
|
|
|
- filters.command(["report", "admins"], prefixes=["@", "/"])
|
|
|
|
|
- & ~filters.edited
|
|
|
|
|
|
|
+ filters.command(["report", "admins"], prefixes=["@", "/"]) & ~filters.edited
|
|
|
)
|
|
)
|
|
|
@capture_err
|
|
@capture_err
|
|
|
async def report_user(_, message):
|
|
async def report_user(_, message):
|