mirror of
https://github.com/oskvr37/tiddl.git
synced 2026-06-13 12:15:13 +03:00
✨ Sort credits contributors surname alphabetically #247
This commit is contained in:
@@ -253,7 +253,7 @@ def download_callback(
|
||||
album_artist=track_metadata.artist,
|
||||
cover_data=track_metadata.cover_data,
|
||||
date=track_metadata.date,
|
||||
credits=track_metadata.credits,
|
||||
credits_contributors=track_metadata.credits,
|
||||
comment=track_metadata.album_review,
|
||||
)
|
||||
|
||||
|
||||
@@ -106,6 +106,25 @@ def add_m4a_metadata(track_path: Path, metadata: Metadata) -> None:
|
||||
mutagen.save()
|
||||
|
||||
|
||||
def sort_credits_contributors(
|
||||
entries: list[AlbumItemsCredits.ItemWithCredits.CreditsEntry],
|
||||
):
|
||||
"""
|
||||
Sorts the contributors within each CreditsEntry alphabetically by surname.
|
||||
|
||||
It assumes the surname is the last word in the contributor's name.
|
||||
"""
|
||||
|
||||
def get_surname(name: str) -> str:
|
||||
parts = name.split()
|
||||
return parts[-1] if parts else ""
|
||||
|
||||
for entry in entries:
|
||||
entry.contributors.sort(
|
||||
key=lambda contributor: get_surname(contributor.name).lower()
|
||||
)
|
||||
|
||||
|
||||
def add_track_metadata(
|
||||
path: Path,
|
||||
track: Track,
|
||||
@@ -113,11 +132,18 @@ def add_track_metadata(
|
||||
album_artist: str = "",
|
||||
lyrics: str = "",
|
||||
cover_data: bytes | None = None,
|
||||
credits: list[AlbumItemsCredits.ItemWithCredits.CreditsEntry] | None = None,
|
||||
credits_contributors: (
|
||||
list[AlbumItemsCredits.ItemWithCredits.CreditsEntry] | None
|
||||
) = None,
|
||||
comment: str = "",
|
||||
) -> None:
|
||||
"""Add FLAC or M4A metadata based on file extension."""
|
||||
|
||||
if credits_contributors is None:
|
||||
credits_contributors = []
|
||||
|
||||
sort_credits_contributors(credits_contributors)
|
||||
|
||||
metadata = Metadata(
|
||||
title=f"{track.title} ({track.version})" if track.version else track.title,
|
||||
track_number=str(track.trackNumber),
|
||||
@@ -131,7 +157,7 @@ def add_track_metadata(
|
||||
bpm=str(track.bpm or ""),
|
||||
lyrics=lyrics or None,
|
||||
cover_data=cover_data,
|
||||
credits=credits or [],
|
||||
credits=credits_contributors,
|
||||
comment=comment,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user