Make podcast str parsing sensitive to episode number length

This commit is contained in:
2023-12-23 15:25:48 -05:00
parent 34fb2df782
commit 2293c839e8

View File

@ -18,6 +18,8 @@ logger = logging.getLogger(__name__)
User = get_user_model()
PODCAST_DATE_FORMAT = "YYYY-MM-DD"
def timestamp_user_tz_to_utc(timestamp: int, user_tz: tzinfo) -> datetime:
return user_tz.localize(datetime.utcfromtimestamp(timestamp)).astimezone(
pytz.utc
@ -40,7 +42,6 @@ def convert_to_seconds(run_time: str) -> int:
run_time_int = int((((hours * 60) + minutes) * 60) + seconds)
return run_time_int
def parse_mopidy_uri(uri: str) -> dict:
logger.debug(f"Parsing URI: {uri}")
parsed_uri = os.path.splitext(unquote(uri))[0].split("/")
@ -48,24 +49,26 @@ def parse_mopidy_uri(uri: str) -> dict:
episode_str = parsed_uri[-1]
podcast_name = parsed_uri[-2]
episode_num = None
episode_num_pad = 0
try:
# Without episode numbers the date will lead
pub_date = parse(episode_str[0:10])
except ParserError:
episode_num = int(episode_str.split("-")[0])
episode_num_pad = len(str(episode_num)) + 1
try:
# Beacuse we have epsiode numbers on
pub_date = episode_str[4:14]
episode_num = int(episode_str.split("-")[0])
pub_date = episode_str[episode_num_pad:14]
except ParserError:
pub_date = ""
episode_num = int(episode_str.split("-")[0])
gap_to_strip = 0
if pub_date:
gap_to_strip += 11
gap_to_strip += len(PODCAST_DATE_FORMAT)
if episode_num:
gap_to_strip += len(str(episode_num)) + 1
gap_to_strip += episode_num_pad
episode_name = episode_str[gap_to_strip:].replace("-", " ")