feat: don't print single album titels in song
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Hellow 2024-04-25 23:24:45 +02:00
parent e11cfbda67
commit d7e9f45082

View File

@ -41,6 +41,7 @@ OPTION_FOREGROUND = BColors.OKBLUE
def get_collection_string( def get_collection_string(
collection: Collection[Base], collection: Collection[Base],
template: str, template: str,
ignore_titles: Set[str] = None,
background: BColors = OPTION_BACKGROUND, background: BColors = OPTION_BACKGROUND,
foreground: BColors = OPTION_FOREGROUND foreground: BColors = OPTION_FOREGROUND
) -> str: ) -> str:
@ -50,17 +51,21 @@ def get_collection_string(
foreground = foreground.value foreground = foreground.value
background = background.value background = background.value
ignore_titles = ignore_titles or set()
r = background r = background
element: Base element: Base
for i, element in enumerate(collection): titel_list: List[str] = [element.title_string.strip() for element in collection if element.title_string not in ignore_titles]
for i, titel in enumerate(titel_list):
delimiter = ", " delimiter = ", "
if i == len(collection) - 1: if i == len(collection) - 1:
delimiter = "" delimiter = ""
elif i == len(collection) - 2: elif i == len(collection) - 2:
delimiter = " and " delimiter = " and "
r += foreground + element.title_string + BColors.ENDC.value + background + delimiter + BColors.ENDC.value r += foreground + titel + BColors.ENDC.value + background + delimiter + BColors.ENDC.value
r += BColors.ENDC.value r += BColors.ENDC.value
@ -185,7 +190,7 @@ class Song(Base):
@property @property
def option_string(self) -> str: def option_string(self) -> str:
r = OPTION_FOREGROUND.value + self.title + BColors.ENDC.value + OPTION_BACKGROUND.value r = OPTION_FOREGROUND.value + self.title + BColors.ENDC.value + OPTION_BACKGROUND.value
r += get_collection_string(self.album_collection, " from {}") r += get_collection_string(self.album_collection, " from {}", ignore_titles={self.title})
r += get_collection_string(self.main_artist_collection, " by {}") r += get_collection_string(self.main_artist_collection, " by {}")
r += get_collection_string(self.feature_artist_collection, " feat. {}") r += get_collection_string(self.feature_artist_collection, " feat. {}")
return r return r