Games-In-Arabic / utils /guards.py
qqqsfasdf's picture
Upload 60 files
8d21059 verified
raw
history blame contribute delete
902 Bytes
# utils/guards.py
import functools
import logging
from telegram import Update
from telegram.ext import ContextTypes
import config
logger = logging.getLogger(__name__)
def is_admin(uid: int) -> bool:
return uid in config.ADMIN_IDS
def admin_only(func):
@functools.wraps(func)
async def wrapper(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
uid = update.effective_user.id if update.effective_user else 0
if not is_admin(uid):
logger.warning(f"[GUARD] ุฑููุถ uid={uid} โ†’ {func.__name__}")
if update.message:
await update.message.reply_text("โŒ ู‡ุฐุง ุงู„ุฃู…ุฑ ู„ู„ู…ุดุฑููŠู† ูู‚ุท.")
elif update.callback_query:
await update.callback_query.answer("โŒ ู‡ุฐุง ุงู„ุฃู…ุฑ ู„ู„ู…ุดุฑููŠู† ูู‚ุท.", show_alert=True)
return
return await func(update, ctx)
return wrapper