Add botapi search

This commit is contained in:
yasir 2023-02-07 11:39:36 +07:00
parent 88c16a3d83
commit 2dfe015c2a
5 changed files with 23 additions and 2 deletions

View file

@ -1,5 +1,5 @@
import time import time
import pyromod import pyromod.listen
from logging import ERROR, INFO, FileHandler, StreamHandler, basicConfig, getLogger from logging import ERROR, INFO, FileHandler, StreamHandler, basicConfig, getLogger
from pyrogram import Client from pyrogram import Client

View file

@ -121,6 +121,7 @@ keyboard = InlineKeyboardMarkup(
@app.on_message(filters.command("start", COMMAND_HANDLER)) @app.on_message(filters.command("start", COMMAND_HANDLER))
async def start(_, message): async def start(_, message):
if not message.from_user: return
if message.chat.type.value != "private": if message.chat.type.value != "private":
if not await db.get_chat(message.chat.id): if not await db.get_chat(message.chat.id):
total = await app.get_chat_members_count(message.chat.id) total = await app.get_chat_members_count(message.chat.id)
@ -191,6 +192,7 @@ async def stats_callbacc(_, CallbackQuery):
@app.on_message(filters.command("help", COMMAND_HANDLER)) @app.on_message(filters.command("help", COMMAND_HANDLER))
async def help_command(_, message): async def help_command(_, message):
if not message.from_user: return
if message.chat.type.value != "private": if message.chat.type.value != "private":
if not await db.get_chat(message.chat.id): if not await db.get_chat(message.chat.id):
total = await app.get_chat_members_count(message.chat.id) total = await app.get_chat_members_count(message.chat.id)

View file

@ -74,6 +74,7 @@ async def admin_cache_func(_, cmu):
@app.on_message(filters.command("purge", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("purge", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_delete_messages") @adminsOnly("can_delete_messages")
async def purge(_, message): async def purge(_, message):
if not message.from_user: return
try: try:
repliedmsg = message.reply_to_message repliedmsg = message.reply_to_message
await message.delete() await message.delete()
@ -127,6 +128,7 @@ async def purge(_, message):
@app.on_message(filters.command(["kick", "dkick"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["kick", "dkick"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def kickFunc(client, message): async def kickFunc(client, message):
if not message.from_user: return
user_id, reason = await extract_user_and_reason(message) user_id, reason = await extract_user_and_reason(message)
if not user_id: if not user_id:
return await message.reply_text("I can't find that user.") return await message.reply_text("I can't find that user.")
@ -156,6 +158,7 @@ async def kickFunc(client, message):
@app.on_message(filters.command(["ban", "dban", "tban"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["ban", "dban", "tban"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def banFunc(client, message): async def banFunc(client, message):
if not message.from_user: return
user_id, reason = await extract_user_and_reason(message, sender_chat=True) user_id, reason = await extract_user_and_reason(message, sender_chat=True)
if not user_id: if not user_id:
@ -206,6 +209,7 @@ async def banFunc(client, message):
@app.on_message(filters.command("unban", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("unban", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def unban_func(_, message): async def unban_func(_, message):
if not message.from_user: return
# we don't need reasons for unban, also, we # we don't need reasons for unban, also, we
# don't need to get "text_mention" entity, because # don't need to get "text_mention" entity, because
# normal users won't get text_mention if the user # normal users won't get text_mention if the user
@ -229,6 +233,7 @@ async def unban_func(_, message):
# Ban users listed in a message # Ban users listed in a message
@app.on_message(filters.user(SUDO) & filters.command("listban", COMMAND_HANDLER) & filters.group) @app.on_message(filters.user(SUDO) & filters.command("listban", COMMAND_HANDLER) & filters.group)
async def list_ban_(c, message): async def list_ban_(c, message):
if not message.from_user: return
userid, msglink_reason = await extract_user_and_reason(message) userid, msglink_reason = await extract_user_and_reason(message)
if not userid or not msglink_reason: if not userid or not msglink_reason:
return await message.reply_text("Provide a userid/username along with message link and reason to list-ban") return await message.reply_text("Provide a userid/username along with message link and reason to list-ban")
@ -278,6 +283,7 @@ async def list_ban_(c, message):
# Unban users listed in a message # Unban users listed in a message
@app.on_message(filters.user(SUDO) & filters.command("listunban", COMMAND_HANDLER) & filters.group) @app.on_message(filters.user(SUDO) & filters.command("listunban", COMMAND_HANDLER) & filters.group)
async def list_unban_(c, message): async def list_unban_(c, message):
if not message.from_user: return
userid, msglink = await extract_user_and_reason(message) userid, msglink = await extract_user_and_reason(message)
if not userid or not msglink: if not userid or not msglink:
return await message.reply_text("Provide a userid/username along with message link to list-unban") return await message.reply_text("Provide a userid/username along with message link to list-unban")
@ -320,6 +326,7 @@ async def list_unban_(c, message):
@app.on_message(filters.command("del", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("del", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_delete_messages") @adminsOnly("can_delete_messages")
async def deleteFunc(_, message): async def deleteFunc(_, message):
if not message.from_user: return
if not message.reply_to_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")
try: try:
@ -333,6 +340,7 @@ async def deleteFunc(_, message):
@app.on_message(filters.command(["promote", "fullpromote"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["promote", "fullpromote"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_promote_members") @adminsOnly("can_promote_members")
async def promoteFunc(client, message): async def promoteFunc(client, message):
if not message.from_user: return
try: try:
user_id = await extract_user(message) user_id = await extract_user(message)
umention = (await app.get_users(user_id)).mention umention = (await app.get_users(user_id)).mention
@ -377,6 +385,7 @@ async def promoteFunc(client, message):
@app.on_message(filters.command("demote", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("demote", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_promote_members") @adminsOnly("can_promote_members")
async def demote(client, message): async def demote(client, message):
if not message.from_user: return
user_id = await extract_user(message) user_id = await extract_user(message)
if not user_id: if not user_id:
return await message.reply_text("I can't find that user.") return await message.reply_text("I can't find that user.")
@ -403,6 +412,7 @@ async def demote(client, message):
@app.on_message(filters.command(["pin", "unpin"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["pin", "unpin"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_pin_messages") @adminsOnly("can_pin_messages")
async def pin(_, message): async def pin(_, message):
if not message.from_user: return
if not message.reply_to_message: if not message.reply_to_message:
return await message.reply_text("Reply to a message to pin/unpin it.") return await message.reply_text("Reply to a message to pin/unpin it.")
r = message.reply_to_message r = message.reply_to_message
@ -429,6 +439,7 @@ async def pin(_, message):
@app.on_message(filters.command(["mute", "tmute"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["mute", "tmute"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def mute(client, message): async def mute(client, message):
if not message.from_user: return
try: try:
user_id, reason = await extract_user_and_reason(message) user_id, reason = await extract_user_and_reason(message)
except Exception as err: except Exception as err:
@ -475,6 +486,7 @@ async def mute(client, message):
@app.on_message(filters.command("unmute", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("unmute", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def unmute(_, message): async def unmute(_, message):
if not message.from_user: return
user_id = await extract_user(message) user_id = await extract_user(message)
if not user_id: if not user_id:
return await message.reply_text("I can't find that user.") return await message.reply_text("I can't find that user.")
@ -487,6 +499,7 @@ async def unmute(_, message):
@app.on_message(filters.command("ban_ghosts", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("ban_ghosts", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def ban_deleted_accounts(_, message): async def ban_deleted_accounts(_, message):
if not message.from_user: return
chat_id = message.chat.id chat_id = message.chat.id
deleted_users = [] deleted_users = []
m = await message.reply("Finding ghosts...") m = await message.reply("Finding ghosts...")
@ -510,6 +523,7 @@ async def ban_deleted_accounts(_, message):
@app.on_message(filters.command(["warn", "dwarn"], COMMAND_HANDLER) & filters.group) @app.on_message(filters.command(["warn", "dwarn"], COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def warn_user(client, message): async def warn_user(client, message):
if not message.from_user: return
user_id, reason = await extract_user_and_reason(message) user_id, reason = await extract_user_and_reason(message)
chat_id = message.chat.id chat_id = message.chat.id
if not user_id: if not user_id:
@ -612,6 +626,7 @@ async def unban_user(_, cq):
@app.on_message(filters.command("rmwarn", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("rmwarn", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_restrict_members") @adminsOnly("can_restrict_members")
async def remove_warnings(_, message): async def remove_warnings(_, message):
if not message.from_user: return
if not message.reply_to_message: if not message.reply_to_message:
return await message.reply_text("Reply to a message to remove a user's warnings.") return await message.reply_text("Reply to a message to remove a user's warnings.")
user_id = message.reply_to_message.from_user.id user_id = message.reply_to_message.from_user.id
@ -631,6 +646,7 @@ async def remove_warnings(_, message):
@app.on_message(filters.command("warns", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("warns", COMMAND_HANDLER) & filters.group)
@capture_err @capture_err
async def check_warns(_, message): async def check_warns(_, message):
if not message.from_user: return
user_id = await extract_user(message) user_id = await extract_user(message)
if not user_id: if not user_id:
return await message.reply_text("I can't find that user.") return await message.reply_text("I can't find that user.")
@ -647,6 +663,7 @@ async def check_warns(_, message):
@app.on_message((filters.command("report", COMMAND_HANDLER) | filters.command(["admins", "admin"], prefixes="@")) & filters.group) @app.on_message((filters.command("report", COMMAND_HANDLER) | filters.command(["admins", "admin"], prefixes="@")) & filters.group)
@capture_err @capture_err
async def report_user(_, message): async def report_user(_, message):
if not message.from_user: return
if not message.reply_to_message: if not message.reply_to_message:
return await message.reply_text("Reply to a message to report that user.") return await message.reply_text("Reply to a message to report that user.")
reply = message.reply_to_message reply = message.reply_to_message

View file

@ -185,6 +185,7 @@ async def active_afk(_, message):
@app.on_message(filters.command("afkdel", COMMAND_HANDLER) & filters.group) @app.on_message(filters.command("afkdel", COMMAND_HANDLER) & filters.group)
@adminsOnly("can_change_info") @adminsOnly("can_change_info")
async def afk_state(_, message): async def afk_state(_, message):
if not message.from_user: return
usage = "**Usage:**\n/afkdel [ENABLE|DISABLE] to enable or disable auto delete message." usage = "**Usage:**\n/afkdel [ENABLE|DISABLE] to enable or disable auto delete message."
if len(message.command) == 1: if len(message.command) == 1:
return await kirimPesan(message, usage) return await kirimPesan(message, usage)

View file

@ -59,9 +59,10 @@ async def ytsearch(_, message):
await message.reply_photo(img, caption=caption, reply_markup=markup, quote=True) await message.reply_photo(img, caption=caption, reply_markup=markup, quote=True)
@app.on_message(filters.command(["ytdown"], COMMAND_HANDLER) & ~filters.channel) @app.on_message(filters.command(["ytdown"], COMMAND_HANDLER))
@capture_err @capture_err
async def ytdownv2(_, message): async def ytdownv2(_, message):
if not message.from_user: return
if len(message.command) == 1: if len(message.command) == 1:
return await message.reply("Please input a valid YT-DLP Supported URL") return await message.reply("Please input a valid YT-DLP Supported URL")
url = message.text.split(" ", maxsplit=1)[1] url = message.text.split(" ", maxsplit=1)[1]