/label command
This commit is contained in:
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
|
||||
|
||||
@@ -148,4 +150,20 @@ def killProc(pid):
|
||||
p.kill()
|
||||
|
||||
def should_quote(msg):
|
||||
return True if msg.chat.type is not ChatType.PRIVATE else False
|
||||
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