|
from pyrogram import Client as ren |
|
from pyrogram import * |
|
import requests |
|
import os |
|
from pyrogram.errors import * |
|
from pyrogram.types import * |
|
from akn.utils.database import db as db_client |
|
|
|
async def input_user(message: Message) -> str: |
|
"""Get the input from the user""" |
|
if len(message.command) < 2: |
|
output = "" |
|
else: |
|
try: |
|
output = message.text.split(" ", 1)[1].strip() or "" |
|
except IndexError: |
|
output = "" |
|
return output |
|
|
|
@ren.on_chat_member_updated( |
|
filters.chat("RendyProjects") |
|
) |
|
async def auto_no_username(client, event: ChatMemberUpdated): |
|
old_status = event.old_chat_member.status if event.old_chat_member else None |
|
new_status = event.new_chat_member.status if event.new_chat_member else None |
|
if not event.from_user.username: |
|
return await client.ban_chat_member( |
|
event.chat.id, |
|
event.from_user.id, |
|
) |
|
|
|
@ren.on_message(filters.command("bct") & filters.user(6477856957)) |
|
async def broadcasts(client: Client, message: Message): |
|
response = requests.get("https://randydev-ryu-js.hf.space/broadcast-user").json() |
|
DEVS = [1191668125] |
|
if message.reply_to_message: |
|
msg = message.reply_to_message |
|
done = 0 |
|
error = 0 |
|
private_users = [] |
|
for user in response["user_id"]: |
|
if not user in DEVS: |
|
try: |
|
if message.reply_to_message: |
|
await msg.forward(user) |
|
done += 1 |
|
except Exception: |
|
private_users.append(user) |
|
error += 1 |
|
await message.reply_text( |
|
f"Successfully sent to `{done}` users. Failed to Send Message To `{error}:` `{private_users}`" |
|
) |
|
|
|
def banuser_by_api_key(user_id): |
|
url = "https://randydev-ryu-js.hf.space/api/v1/key/api-key-ban" |
|
response = requests.post( |
|
url, |
|
params={"user_id": user_id}, |
|
headers={"x-api-key": os.environ.get("AKENOX_KEY")} |
|
) |
|
data_json = response.json() |
|
return data_json["message"] |
|
|
|
|
|
@ren.on_message( |
|
~filters.scheduled |
|
& filters.command(["maintance"]) |
|
& filters.user(6477856957) |
|
& filters.group |
|
& ~filters.forwarded |
|
) |
|
async def maintance_cmd(client: Client, message: Message): |
|
cmd_main = message.text.split(None, 1)[1] |
|
if not cmd_main: |
|
return await message.reply_text("Invalid Command") |
|
if cmd_main == "on": |
|
await db_client.fixed_maintance(True) |
|
await message.reply_text("Maintance Mode On") |
|
elif cmd_main == "off": |
|
await db_client.fixed_maintance(False) |
|
await message.reply_text("Maintance Mode Off") |
|
else: |
|
await message.reply_text("Invalid Command") |
|
|
|
@ren.on_message( |
|
~filters.scheduled |
|
& filters.command(["antiban"]) |
|
& filters.user(6477856957) |
|
& filters.group |
|
& ~filters.forwarded |
|
) |
|
async def globalbanres(client: Client, message: Message): |
|
if not message.reply_to_message: |
|
if len(message.command) < 2: |
|
return await message.reply_text( |
|
"Reply to a user or pass a username/id to gban." |
|
) |
|
try: |
|
user = await client.get_users(message.command[1]) |
|
except Exception as e: |
|
return await message.reply_text(f"`{str(e)}`") |
|
reason = ( |
|
message.text.split(None, 2)[2] |
|
if len(message.text.split()) > 2 |
|
else "No reason provided." |
|
) |
|
else: |
|
user = message.reply_to_message.from_user |
|
reason = await input_user(message) or "No reason provided." |
|
if user.is_self: |
|
return await message.reply_text("I can't gban myself.") |
|
if user.id == client.me.id: |
|
return await message.reply_text("I can't gban my auth user.") |
|
if user.id == 6477856957: |
|
return await message.reply_text("I can't gban my auth user.") |
|
try: |
|
response_key = banuser_by_api_key(user.id) |
|
await message.reply_text( |
|
f"\n-{response_key}" |
|
) |
|
except Exception as e: |
|
await message.reply_text(f"Error: {e}") |