mirror of
https://github.com/lifegpc/pythonscript.git
synced 2026-07-08 01:31:10 +08:00
Update scripts
This commit is contained in:
@@ -7,7 +7,7 @@ from os import listdir, remove, link, symlink, makedirs
|
|||||||
from subprocess import PIPE, Popen
|
from subprocess import PIPE, Popen
|
||||||
|
|
||||||
|
|
||||||
FMT = re.compile(r"(\d+)/(\d+)")
|
FMT = re.compile(r"(\d+)(/(\d+))?")
|
||||||
|
|
||||||
|
|
||||||
def generate_thumb(input: str, output: str):
|
def generate_thumb(input: str, output: str):
|
||||||
@@ -32,6 +32,10 @@ def generate_path(input: str):
|
|||||||
thumb = True
|
thumb = True
|
||||||
break
|
break
|
||||||
m = i.meta.to_dict()
|
m = i.meta.to_dict()
|
||||||
|
tmp = {}
|
||||||
|
for i in m:
|
||||||
|
tmp[i.lower()] = m[i]
|
||||||
|
m = tmp
|
||||||
artist = m.get('album_artist', m.get('artist', None))
|
artist = m.get('album_artist', m.get('artist', None))
|
||||||
album = m.get('album', None)
|
album = m.get('album', None)
|
||||||
title = m.get('title', None)
|
title = m.get('title', None)
|
||||||
@@ -39,22 +43,23 @@ def generate_path(input: str):
|
|||||||
track = m.get('track', None)
|
track = m.get('track', None)
|
||||||
if artist is None or album is None or title is None:
|
if artist is None or album is None or title is None:
|
||||||
raise ValueError("No artist, album or title")
|
raise ValueError("No artist, album or title")
|
||||||
|
thumb = join(arg.OUTPUT, artist, album, arg.cover) if thumb else None
|
||||||
discs = FMT.match(disc)
|
discs = FMT.match(disc)
|
||||||
if discs is None:
|
if discs is None:
|
||||||
raise ValueError(f"Failed to parse discs {disc}")
|
raise ValueError(f"Failed to parse discs {disc}")
|
||||||
discs = discs.group(1, 2)
|
discs = discs.group(1, 3)
|
||||||
discs = (int(discs[0]), int(discs[1]))
|
discs = (int(discs[0]), int(discs[1]) if discs[1] is not None else None)
|
||||||
if discs[1] == 1:
|
if discs[1] == 1 or discs[1] is None:
|
||||||
if track is None:
|
if track is None:
|
||||||
return (join(arg.OUTPUT, artist, album, title + ext), thumb)
|
return (join(arg.OUTPUT, artist, album, title + ext), thumb)
|
||||||
else:
|
else:
|
||||||
tracks = FMT.match(track)
|
tracks = FMT.match(track)
|
||||||
if tracks is None:
|
if tracks is None:
|
||||||
raise ValueError(f"Failed to parse tracks {track}")
|
raise ValueError(f"Failed to parse tracks {track}")
|
||||||
tracks = tracks.group(1, 2)
|
tracks = tracks.group(1, 3)
|
||||||
tracks = (int(tracks[0]), int(tracks[1]))
|
track0 = int(tracks[0])
|
||||||
return (join(arg.OUTPUT, artist, album,
|
return (join(arg.OUTPUT, artist, album,
|
||||||
f"{tracks[0]:02} - {title}{ext}"), thumb)
|
f"{track0:02} - {title}{ext}"), thumb)
|
||||||
else:
|
else:
|
||||||
if track is None:
|
if track is None:
|
||||||
return (join(arg.OUTPUT, artist, album, f"Disc {discs[0]}",
|
return (join(arg.OUTPUT, artist, album, f"Disc {discs[0]}",
|
||||||
@@ -63,10 +68,10 @@ def generate_path(input: str):
|
|||||||
tracks = FMT.match(track)
|
tracks = FMT.match(track)
|
||||||
if tracks is None:
|
if tracks is None:
|
||||||
raise ValueError(f"Failed to parse tracks {track}")
|
raise ValueError(f"Failed to parse tracks {track}")
|
||||||
tracks = tracks.group(1, 2)
|
tracks = tracks.group(1, 3)
|
||||||
tracks = (int(tracks[0]), int(tracks[1]))
|
track0 = int(tracks[0])
|
||||||
return (join(arg.OUTPUT, artist, album, f"Disc {discs[0]}",
|
return (join(arg.OUTPUT, artist, album, f"Disc {discs[0]}",
|
||||||
f"{tracks[0]:02} - {title}{ext}"), thumb)
|
f"{track0:02} - {title}{ext}"), thumb)
|
||||||
|
|
||||||
|
|
||||||
def get_m4a_files(dir: str, r: bool) -> List[str]:
|
def get_m4a_files(dir: str, r: bool) -> List[str]:
|
||||||
@@ -79,7 +84,7 @@ def get_m4a_files(dir: str, r: bool) -> List[str]:
|
|||||||
if isdir(file):
|
if isdir(file):
|
||||||
if r:
|
if r:
|
||||||
re += get_m4a_files(file, r)
|
re += get_m4a_files(file, r)
|
||||||
elif file.endswith('.m4a'):
|
elif file.endswith('.m4a') or file.endswith(".flac"):
|
||||||
re.append(file)
|
re.append(file)
|
||||||
return re
|
return re
|
||||||
|
|
||||||
@@ -106,7 +111,7 @@ for f in get_m4a_files(arg.INPUT, arg.recursive):
|
|||||||
if arg.verbose:
|
if arg.verbose:
|
||||||
print(f"Target path: {r[0]}")
|
print(f"Target path: {r[0]}")
|
||||||
if r[1]:
|
if r[1]:
|
||||||
thumb = join(split(r[0])[0], arg.cover)
|
thumb = r[1]
|
||||||
if arg.verbose:
|
if arg.verbose:
|
||||||
print(f"Target thumb: {thumb}")
|
print(f"Target thumb: {thumb}")
|
||||||
if not exists(thumb):
|
if not exists(thumb):
|
||||||
|
|||||||
Reference in New Issue
Block a user