from telethon.events import NewMessage, CallbackQuery from telethon.tl.custom import Message from typing import Callable from functools import wraps from bot.config import Telegram from bot.modules.static import * def byte_to_gb_mb(size: int) -> str: if not size: return "" power = 2 ** 10 number = 0 dict_power_n = { 0: " ", 1: "K", 2: "M", 3: "G", 4: "T", 5: "P" } while size > power: size /= power number += 1 return str(round(size, 2)) + " " + dict_power_n[number] + 'B' def verify_user(private: bool = False): def decorator(func: Callable): @wraps(func) async def wrapper(update: NewMessage.Event | CallbackQuery.Event): if private and not update.is_private: return chat_id = str(update.chat_id) if not Telegram.ALLOWED_USER_IDS or chat_id in Telegram.ALLOWED_USER_IDS: return await func(update) return wrapper return decorator