Merge pull request 'main' (#43) from React-Group/interstellar_ai:main into main

Reviewed-on: https://interstellardevelopment.org/code/code/sageTheDm/interstellar_ai/pulls/43
This commit is contained in:
sageTheDm 2024-10-07 16:37:11 +02:00
commit 0b5438ec82

View file

@ -9,11 +9,11 @@ class DB:
self.database = {} self.database = {}
def ensure_username(self, data): def ensure_username(self, data):
if 'username' in data: if "username" in data:
return data.get('username') return data.get("username")
elif 'email' in data: elif "email" in data:
for index, entry in self.database: for index, entry in self.database.items():
if entry.get('email') == data.get('email'): if entry.get("email") == data.get("email"):
return index return index
@staticmethod @staticmethod
@ -23,11 +23,16 @@ class DB:
return hashed_password return hashed_password
def add_user(self, data): def add_user(self, data):
username = data.get('username') username = data.get("username")
password = data.get('password') password = data.get("password")
email = data.get('email') email = data.get("email")
hashed_password = self.hash_password(password) hashed_password = self.hash_password(password)
user_data = {"hashed_password": hashed_password, "email": email, "settings": None, "history": None} user_data = {
"hashed_password": hashed_password,
"email": email,
"settings": None,
"history": None,
}
if username not in self.database: if username not in self.database:
self.database[username] = user_data self.database[username] = user_data
self.save_database() self.save_database()
@ -45,7 +50,7 @@ class DB:
def update_password(self, data): def update_password(self, data):
username = self.ensure_username(data) username = self.ensure_username(data)
new_password = data.get('new_password') new_password = data.get("new_password")
if not self.check_credentials(data): if not self.check_credentials(data):
return False return False
@ -56,7 +61,7 @@ class DB:
def check_credentials(self, data): def check_credentials(self, data):
username = self.ensure_username(data) username = self.ensure_username(data)
password = data.get('password') password = data.get("password")
if username not in self.database: if username not in self.database:
return False return False
@ -70,7 +75,7 @@ class DB:
if not self.check_credentials(data): if not self.check_credentials(data):
return False return False
self.database[username]['settings'] = data.get('data') self.database[username]["settings"] = data.get("data")
self.save_database() self.save_database()
return True return True
@ -79,7 +84,7 @@ class DB:
if not self.check_credentials(data): if not self.check_credentials(data):
return None return None
send_back = self.database[username].get('settings') send_back = self.database[username].get("settings")
return send_back return send_back
def change_history(self, data): def change_history(self, data):
@ -87,7 +92,7 @@ class DB:
if not self.check_credentials(data): if not self.check_credentials(data):
return False return False
self.database[username]['history'] = data.get('data') self.database[username]["history"] = data.get("data")
self.save_database() self.save_database()
return True return True
@ -96,7 +101,7 @@ class DB:
if not self.check_credentials(data): if not self.check_credentials(data):
return None return None
send_back = self.database[username].get('history') send_back = self.database[username].get("history")
return send_back return send_back
def get_email(self, data): def get_email(self, data):
@ -104,11 +109,10 @@ class DB:
if not self.check_credentials(data): if not self.check_credentials(data):
return None return None
send_back = self.database[username].get('email') send_back = self.database[username].get("email")
return send_back return send_back
def get_name(self, data): def get_name(self, data):
username = self.ensure_username(data)
if not self.check_credentials(data): if not self.check_credentials(data):
return None return None
@ -116,18 +120,18 @@ class DB:
return send_back return send_back
def save_database(self): def save_database(self):
if os.environ.get('PRODUCTION') == "YES": if os.environ.get("PRODUCTION") == "YES":
server = pycouchdb.Server("http://admin:admin@localhost:5984/") server = pycouchdb.Server("http://admin:admin@localhost:5984/")
db = server.database("interstellar_ai") db = server.database("interstellar_ai")
db.save(self.database) db.save(self.database)
else: else:
with open("database.json", 'w') as file: with open("database.json", "w") as file:
print("saving") print("saving")
json.dump(self.database, file) json.dump(self.database, file)
def load_database(self): def load_database(self):
if os.environ.get('PRODUCTION') == "YES": if os.environ.get("PRODUCTION") == "YES":
server = pycouchdb.Server("http://admin:admin@localhost:5984/") server = pycouchdb.Server("http://admin:admin@localhost:5984/")
db = server.database("interstellar_ai") db = server.database("interstellar_ai")
if db: if db:
@ -138,7 +142,7 @@ class DB:
db.save(self.database) db.save(self.database)
else: else:
try: try:
with open("database.json", 'r') as file: with open("database.json", "r") as file:
self.database = json.load(file) self.database = json.load(file)
except FileNotFoundError: except FileNotFoundError:
pass pass