X-Git-Url: http://git.scottworley.com/paperdoorknob/blobdiff_plain/c594c8bf593ab97e863827b7a22f2148bcb174b6..19ed28f37b59e480cebe8f122e07ce18ce536db8:/args.py diff --git a/args.py b/args.py index c550672..de6fc01 100644 --- a/args.py +++ b/args.py @@ -16,7 +16,7 @@ from xdg_base_dirs import xdg_cache_home from domfilter import ApplyDOMFilters, DOMFilters from fetch import CachingFetcher -from glowfic import BesideIconLayout, BelowIconLayout, Layout +from glowfic import BesideIconLayout, BelowIconLayout from htmlfilter import ApplyHTMLFilters, HTMLFilters from texfilter import ApplyTexFilters, TexFilters from images import DiskImageStore @@ -31,7 +31,7 @@ def _print_status(msg: str) -> None: def _command_line_parser() -> ArgumentParser: parser = ArgumentParser(prog='paperdoorknob', description='Print glowfic') parser.add_argument( - '--cache_path', + '--cache-path', metavar='PATH', help='Where to keep the http cache (instead of %(default)s)', default=os.path.join(xdg_cache_home(), "paperdoorknob")) @@ -51,14 +51,14 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details help='Which HTML filters to use (default: %(default)s)', default=','.join(f[0] for f in HTMLFilters)) parser.add_argument( - '--image_size', + '--image-size', help='How large the icon images are, in mm', default=20) parser.add_argument( '--layout', - default='below', + default='beside', help='Whether to put character and author information `beside` or `below` the icon ' + - '(default: below)') + '(default: beside)') parser.add_argument( '--out', help='The filename stem at which to write output ' + @@ -87,14 +87,15 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details def spec_from_commandline_args() -> Iterator[Spec]: args = _command_line_parser().parse_args() texifier = PandocTexifier(args.pandoc or 'pandoc') - layout: Layout + layout: bytes if args.layout == 'below': - layout = BelowIconLayout(texifier, args.image_size) + layout = BelowIconLayout elif args.layout == 'beside': - layout = BesideIconLayout(texifier, args.image_size) + layout = BesideIconLayout else: raise ValueError(f'Unknown layout: {args.layout}') - with CachingFetcher(args.cache_path, args.timeout) as fetcher: + log = (lambda _: None) if args.quiet else _print_status + with CachingFetcher(args.cache_path, args.timeout, log) as fetcher: with open(args.out + '.tex', 'wb') as texout: yield Spec( args.url, @@ -102,8 +103,10 @@ def spec_from_commandline_args() -> Iterator[Spec]: DiskImageStore(args.out + '_images', fetcher), lambda x: ApplyHTMLFilters(args.htmlfilters, x), lambda x: ApplyDOMFilters(args.domfilters, x), + texifier, lambda x: ApplyTexFilters(args.texfilters, x), + args.image_size, layout, args.geometry, texout, - (lambda _: None) if args.quiet else _print_status) + log)