feat: don't print single album titels in song
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
e11cfbda67
commit
d7e9f45082
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user