From 65b323b5abdecb05ff84106a8e4ed9caeef288c2 Mon Sep 17 00:00:00 2001 From: meltland Date: Sat, 8 Mar 2025 14:26:13 -0500 Subject: db things copied from hydrogen --- db.py | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 4 deletions(-) (limited to 'db.py') diff --git a/db.py b/db.py index de28d7a..3feef6c 100644 --- a/db.py +++ b/db.py @@ -20,7 +20,79 @@ except Exception as e: print(e) exit() -database = client["SoktDeer"] -postsd = database["Posts"] -usersd = database["Users"] -inboxd = database["Inbox"] \ No newline at end of file +database = client[os.getenv("DATABASE_NAME")] +postsd = database[os.getenv("POST_COLLECTION")] +usersd = database[os.getenv("USER_COLLECTION")] +inboxd = database[os.getenv("INBOX_COLLECTION")] + +class acc: + def get(username): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + else: + return user + + def add(data, username=None): + user = usersd.find_one({"username": username}) + if user: + return "exists" + try: + usersd.insert_one(data) + except Exception as e: + return "fail" + return True + + def edit(data, username): + filter = { 'username': username } + endr = { '$set': data } + try: + usersd.update_one(filter, endr) + except Exception as e: + print(e) + return False + return True + + def remove(username): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + try: + usersd.delete_one({"username": username}) + except: + return "fail" + return True + + def verify(username, token): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + if user["banned_until"] > round(time.time()): + return "banned" + elif user["secure"]["token"] != token: + return "unauthorized" + else: + return True + + def verify_pswd(username, password): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + if user["banned_until"] > round(time.time()): + return "banned" + elif not scrypt.verify(password, user["secure"]["password"]): + return "unauthorized" + else: + return {"token": user["secure"]["token"]} + + def get_ban(username): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + return {"banned_until": user["banned_until"], "ban_reason": user["secure"]["ban_reason"]} + + def get_perms(username): + user = usersd.find_one({"username": username}) + if not user: + return "notExists" + return user["permissions"] \ No newline at end of file -- cgit 1.4.1-2-gfad0