from modules.app import app from datetime import datetime from modules.database import col_banned, col_users from modules.utils import configGet class PosterUser(): def __init__(self, id: int): self.id = id def is_blocked(self) -> bool: return False if col_banned.find_one({"user": self.id}) is None else True def block(self) -> None: if col_banned.find_one({"user": self.id}) is None: col_banned.insert_one({"user": self.id, "date": datetime.now()}) def unblock(self) -> None: col_banned.find_one_and_delete({"user": self.id}) def is_limited(self) -> bool: if self.id in app.admins: return False else: db_record = col_users.find_one({"user": self.id}) if db_record is None: return False return True if (datetime.now() - db_record["cooldown"]).total_seconds() < configGet("timeout", "submission") else False def limit(self) -> None: if col_users.find_one_and_update({"user": self.id}, {"$set": {"cooldown": datetime.now()}}) is None: col_users.insert_one({"user": self.id, "cooldown": datetime.now()})