Changed find_user behavior

This commit is contained in:
2023-08-17 15:21:08 +02:00
parent 8dad53409b
commit 4cbb51ca61
2 changed files with 8 additions and 34 deletions

View File

@@ -1,45 +1,24 @@
from typing import Union
from libbot.pyrogram.classes import PyroClient
from libbot.pyrogram.classes import PyroClient as LibPyroClient
from pyrogram.types import User
from classes.pyrouser import PyroUser
from modules.database import col_users
class PyroClient(PyroClient):
class PyroClient(LibPyroClient):
async def find_user(self, user: Union[int, User]) -> PyroUser:
"""Find User by it's ID or User object.
### ⚠️ WARNING
Method is deprecated, `PyroUser.find()` is a preferred way to find users
### Args:
* user (`Union[int, User]`): ID or User object to extract ID from
### Returns:
* `PyroUser`: PyroUser object
"""
if (
await col_users.find_one(
{"id": user.id if isinstance(user, User) else user}
)
is None
):
await col_users.insert_one(
{
"id": user.id if isinstance(user, User) else user,
"locale": user.language_code if isinstance(user, User) else None,
}
)
db_record = await col_users.find_one(
{"id": user.id if isinstance(user, User) else user}
return (
await PyroUser.find(user)
if isinstance(user, int)
else await PyroUser.find(user.id, locale=user.language_code)
)
if db_record is None:
raise TypeError(
f"User with ID {user.id if isinstance(user, User) else user} was not found in the database"
)
return PyroUser(**db_record)