Improving class

This commit is contained in:
Profitroll 2022-12-11 19:12:41 +01:00
parent 03ebeafdd4
commit d40a17e668

View File

@ -1,8 +1,9 @@
from app import isAnAdmin
from typing import List, Union
from typing import Any, List, Union
from pyrogram.types import User, ChatMember, ChatPrivileges, Chat
from pyrogram.client import Client
from modules.database import col_users, col_context, col_warnings, col_applications, col_sponsorships
from modules.logging import logWrite
from modules.utils import configGet
class UserNotFoundError(Exception):
@ -42,7 +43,12 @@ class HoloUser():
self.db_id = holo_user["_id"]
self.link = holo_user["link"]
self.label = holo_user["label"]
self.name = holo_user["tg_name"]
self.phone = holo_user["tg_phone"]
self.locale = holo_user["tg_locale"]
self.username = holo_user["tg_username"]
async def set_label(self, app: Client, chat: Chat, label: str):
"""Set label in destination group
@ -68,3 +74,16 @@ class HoloUser():
await app.promote_chat_member(configGet("destination_group"), self.id, privileges=ChatPrivileges(
can_manage_chat=False
))
def set(self, key: str, value: Any) -> None:
"""Set attribute data and save it into database
### Args:
* `key` (`str`): Attribute to be changed
* `value` (`Any`): Value to set
"""
if not hasattr(self, key):
raise AttributeError()
setattr(self, key, value)
col_users.update_one(filter={"_id": self.db_id}, update={ "$set": { key: value } }, upsert=True)
logWrite(f"Set attribute {key} of user {self.id} to {value}")