Set some consts as final

This commit is contained in:
Georges-Antoine Assi
2023-08-14 15:00:19 -04:00
parent 91e0f6edff
commit da5d56b8bc
4 changed files with 51 additions and 52 deletions

View File

@@ -1,56 +1,55 @@
import os
import secrets
from dotenv import load_dotenv
from typing import Final
load_dotenv()
# UVICORN
DEV_PORT: int = int(os.environ.get("VITE_BACKEND_DEV_PORT", "5000"))
DEV_HOST: str = "0.0.0.0"
DEV_PORT: Final = int(os.environ.get("VITE_BACKEND_DEV_PORT", "5000"))
DEV_HOST: Final = "0.0.0.0"
# PATHS
ROMM_BASE_PATH: str = os.environ.get("ROMM_BASE_PATH", "/romm")
LIBRARY_BASE_PATH: str = f"{ROMM_BASE_PATH}/library"
FRONT_LIBRARY_PATH: str = "/assets/romm/library"
ROMM_USER_CONFIG_PATH: str = f"{ROMM_BASE_PATH}/config.yml"
SQLITE_DB_BASE_PATH: str = f"{ROMM_BASE_PATH}/database"
RESOURCES_BASE_PATH: str = f"{ROMM_BASE_PATH}/resources"
LOGS_BASE_PATH: str = f"{ROMM_BASE_PATH}/logs"
HIGH_PRIO_STRUCTURE_PATH: str = f"{LIBRARY_BASE_PATH}/roms"
ROMM_BASE_PATH: Final = os.environ.get("ROMM_BASE_PATH", "/romm")
LIBRARY_BASE_PATH: Final = f"{ROMM_BASE_PATH}/library"
FRONT_LIBRARY_PATH: Final = "/assets/romm/library"
ROMM_USER_CONFIG_PATH: Final = f"{ROMM_BASE_PATH}/config.yml"
SQLITE_DB_BASE_PATH: Final = f"{ROMM_BASE_PATH}/database"
RESOURCES_BASE_PATH: Final = f"{ROMM_BASE_PATH}/resources"
LOGS_BASE_PATH: Final = f"{ROMM_BASE_PATH}/logs"
HIGH_PRIO_STRUCTURE_PATH: Final = f"{LIBRARY_BASE_PATH}/roms"
# DEFAULT RESOURCES
DEFAULT_URL_COVER_L: str = (
"https://images.igdb.com/igdb/image/upload/t_cover_big/nocover.png"
)
DEFAULT_PATH_COVER_L: str = "default/default/cover/big.png"
DEFAULT_URL_COVER_S: str = (
"https://images.igdb.com/igdb/image/upload/t_cover_small/nocover.png"
)
DEFAULT_PATH_COVER_S: str = "default/default/cover/small.png"
DEFAULT_URL_COVER_L: Final = "https://images.igdb.com/igdb/image/upload/t_cover_big/nocover.png"
DEFAULT_PATH_COVER_L: Final = "default/default/cover/big.png"
DEFAULT_URL_COVER_S: Final = "https://images.igdb.com/igdb/image/upload/t_cover_small/nocover.png"
DEFAULT_PATH_COVER_S: Final = "default/default/cover/small.png"
# MARIADB
DB_HOST = os.environ.get("DB_HOST", "127.0.0.1")
DB_PORT: int = int(os.environ.get("DB_PORT", 3306))
DB_USER = os.environ.get("DB_USER")
DB_PASSWD = os.environ.get("DB_PASSWD")
DB_NAME = os.environ.get("DB_NAME", "romm")
DB_HOST: Final = os.environ.get("DB_HOST", "127.0.0.1")
DB_PORT: Final = int(os.environ.get("DB_PORT", 3306))
DB_USER: Final = os.environ.get("DB_USER")
DB_PASSWD: Final = os.environ.get("DB_PASSWD")
DB_NAME: Final = os.environ.get("DB_NAME", "romm")
# REDIS
REDIS_HOST = os.environ.get('REDIS_HOST', 'localhost')
REDIS_PORT = os.environ.get('REDIS_PORT', '6379')
REDIS_HOST: Final = os.environ.get("REDIS_HOST", "localhost")
REDIS_PORT: Final = os.environ.get("REDIS_PORT", "6379")
# IGDB
CLIENT_ID = os.environ.get("CLIENT_ID", "")
CLIENT_SECRET = os.environ.get("CLIENT_SECRET", "")
CLIENT_ID: Final = os.environ.get("CLIENT_ID", "")
CLIENT_SECRET: Final = os.environ.get("CLIENT_SECRET", "")
# STEAMGRIDDB
STEAMGRIDDB_API_KEY = os.environ.get("STEAMGRIDDB_API_KEY", "")
STEAMGRIDDB_API_KEY: Final = os.environ.get("STEAMGRIDDB_API_KEY", "")
# DB DRIVERS
ROMM_DB_DRIVER = os.environ.get("ROMM_DB_DRIVER", "sqlite")
ROMM_DB_DRIVER: Final = os.environ.get("ROMM_DB_DRIVER", "sqlite")
# AUTH
ROMM_AUTH_ENABLED = os.environ.get("ROMM_AUTH_ENABLED", "false") == "true"
ROMM_AUTH_USERNAME = os.environ.get("ROMM_AUTH_USERNAME", "admin")
ROMM_AUTH_PASSWORD = os.environ.get("ROMM_AUTH_PASSWORD", "admin")
ROMM_AUTH_SECRET_KEY = os.environ.get("ROMM_AUTH_SECRET_KEY", secrets.token_hex(32))
ROMM_AUTH_ENABLED: Final = os.environ.get("ROMM_AUTH_ENABLED", "false") == "true"
ROMM_AUTH_USERNAME: Final = os.environ.get("ROMM_AUTH_USERNAME", "admin")
ROMM_AUTH_PASSWORD: Final = os.environ.get("ROMM_AUTH_PASSWORD", "admin")
ROMM_AUTH_SECRET_KEY: Final = os.environ.get(
"ROMM_AUTH_SECRET_KEY", secrets.token_hex(32)
)

View File

@@ -1,4 +1,4 @@
from typing import Annotated
from typing import Annotated, Final
from datetime import timedelta
from fastapi import Depends, APIRouter, HTTPException, status
@@ -11,8 +11,8 @@ from utils.oauth import (
)
ACCESS_TOKEN_EXPIRE_MINUTES = 30
REFRESH_TOKEN_EXPIRE_DAYS = 7
ACCESS_TOKEN_EXPIRE_MINUTES: Final = 30
REFRESH_TOKEN_EXPIRE_DAYS : Final = 7
router = APIRouter()

View File

@@ -6,6 +6,7 @@ import re
import time
from unidecode import unidecode as uc
from requests.exceptions import HTTPError, Timeout
from typing import Final
from config import CLIENT_ID, CLIENT_SECRET
from utils import get_file_name_with_no_tags as get_search_term
@@ -13,12 +14,11 @@ from logger.logger import log
from utils.cache import cache
from .ps2_opl_index import opl_index
MAIN_GAME_CATEGORY = 0
EXPANDED_GAME_CATEGORY = 10
N_SCREENSHOTS = 5
PS2_IGDB_ID = 8
ps2_opl_regex = r"^([A-Z]{4}_\d{3}\.\d{2})\..*$"
MAIN_GAME_CATEGORY: Final = 0
EXPANDED_GAME_CATEGORY: Final = 10
N_SCREENSHOTS: Final = 5
PS2_IGDB_ID: Final = 8
PS2_OPL_REGEX: Final = r"^([A-Z]{4}_\d{3}\.\d{2})\..*$"
class IGDBHandler:
@@ -119,8 +119,8 @@ class IGDBHandler:
def get_rom(self, file_name: str, p_igdb_id: int):
search_term = get_search_term(file_name)
# Patch support for PS2 OPL filename format
match = re.match(ps2_opl_regex, search_term)
# Patch support for PS2 OPL flename format
match = re.match(PS2_OPL_REGEX, search_term)
if p_igdb_id == PS2_IGDB_ID and match:
serial_code = match.group(1)
index_entry = opl_index.get(serial_code, None)

View File

@@ -1,5 +1,5 @@
from datetime import datetime, timedelta
from typing import Optional, Callable
from typing import Optional, Callable, Final
from jose import JWTError, jwt
from fastapi import HTTPException, status, Security
from fastapi.param_functions import Form
@@ -8,28 +8,28 @@ from fastapi.types import DecoratedCallable
from config import ROMM_AUTH_SECRET_KEY
ALGORITHM = "HS256"
ALGORITHM: Final = "HS256"
DEFAULT_SCOPES_MAP = {
DEFAULT_SCOPES_MAP: Final = {
"me.read": "View your profile",
"me.write": "Modify your profile",
"roms.read": "View ROMs",
"platforms.read": "View platforms",
}
WRITE_SCOPES_MAP = {
WRITE_SCOPES_MAP: Final = {
"roms.write": "Modify ROMs",
"platforms.write": "Modify platforms",
}
FULL_SCOPES_MAP = {
FULL_SCOPES_MAP: Final = {
"users.read": "View users",
"users.write": "Modify users",
}
DEFAULT_SCOPES = list(DEFAULT_SCOPES_MAP.keys())
WRITE_SCOPES = DEFAULT_SCOPES + list(WRITE_SCOPES_MAP.keys())
FULL_SCOPES = WRITE_SCOPES + list(FULL_SCOPES_MAP.keys())
DEFAULT_SCOPES: Final = list(DEFAULT_SCOPES_MAP.keys())
WRITE_SCOPES: Final = DEFAULT_SCOPES + list(WRITE_SCOPES_MAP.keys())
FULL_SCOPES: Final = WRITE_SCOPES + list(FULL_SCOPES_MAP.keys())
credentials_exception = HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,