|
|
@@ -31,8 +31,7 @@ from wbb.core.decorators.errors import capture_err
|
|
|
from wbb.core.keyboard import ikb
|
|
|
from wbb.utils.dbfunctions import (add_warn, get_warn, int_to_alpha,
|
|
|
remove_warns, save_filter)
|
|
|
-from wbb.utils.functions import (extract_user,
|
|
|
- extract_user_and_reason,
|
|
|
+from wbb.utils.functions import (extract_user, extract_user_and_reason,
|
|
|
time_converter)
|
|
|
|
|
|
__MODULE__ = "Admin"
|
|
|
@@ -132,26 +131,19 @@ async def current_chat_permissions(chat_id):
|
|
|
|
|
|
|
|
|
async def list_members(group_id):
|
|
|
- return [
|
|
|
- member.user.id
|
|
|
- async for member in app.iter_chat_members(group_id)
|
|
|
- ]
|
|
|
+ return [member.user.id async for member in app.iter_chat_members(group_id)]
|
|
|
|
|
|
|
|
|
# Purge Messages
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("purge") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("purge") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_delete_messages")
|
|
|
async def purgeFunc(_, message: Message):
|
|
|
await message.delete()
|
|
|
|
|
|
if not message.reply_to_message:
|
|
|
- return await message.reply_text(
|
|
|
- "Reply to a message to purge from."
|
|
|
- )
|
|
|
+ return await message.reply_text("Reply to a message to purge from.")
|
|
|
|
|
|
chat_id = message.chat.id
|
|
|
message_ids = []
|
|
|
@@ -186,9 +178,7 @@ async def purgeFunc(_, message: Message):
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
|
- filters.command(["kick", "dkick"])
|
|
|
- & ~filters.edited
|
|
|
- & ~filters.private
|
|
|
+ filters.command(["kick", "dkick"]) & ~filters.edited & ~filters.private
|
|
|
)
|
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def kickFunc(_, message: Message):
|
|
|
@@ -200,9 +190,7 @@ async def kickFunc(_, message: Message):
|
|
|
"I can't kick myself, i can leave if you want."
|
|
|
)
|
|
|
if user_id in SUDOERS:
|
|
|
- return await message.reply_text(
|
|
|
- "You Wanna Kick The Elevated One?"
|
|
|
- )
|
|
|
+ return await message.reply_text("You Wanna Kick The Elevated One?")
|
|
|
if user_id in (await list_admins(message.chat.id)):
|
|
|
return await message.reply_text(
|
|
|
"I can't kick an admin, You know the rules, so do i."
|
|
|
@@ -262,9 +250,7 @@ async def banFunc(_, message: Message):
|
|
|
msg += f"**Reason:** {temp_reason}"
|
|
|
try:
|
|
|
if len(time_value[:-1]) < 3:
|
|
|
- await message.chat.kick_member(
|
|
|
- user_id, until_date=temp_ban
|
|
|
- )
|
|
|
+ await message.chat.kick_member(user_id, until_date=temp_ban)
|
|
|
await message.reply_text(msg)
|
|
|
else:
|
|
|
await message.reply_text("You can't use more than 99")
|
|
|
@@ -280,9 +266,7 @@ async def banFunc(_, message: Message):
|
|
|
# Unban members
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("unban") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("unban") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def unbanFunc(_, message: Message):
|
|
|
# we don't need reasons for unban, also, we
|
|
|
@@ -304,15 +288,11 @@ async def unbanFunc(_, message: Message):
|
|
|
# Delete messages
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("del") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("del") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_delete_messages")
|
|
|
async def deleteFunc(_, message: Message):
|
|
|
if not message.reply_to_message:
|
|
|
- return await message.reply_text(
|
|
|
- "Reply To A Message To Delete It"
|
|
|
- )
|
|
|
+ return await message.reply_text("Reply To A Message To Delete It")
|
|
|
await message.reply_to_message.delete()
|
|
|
await message.delete()
|
|
|
|
|
|
@@ -321,7 +301,9 @@ async def deleteFunc(_, message: Message):
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
|
- filters.command(["promote", "fullpromote"]) & ~filters.edited & ~filters.private
|
|
|
+ filters.command(["promote", "fullpromote"])
|
|
|
+ & ~filters.edited
|
|
|
+ & ~filters.private
|
|
|
)
|
|
|
@adminsOnly("can_promote_members")
|
|
|
async def promoteFunc(_, message: Message):
|
|
|
@@ -332,21 +314,19 @@ async def promoteFunc(_, message: Message):
|
|
|
if user_id == BOT_ID:
|
|
|
return await message.reply_text("I can't promote myself.")
|
|
|
if not bot.can_promote_members:
|
|
|
- return await message.reply_text(
|
|
|
- "I don't have enough permissions"
|
|
|
- )
|
|
|
+ return await message.reply_text("I don't have enough permissions")
|
|
|
if message.command[0][0] == "f":
|
|
|
await message.chat.promote_member(
|
|
|
- user_id=user_id,
|
|
|
- can_change_info=bot.can_change_info,
|
|
|
- can_invite_users=bot.can_invite_users,
|
|
|
- can_delete_messages=bot.can_delete_messages,
|
|
|
- can_restrict_members=bot.can_restrict_members,
|
|
|
- can_pin_messages=bot.can_pin_messages,
|
|
|
- can_promote_members=bot.can_promote_members,
|
|
|
- can_manage_chat=bot.can_manage_chat,
|
|
|
- can_manage_voice_chats=bot.can_manage_voice_chats,
|
|
|
- )
|
|
|
+ user_id=user_id,
|
|
|
+ can_change_info=bot.can_change_info,
|
|
|
+ can_invite_users=bot.can_invite_users,
|
|
|
+ can_delete_messages=bot.can_delete_messages,
|
|
|
+ can_restrict_members=bot.can_restrict_members,
|
|
|
+ can_pin_messages=bot.can_pin_messages,
|
|
|
+ can_promote_members=bot.can_promote_members,
|
|
|
+ can_manage_chat=bot.can_manage_chat,
|
|
|
+ can_manage_voice_chats=bot.can_manage_voice_chats,
|
|
|
+ )
|
|
|
return await message.reply_text("Promoted! With All Rights")
|
|
|
|
|
|
await message.chat.promote_member(
|
|
|
@@ -366,9 +346,7 @@ async def promoteFunc(_, message: Message):
|
|
|
# Demote Member
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("demote") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("demote") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_promote_members")
|
|
|
async def demote(_, message: Message):
|
|
|
user_id = await extract_user(message)
|
|
|
@@ -401,15 +379,11 @@ async def demote(_, message: Message):
|
|
|
# Pin Messages
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("pin") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("pin") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_pin_messages")
|
|
|
async def pin(_, message: Message):
|
|
|
if not message.reply_to_message:
|
|
|
- return await message.reply_text(
|
|
|
- "Reply to a message to pin it."
|
|
|
- )
|
|
|
+ return await message.reply_text("Reply to a message to pin it.")
|
|
|
r = message.reply_to_message
|
|
|
await r.pin(disable_notification=True)
|
|
|
await message.reply(
|
|
|
@@ -425,9 +399,7 @@ async def pin(_, message: Message):
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
|
- filters.command(["mute", "tmute"])
|
|
|
- & ~filters.edited
|
|
|
- & ~filters.private
|
|
|
+ filters.command(["mute", "tmute"]) & ~filters.edited & ~filters.private
|
|
|
)
|
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def mute(_, message: Message):
|
|
|
@@ -444,9 +416,7 @@ async def mute(_, message: Message):
|
|
|
return await message.reply_text(
|
|
|
"I can't mute an admin, You know the rules, so do i."
|
|
|
)
|
|
|
- await message.chat.restrict_member(
|
|
|
- user_id, permissions=ChatPermissions()
|
|
|
- )
|
|
|
+ await message.chat.restrict_member(user_id, permissions=ChatPermissions())
|
|
|
mention = (await app.get_users(user_id)).mention
|
|
|
keyboard = ikb({"🚨 Unmute 🚨": f"unmute_{user_id}"})
|
|
|
msg = (
|
|
|
@@ -476,18 +446,14 @@ async def mute(_, message: Message):
|
|
|
return
|
|
|
if reason:
|
|
|
msg += f"**Reason:** {reason}"
|
|
|
- await message.chat.restrict_member(
|
|
|
- user_id, permissions=ChatPermissions()
|
|
|
- )
|
|
|
+ await message.chat.restrict_member(user_id, permissions=ChatPermissions())
|
|
|
await message.reply_text(msg, reply_markup=keyboard)
|
|
|
|
|
|
|
|
|
# Unmute members
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("unmute") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("unmute") & ~filters.edited & ~filters.private)
|
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def unmute(_, message: Message):
|
|
|
user_id = await extract_user(message)
|
|
|
@@ -516,19 +482,13 @@ async def ban_deleted_accounts(_, message: Message):
|
|
|
except Exception:
|
|
|
pass
|
|
|
banned_users += 1
|
|
|
- await message.reply_text(
|
|
|
- f"Banned {banned_users} Deleted Accounts"
|
|
|
- )
|
|
|
+ await message.reply_text(f"Banned {banned_users} Deleted Accounts")
|
|
|
else:
|
|
|
- await message.reply_text(
|
|
|
- "There are no deleted accounts in this chat"
|
|
|
- )
|
|
|
+ await message.reply_text("There are no deleted accounts in this chat")
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
|
- filters.command(["warn", "dwarn"])
|
|
|
- & ~filters.edited
|
|
|
- & ~filters.private
|
|
|
+ filters.command(["warn", "dwarn"]) & ~filters.edited & ~filters.private
|
|
|
)
|
|
|
@adminsOnly("can_restrict_members")
|
|
|
async def warn_user(_, message: Message):
|
|
|
@@ -633,44 +593,33 @@ async def remove_warnings(_, message: Message):
|
|
|
# Warns
|
|
|
|
|
|
|
|
|
-@app.on_message(
|
|
|
- filters.command("warns") & ~filters.edited & ~filters.private
|
|
|
-)
|
|
|
+@app.on_message(filters.command("warns") & ~filters.edited & ~filters.private)
|
|
|
@capture_err
|
|
|
async def check_warns(_, message: Message):
|
|
|
user_id = await extract_user(message)
|
|
|
if not user_id:
|
|
|
return await message.reply_text("I can't find that user.")
|
|
|
- warns = await get_warn(
|
|
|
- message.chat.id, await int_to_alpha(user_id)
|
|
|
- )
|
|
|
+ warns = await get_warn(message.chat.id, await int_to_alpha(user_id))
|
|
|
mention = (await app.get_users(user_id)).mention
|
|
|
if warns:
|
|
|
warns = warns["warns"]
|
|
|
else:
|
|
|
return await message.reply_text(f"{mention} has no warnings.")
|
|
|
- return await message.reply_text(
|
|
|
- f"{mention} has {warns}/3 warnings."
|
|
|
- )
|
|
|
+ return await message.reply_text(f"{mention} has {warns}/3 warnings.")
|
|
|
|
|
|
|
|
|
# Report
|
|
|
|
|
|
|
|
|
@app.on_message(
|
|
|
- (
|
|
|
- filters.command("report")
|
|
|
- | filters.command("admins", prefixes="@")
|
|
|
- )
|
|
|
+ (filters.command("report") | filters.command("admins", prefixes="@"))
|
|
|
& ~filters.edited
|
|
|
& ~filters.private
|
|
|
)
|
|
|
@capture_err
|
|
|
async def report_user(_, message):
|
|
|
if not message.reply_to_message:
|
|
|
- return await message.reply_text(
|
|
|
- "Reply to a message to report user."
|
|
|
- )
|
|
|
+ return await message.reply_text("Reply to a message to report user.")
|
|
|
list_of_admins = await list_admins(message.chat.id)
|
|
|
user_mention = message.reply_to_message.from_user.mention
|
|
|
text = f"Reported {user_mention} to admins."
|