Added logging e outputs
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
3
main.py
3
main.py
@@ -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__':
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user