From ccec4cdf27931fef376242cd856c7831b692c840 Mon Sep 17 00:00:00 2001 From: Beesquit Date: Sun, 31 Aug 2025 22:31:07 +0300 Subject: [PATCH] Fixed looped dependencies and updated logging --- src/api/accounts.py | 3 ++- src/api/models.py | 2 +- src/api/string_tools.py | 22 ++++++++++++++++++++++ src/api/utils.py | 21 --------------------- src/create_app.py | 4 +++- src/settings/startup_settings.py | 7 ++++--- 6 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 src/api/string_tools.py diff --git a/src/api/accounts.py b/src/api/accounts.py index d7930ff..c3488a4 100644 --- a/src/api/accounts.py +++ b/src/api/accounts.py @@ -6,7 +6,8 @@ from psycopg2._psycopg import connection import db.accounts as db import settings.settings as settings from api.models import Account, User -from api.utils import encode_str, get_current_user +from api.string_tools import encode_str +from api.utils import get_current_user from db.groups import check_group_author from db.internal import get_db_connection diff --git a/src/api/models.py b/src/api/models.py index ba13b6c..f164966 100644 --- a/src/api/models.py +++ b/src/api/models.py @@ -2,7 +2,7 @@ from datetime import datetime from pydantic import BaseModel -from api.utils import decode_str +from api.string_tools import decode_str class Token(BaseModel): diff --git a/src/api/string_tools.py b/src/api/string_tools.py new file mode 100644 index 0000000..95c168b --- /dev/null +++ b/src/api/string_tools.py @@ -0,0 +1,22 @@ +import settings.startup_settings as startup_settings + + +def encode_str(string) -> str: + key = startup_settings.secret_key + encoded_chars = [] + for i in range(len(string)): + key_c = key[i % len(key)] + encoded_c = chr(ord(string[i]) + ord(key_c) % 256) + encoded_chars.append(encoded_c) + encoded_string = ''.join(encoded_chars) + return encoded_string + +def decode_str(encoded_string) -> str: + key = startup_settings.secret_key + encoded_chars = [] + for i in range(len(encoded_string)): + key_c = key[i % len(key)] + encoded_c = chr((ord(encoded_string[i]) - ord(key_c) + 256) % 256) + encoded_chars.append(encoded_c) + decoded_string = ''.join(encoded_chars) + return decoded_string diff --git a/src/api/utils.py b/src/api/utils.py index 1a5c74b..a3a47a0 100644 --- a/src/api/utils.py +++ b/src/api/utils.py @@ -17,27 +17,6 @@ from db.internal import get_db_connection oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") -def encode_str(string) -> str: - key = startup_settings.secret_key - encoded_chars = [] - for i in range(len(string)): - key_c = key[i % len(key)] - encoded_c = chr(ord(string[i]) + ord(key_c) % 256) - encoded_chars.append(encoded_c) - encoded_string = ''.join(encoded_chars) - return encoded_string - -def decode_str(encoded_string) -> str: - key = startup_settings.secret_key - encoded_chars = [] - for i in range(len(encoded_string)): - key_c = key[i % len(key)] - encoded_c = chr((ord(encoded_string[i]) - ord(key_c) + 256) % 256) - encoded_chars.append(encoded_c) - decoded_string = ''.join(encoded_chars) - return decoded_string - - def verify_password(plain_password: str, hashed_password: str): return bcrypt.checkpw(plain_password.encode("utf-8"), hashed_password.encode("utf-8")) diff --git a/src/create_app.py b/src/create_app.py index a092769..573e388 100644 --- a/src/create_app.py +++ b/src/create_app.py @@ -16,6 +16,7 @@ from api.users import users_router from db.internal import connect_db, disconnect_db from settings import startup_settings from settings.settings import settings_down, settings_up +from settings.startup_settings import setup_settings docs_url = None if startup_settings.swagger_enabled: @@ -33,11 +34,12 @@ def create_app(): { "sink": sys.stdout, "level": startup_settings.log_level, - "format": "{level}: {message}", + "format": "{level}: {message}", } ] ) + app.add_event_handler("startup", setup_settings) app.add_event_handler("startup", connect_db) app.add_event_handler("startup", settings_up) diff --git a/src/settings/startup_settings.py b/src/settings/startup_settings.py index 064a259..ea08b83 100644 --- a/src/settings/startup_settings.py +++ b/src/settings/startup_settings.py @@ -1,4 +1,5 @@ from decouple import Csv, config +from loguru import logger from .consts import SUPPORTED_PLATFORMS @@ -29,7 +30,7 @@ def setup_settings(): for platform in platforms_enabled: if platform.lower() in SUPPORTED_PLATFORMS: platforms_supported_and_enabled.append(platform.lower()) + else: + logger.warning(f"Platform {platform} is not supported by design. It will not be used.") + logger.info(f"Supported platforms list: {platforms_supported_and_enabled}") platforms_enabled = platforms_supported_and_enabled - - -setup_settings()