modularize src

+ merge main.py and manage.py
+ move start logic to swingmusic/__main__.py
+ add a run.py on the project root
This commit is contained in:
cwilvx
2025-05-25 20:35:54 +03:00
parent 76fc97e088
commit 86fabcd5e3
171 changed files with 658 additions and 627 deletions
+43
View File
@@ -0,0 +1,43 @@
import hmac
import hashlib
from flask_jwt_extended import current_user
from swingmusic.config import UserConfig
def hash_password(password: str) -> str:
"""
Hashes the given password using sha256 algorithm and the user id as salt.
:param password: The password to hash.
:return: The hashed password.
"""
return hashlib.pbkdf2_hmac(
"sha256", password.encode("utf-8"), UserConfig().serverId.encode("utf-8"), 100000
).hex()
def check_password(password: str, hashed: str) -> bool:
"""
This function checks if the given password matches the hashed password.
:param password: The password to check.
:param hashed: The hashed password.
:return: Whether the password matches.
"""
return hmac.compare_digest(hash_password(password), hashed)
def get_current_userid() -> int:
"""
Get the current session user.
"""
try:
return current_user["id"]
except RuntimeError:
# Catch this error raised during migration execution
return 1