video-stream/program/utils/function.py
2022-03-02 21:01:45 +08:00

41 lines
1.3 KiB
Python

from typing import Optional
from pyrogram import Client
from driver.core import user
from pyrogram.raw.functions.channels import GetFullChannel
from pyrogram.raw.functions.messages import GetFullChat
from pyrogram.types import Message
from pyrogram.raw.types import (
InputGroupCall,
InputPeerChannel,
InputPeerChat,
)
async def get_calls(c: Client, m: Message, err_msg: str = "") -> Optional[InputGroupCall]:
chat_peer = await user.resolve_peer(m.chat.id)
if isinstance(chat_peer, (InputPeerChannel, InputPeerChat)):
if isinstance(chat_peer, InputPeerChannel):
full_chat = (await user.send(GetFullChannel(channel=chat_peer))).full_chat
elif isinstance(chat_peer, InputPeerChat):
full_chat = (
await user.send(GetFullChat(chat_id=chat_peer.chat_id))
).full_chat
if full_chat is not None:
return full_chat.call
await c.send_message(m.chat.id, f"❌ no group calls found\n\n» `{err_msg}`")
return False
def bytes(size: float) -> str:
if not size:
return ""
power = 1024
t_n = 0
power_dict = {0: " ", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"}
while size > power:
size /= power
t_n += 1
return "{:.2f} {}B".format(size, power_dict[t_n])