from typing import Union from libbot.pyrogram.classes import PyroClient as LibPyroClient from pyrogram.types import User from classes.pyrogroup import PyroGroup from classes.pyrouser import PyroUser class PyroClient(LibPyroClient): async def find_user(self, user: Union[int, User], *args, **kwargs) -> PyroUser: """Find User by it's ID or User object. ### Args: * user (`Union[int, User]`): ID or User object to extract ID from ### Returns: * `PyroUser`: PyroUser object """ return ( await PyroUser.find(user, *args, **kwargs) if isinstance(user, int) else await PyroUser.find(user.id, *args, **kwargs) ) async def find_group(self, id: int, *args, **kwargs) -> PyroGroup: """Find Group by it's ID. ### Args: * id (`int`): Group ID ### Returns: * `PyroGroup`: PyroGroup object """ return await PyroGroup.find(id, *args, **kwargs)