From dd76b8c7f8b97c1df9abbd8937313c51e8940217 Mon Sep 17 00:00:00 2001 From: cwilvx Date: Wed, 18 Jun 2025 14:38:43 +0300 Subject: [PATCH] add app version output to version.txt + refactor main entry point + add debug logging in image extraction --- Dockerfile | 3 +++ swingmusic/__main__.py | 8 ++------ swingmusic/api/__init__.py | 2 +- swingmusic/lib/populate.py | 12 ++++++++++-- swingmusic/logger.py | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0231051f..b62e6ccb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,4 +35,7 @@ RUN pip install bjoern ARG app_version ENV SWINGMUSIC_APP_VERSION=$app_version +# dump the app_version to the version.txt file +RUN echo $app_version > version.txt + ENTRYPOINT ["python", "run.py", "--host", "0.0.0.0", "--config", "/config"] diff --git a/swingmusic/__main__.py b/swingmusic/__main__.py index a4acb5fe..8abafe4f 100644 --- a/swingmusic/__main__.py +++ b/swingmusic/__main__.py @@ -108,10 +108,6 @@ def run(*args, **kwargs): start_swingmusic(kwargs["host"], kwargs["port"]) -def main(): - multiprocessing.freeze_support() - multiprocessing.set_start_method("fork") - run() - if __name__ == "__main__": - main() + multiprocessing.freeze_support() + run() diff --git a/swingmusic/api/__init__.py b/swingmusic/api/__init__.py index e590a774..162ca2fd 100644 --- a/swingmusic/api/__init__.py +++ b/swingmusic/api/__init__.py @@ -60,7 +60,7 @@ def create_api(): Creates the Flask instance, registers modules and registers all the API blueprints. """ api_info = Info( - title=f"Swing Music", + title="Swing Music", version=f"v{AppInfo.SWINGMUSIC_APP_VERSION}", description=open_api_description, ) diff --git a/swingmusic/lib/populate.py b/swingmusic/lib/populate.py index 0e18a866..8724a595 100644 --- a/swingmusic/lib/populate.py +++ b/swingmusic/lib/populate.py @@ -1,7 +1,8 @@ -from dataclasses import asdict import os -from concurrent.futures import ProcessPoolExecutor import platform +import multiprocessing +from dataclasses import asdict +from concurrent.futures import ProcessPoolExecutor from requests import ConnectionError as RequestConnectionError from requests import ReadTimeout @@ -63,11 +64,18 @@ def get_image(album: Album): :type album: Album :return: None """ + log.info("[MP] process was started using: %s", multiprocessing.get_start_method()) + log.info("[get_image] extract image for album: %s", album.title) matching_tracks = AlbumStore.get_album_tracks(album.albumhash) + log.info("[get_image] Found matching tracks: %s", len(matching_tracks)) + for track in matching_tracks: + log.info("[get_image] extract image for track: %s", track.title) extracted = extract_thumb(track.filepath, track.albumhash + ".webp") + log.info("[get_image] extracted: %s", extracted) + if extracted: return diff --git a/swingmusic/logger.py b/swingmusic/logger.py index 54c20f65..4a0d2d5c 100644 --- a/swingmusic/logger.py +++ b/swingmusic/logger.py @@ -16,7 +16,7 @@ class CustomFormatter(logging.Formatter): bold_red = "\x1b[31;1m" reset = "\x1b[0m" # format_ = "[%(asctime)s] %(name)s %(levelname)s %(message)s (%(filename)s:%(lineno)d)" - format_ = "[%(asctime)s] [%(levelname)s] %(message)s (%(filename)s:%(lineno)d)\n" + format_ = "[%(asctime)s] [%(levelname)s] %(message)s (%(filename)s:%(lineno)d)" # format_ = "%(message)s" FORMATS = {