Add .titles file feature

This commit is contained in:
Julian Mutter 2022-09-16 12:46:31 +02:00
parent 0359171483
commit a3776cc917

View File

@ -56,6 +56,7 @@ class Dvd:
self.log_file = dvd_path + ".log"
self.err_log_file = dvd_path + ".err.log"
self.titles_file = dvd_path + ".titles"
def __str__(self):
return f"{self.dvd_type} {self.dvd_path}"
@ -138,6 +139,7 @@ def list_ripped_dvds(dvd_type):
dvd_titles = filter(lambda title: not title.endswith(".lock"), dvd_titles)
dvd_titles = filter(lambda title: not title.endswith(".err.log"), dvd_titles)
dvd_titles = filter(lambda title: not title.endswith(".log"), dvd_titles)
dvd_titles = filter(lambda title: not title.endswith(".titles"), dvd_titles)
return map(
lambda dvd_title: Dvd(dvd_type, os.path.join(path, dvd_title)), dvd_titles
)
@ -245,6 +247,9 @@ def transcode_episode(dvd: Dvd, season, episode, title_number):
def find_series_titles(dvd: Dvd):
if os.path.exists(dvd.titles_file):
return read_titles_from_titles_file(dvd)
with open(dvd.log_file, "w") as log_file:
proc = subprocess.run(
[
@ -290,6 +295,22 @@ def find_series_titles(dvd: Dvd):
return titles
def read_titles_from_titles_file(dvd: Dvd):
titles = []
dvd.append_line_to_logfile("Found .titles file! Reading titles from there...")
try:
with open(dvd.titles_file, "r") as titles_file:
for line in titles_file.readlines():
titles.append(int(line))
except:
dvd.append_line_to_logfile(
"Failed reading titles file! Please make sure it has the right format"
)
return []
return titles
def is_json_title_duration_not_too_long(title):
duration = title["Duration"]
duration_seconds = duration["Hours"] * 60 * 60