Added logging e outputs

This commit is contained in:
Fabio Scotto di Santolo
2024-10-25 10:19:51 +02:00
parent de6138870d
commit dd01ddb5cf
3 changed files with 12 additions and 0 deletions

View File

@@ -1,8 +1,11 @@
import logging
import os import os
from typing import Any from typing import Any
import magic import magic
logger = logging.getLogger(__name__)
def scan_folder(src: str): def scan_folder(src: str):
for (root, dirs, files) in os.walk(top=src): for (root, dirs, files) in os.walk(top=src):
@@ -12,4 +15,5 @@ def scan_folder(src: str):
def accepted_file_type(file: Any) -> bool: def accepted_file_type(file: Any) -> bool:
mime = magic.from_file(file, mime=True) mime = magic.from_file(file, mime=True)
logger.info(f"MIME {mime} for file {file}")
return mime in ('audio/mpeg', 'audio/mp3') return mime in ('audio/mpeg', 'audio/mp3')

View File

@@ -22,6 +22,7 @@ def arg_parser():
async def main(src, dst) -> Any: async def main(src, dst) -> Any:
for song_file in scan_folder(src): for song_file in scan_folder(src):
if accepted_file_type(song_file): if accepted_file_type(song_file):
print(f"Found file {song_file}")
track_info = await search_song(song_file) track_info = await search_song(song_file)
logging.info(f"Recognize file {song_file} as {track_info}") logging.info(f"Recognize file {song_file} as {track_info}")
album_path: str = os.path.join(dst, track_info.artist, album_path: str = os.path.join(dst, track_info.artist,
@@ -32,6 +33,8 @@ async def main(src, dst) -> Any:
# I can copy to file now # I can copy to file now
shutil.copy(song_file, shutil.copy(song_file,
os.path.join(album_path, f"{track_info.track_number} - {track_info.title}.mp3")) os.path.join(album_path, f"{track_info.track_number} - {track_info.title}.mp3"))
else:
print(f"Skipped file {song_file}")
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -1,9 +1,13 @@
import itertools import itertools
import json
import logging
from typing import Any from typing import Any
from api import shazam from api import shazam
from models.track import TrackInfo, Album from models.track import TrackInfo, Album
logger = logging.getLogger(__name__)
async def __extract_data(data: dict[str, Any]) -> dict[str, Any]: async def __extract_data(data: dict[str, Any]) -> dict[str, Any]:
def album_field(x: str, lst: list) -> str | int: def album_field(x: str, lst: list) -> str | int:
@@ -18,6 +22,7 @@ async def __extract_data(data: dict[str, Any]) -> dict[str, Any]:
return t["attributes"] return t["attributes"]
return {} return {}
logger.debug(json.dumps(data, indent=2))
track_data = data["track"] track_data = data["track"]
track_attrs = list(itertools.chain(*[x["metadata"] for x in track_data["sections"] if "metadata" in x])) track_attrs = list(itertools.chain(*[x["metadata"] for x in track_data["sections"] if "metadata" in x]))
album_attrs = seek_track( album_attrs = seek_track(