telethon_upload / bot /modules /decorators.py
privateone's picture
Upload 40 files
861d763 verified
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