Handle common exceptions

This commit is contained in:
Mark Cornick 2022-08-17 12:53:06 -04:00
parent bb01952895
commit 1d7217f5ca
1 changed files with 42 additions and 19 deletions

View File

@ -29,27 +29,50 @@ import sys
cue_file = sys.argv[1] cue_file = sys.argv[1]
meta_file = re.sub(r"cue$", "meta", cue_file) meta_file = re.sub(r"cue$", "meta", cue_file)
with open(cue_file) as f: try:
cue = f.readlines() with open(cue_file) as f:
cue = f.readlines()
except FileNotFoundError:
sys.stderr.write("{} not found\n".format(cue_file))
sys.exit(1)
except IsADirectoryError:
sys.stderr.write("{} is a directory\n".format(cue_file))
sys.exit(1)
except PermissionError:
sys.stderr.write("No permission to read {}\n".format(cue_file))
sys.exit(1)
except OSError:
sys.stderr.write("OS error trying to read {}\n".format(cue_file))
sys.exit(1)
title = None title = None
performer = None performer = None
timestamp = None timestamp = None
with open(meta_file, "w") as f: try:
for line in cue: with open(meta_file, "w") as f:
title_re = re.search(r'^ TITLE "(.*)"$', line) for line in cue:
performer_re = re.search(r'^ PERFORMER "(.*)"$', line) title_re = re.search(r'^ TITLE "(.*)"$', line)
index_re = re.search(r"^ INDEX 01 (.*)$", line) performer_re = re.search(r'^ PERFORMER "(.*)"$', line)
if title_re: index_re = re.search(r"^ INDEX 01 (.*)$", line)
title = title_re[1] if title_re:
if performer_re: title = title_re[1]
performer = performer_re[1] if performer_re:
if index_re: performer = performer_re[1]
time_re = re.search(r"^(..):(..):..$", index_re[1]) if index_re:
timestamp = "00{}{}".format(time_re[1], time_re[2]) time_re = re.search(r"^(..):(..):..$", index_re[1])
if title and performer and timestamp: timestamp = "00{}{}".format(time_re[1], time_re[2])
f.write("{}:{} - {}\n".format(timestamp, performer, title)) if title and performer and timestamp:
title = None f.write("{}:{} - {}\n".format(timestamp, performer, title))
performer = None title = None
timestamp = None performer = None
timestamp = None
except IsADirectoryError:
sys.stderr.write("{} is a directory\n".format(meta_file))
sys.exit(1)
except PermissionError:
sys.stderr.write("No permission to write {}\n".format(meta_file))
sys.exit(1)
except OSError:
sys.stderr.write("OS error trying to write {}\n".format(meta_file))
sys.exit(1)