feat: artist name in clean song title is optional
This commit is contained in:
parent
d9c711a2f8
commit
24a90f1cdf
@ -1,4 +1,4 @@
|
|||||||
from typing import Tuple, Union
|
from typing import Tuple, Union, Optional
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import string
|
import string
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
@ -53,7 +53,7 @@ def fit_to_file_system(string: Union[str, Path]) -> Union[str, Path]:
|
|||||||
return fit_string(string)
|
return fit_string(string)
|
||||||
|
|
||||||
|
|
||||||
def clean_song_title(raw_song_title: str, artist_name: str) -> str:
|
def clean_song_title(raw_song_title: str, artist_name: Optional[str] = None) -> str:
|
||||||
"""
|
"""
|
||||||
This function cleans common naming "conventions" for non clean song titles, like the title of youtube videos
|
This function cleans common naming "conventions" for non clean song titles, like the title of youtube videos
|
||||||
|
|
||||||
@ -65,13 +65,16 @@ def clean_song_title(raw_song_title: str, artist_name: str) -> str:
|
|||||||
- `song (prod. some producer)`
|
- `song (prod. some producer)`
|
||||||
"""
|
"""
|
||||||
raw_song_title = raw_song_title.strip()
|
raw_song_title = raw_song_title.strip()
|
||||||
artist_name = artist_name.strip()
|
|
||||||
|
|
||||||
# Clean official Video appendix
|
# Clean official Video appendix
|
||||||
for dirty_appendix in COMMON_TITLE_APPENDIX_LIST:
|
for dirty_appendix in COMMON_TITLE_APPENDIX_LIST:
|
||||||
if raw_song_title.lower().endswith(dirty_appendix):
|
if raw_song_title.lower().endswith(dirty_appendix):
|
||||||
raw_song_title = raw_song_title[:-len(dirty_appendix)].strip()
|
raw_song_title = raw_song_title[:-len(dirty_appendix)].strip()
|
||||||
|
|
||||||
|
# everything that requires the artist name
|
||||||
|
if artist_name is not None:
|
||||||
|
artist_name = artist_name.strip()
|
||||||
|
|
||||||
# Remove artist from the start of the title
|
# Remove artist from the start of the title
|
||||||
if raw_song_title.lower().startswith(artist_name.lower()):
|
if raw_song_title.lower().startswith(artist_name.lower()):
|
||||||
raw_song_title = raw_song_title[len(artist_name):].strip()
|
raw_song_title = raw_song_title[len(artist_name):].strip()
|
||||||
|
Loading…
Reference in New Issue
Block a user