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
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"))
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 ' +
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,
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)