Rework using click

This commit is contained in:
Mark Cornick 2022-12-14 01:29:10 -05:00
parent 9b983412e1
commit 4b5aaabdd2
Signed by: mcornick
GPG Key ID: C64D29B7F5271161
5 changed files with 43 additions and 48 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.direnv
.envrc
__pycache__
cue_to_meta.egg-info

View File

@ -15,4 +15,4 @@ repos:
rev: 22.3.0 rev: 22.3.0
hooks: hooks:
- id: black - id: black
language_version: python3.10 language_version: python3.9

71
cue_to_meta.py Executable file → Normal file
View File

@ -26,58 +26,35 @@
import re import re
import sys import sys
import click
def cue_to_meta(cue_file):
meta_file = re.sub(r"cue$", "meta", cue_file)
try:
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)
def cue_to_meta(cuefile, metafile):
title = None title = None
performer = None performer = None
timestamp = None timestamp = None
try: for line in cuefile.readlines():
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]) metafile.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)
if __name__ == "__main__": @click.command()
cue_to_meta(sys.argv[1]) @click.argument("cuefile", type=click.File("r"))
@click.argument("metafile", type=click.File("w"))
def cli(cuefile, metafile):
"""Convert CUEFILE to meta format as METAFILE."""
cue_to_meta(cuefile, metafile)

View File

@ -1,2 +1,6 @@
[build-system]
requires = ["setuptools >= 40.9.0"]
build-backend = "setuptools.build_meta"
[tool.isort] [tool.isort]
profile = "black" profile = "black"

10
setup.cfg Normal file
View File

@ -0,0 +1,10 @@
[metadata]
name = cue_to_meta
version = 0.1.0
[options]
py_modules = cue_to_meta
install_requires = Click
[options.entry_points]
console_scripts = cue_to_meta = cue_to_meta:cli