TelegramPoster/classes/user.py

32 lines
1.2 KiB
Python

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()})