akn-dev / akn /manage /antiban.py
randydev's picture
fix revert back and update
21bc372
raw
history blame
4.05 kB
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}")