1
0
Fork 0
mirror of https://github.com/Findus23/cr-search.git synced 2024-09-19 15:23:44 +02:00
cr-search/utils.py

57 lines
1.5 KiB
Python
Raw Normal View History

2021-05-25 20:53:09 +02:00
import re
2020-03-07 10:45:39 +01:00
from datetime import timedelta
from pathlib import Path
2020-04-15 18:11:45 +02:00
from typing import Optional
from data import single_speaker
2020-03-07 10:45:39 +01:00
srtdir = Path("./data/subtitles/")
def td_to_milliseconds(td: timedelta) -> int:
return int(td.total_seconds() * 1000)
def milliseconds_to_td(ms: int) -> timedelta:
return timedelta(milliseconds=ms)
2020-04-15 18:11:45 +02:00
def episode_speaker(series_title: str, episode: int) -> Optional[str]:
series = single_speaker[series_title]
if episode in series:
return series[episode]
return None
2021-05-25 20:53:09 +02:00
title_regex = re.compile(r"Ep(?:is|si)ode (\d+)")
def title_to_episodenumber(title: str, video_number: int) -> int:
print(title)
try:
match = title_regex.search(title)
if not match:
if "Hit Points for Level 12" in title:
return 99
elif "Hit Points for Level 15" in title:
return 136
else:
raise ValueError("No episode number found in title")
return int(match.group(1))
except ValueError:
if title == "Campaign 1": # one-shots at the end of campaign 1
return video_number - 3
else:
raise
def pretty_title(title: str) -> str:
if "|" in title:
return title.split("|")[0].strip()
if "Handbooker Helper:" in title:
return title.replace("Handbooker Helper:", "").strip()
if "Critical Role RPG Show" in title:
return title.split("-")[0].strip()
else:
return title.strip()