Working on #14

This commit is contained in:
kku
2024-12-16 16:25:35 +01:00
parent 41112018da
commit 454ce2b6fb
7 changed files with 62 additions and 50 deletions

View File

@@ -5,7 +5,7 @@ import discord
import discord.member
from libbot import config_get
from modules.database import col_users, col_warnings
from modules.database import col_warnings, sync_col_users, sync_col_warnings, col_users
logger = logging.getLogger(__name__)
@@ -40,7 +40,7 @@ class HoloUser:
else:
self.id = user
jav_user = col_users.find_one({"user": self.id})
jav_user = sync_col_users.find_one({"user": self.id})
if jav_user is None:
raise UserNotFoundError(user=user, user_id=self.id)
@@ -57,29 +57,29 @@ class HoloUser:
### Returns:
* `int`: Number of warnings
"""
warns = col_warnings.find_one({"user": self.id})
warns = sync_col_warnings.find_one({"user": self.id})
return 0 if warns is None else warns["warns"]
def warn(self, count=1, reason: str = "Not provided") -> None:
async def warn(self, count=1, reason: str = "Not provided") -> None:
"""Warn and add count to warns number
### Args:
* `count` (int, optional): Count of warnings to be added. Defaults to 1.
"""
warns = col_warnings.find_one({"user": self.id})
warns = await col_warnings.find_one({"user": self.id})
if warns is not None:
col_warnings.update_one(
filter={"_id": self.db_id},
update={"$set": {"warns": warns["warns"] + count}},
await col_warnings.update_one(
{"_id": self.db_id},
{"$set": {"warns": warns["warns"] + count}},
)
else:
col_warnings.insert_one(document={"user": self.id, "warns": count})
await col_warnings.insert_one(document={"user": self.id, "warns": count})
logger.info(f"User {self.id} was warned {count} times due to: {reason}")
def set(self, key: str, value: Any) -> None:
async def set(self, key: str, value: Any) -> None:
"""Set attribute data and save it into database
### Args:
@@ -90,14 +90,16 @@ class HoloUser:
raise AttributeError()
setattr(self, key, value)
col_users.update_one(
filter={"_id": self.db_id}, update={"$set": {key: value}}, upsert=True
await col_users.update_one(
{"_id": self.db_id}, {"$set": {key: value}}, upsert=True
)
logger.info(f"Set attribute {key} of user {self.id} to {value}")
@staticmethod
async def is_moderator(
self, member: Union[discord.User, discord.Member, discord.member.Member]
member: Union[discord.User, discord.Member, discord.member.Member]
) -> bool:
"""Check if user is moderator or council member
@@ -119,8 +121,9 @@ class HoloUser:
return False
@staticmethod
async def is_council(
self, member: Union[discord.User, discord.Member, discord.member.Member]
member: Union[discord.User, discord.Member, discord.member.Member]
) -> bool:
"""Check if user is a member of council