/label command
This commit is contained in:
parent
65b7b365d2
commit
c0f6bd8b11
@ -48,6 +48,7 @@
|
||||
"commands_admin": {
|
||||
"reboot": "Restart the bot",
|
||||
"message": "Send a message",
|
||||
"label": "Set user's nickname",
|
||||
"warnings": "Check user's warnings",
|
||||
"application": "Check user's application",
|
||||
"applications": "Retrieve all applications as a JSON"
|
||||
@ -55,6 +56,7 @@
|
||||
"commands_group_admin": {
|
||||
"reboot": "Restart the bot",
|
||||
"message": "Send a message",
|
||||
"label": "Set user's nickname",
|
||||
"warnings": "Check user's warnings",
|
||||
"application": "Check user's application",
|
||||
"applications": "Retrieve all applications as a JSON"
|
||||
|
@ -13,6 +13,7 @@ pid = getpid()
|
||||
# Importing
|
||||
from modules.commands.application import *
|
||||
from modules.commands.applications import *
|
||||
from modules.commands.label import *
|
||||
from modules.commands.message import *
|
||||
from modules.commands.reapply import *
|
||||
from modules.commands.reboot import *
|
||||
|
20
modules/commands/label.py
Normal file
20
modules/commands/label.py
Normal file
@ -0,0 +1,20 @@
|
||||
from app import app
|
||||
from pyrogram import filters
|
||||
from modules.utils import should_quote, find_user
|
||||
|
||||
@app.on_message(~ filters.scheduled & filters.private & filters.command(["label"], prefixes=["/"]))
|
||||
async def cmd_label(app, msg):
|
||||
|
||||
if len(msg.command) < 3:
|
||||
await msg.reply_text("Invalid syntax:\n`/label USER NICKNAME`")
|
||||
return
|
||||
|
||||
target = await find_user(app, msg.command[1])
|
||||
|
||||
if target is not None:
|
||||
|
||||
nickname = " ".join(msg.command[2:])
|
||||
await msg.reply_text(f"Setting **{target.id}**'s label to **{nickname}**...", quote=should_quote(msg))
|
||||
|
||||
else:
|
||||
await msg.reply_text(f"User not found")
|
@ -1,6 +1,8 @@
|
||||
from typing import Any, Union
|
||||
from pyrogram.enums.chat_type import ChatType
|
||||
from pyrogram.types import User
|
||||
from pyrogram.client import Client
|
||||
from pyrogram.errors import bad_request_400
|
||||
from ujson import JSONDecodeError as JSONDecodeError
|
||||
from ujson import loads, dumps
|
||||
|
||||
@ -149,3 +151,19 @@ def killProc(pid):
|
||||
|
||||
def should_quote(msg):
|
||||
return True if msg.chat.type is not ChatType.PRIVATE else False
|
||||
|
||||
async def find_user(app: Client, query: Union[str, int]):
|
||||
try:
|
||||
result = await app.get_users(int(query))
|
||||
if result == [] or result == None:
|
||||
raise TypeError
|
||||
except (TypeError, ValueError):
|
||||
try:
|
||||
result = await app.get_users(query)
|
||||
except bad_request_400.UsernameNotOccupied:
|
||||
return None
|
||||
except bad_request_400.UsernameInvalid:
|
||||
return None
|
||||
except bad_request_400.PeerIdInvalid:
|
||||
return None
|
||||
return result
|
Reference in New Issue
Block a user