]> git.scottworley.com Git - paperdoorknob/blobdiff - args.py
Project Lawful start URL in --help
[paperdoorknob] / args.py
diff --git a/args.py b/args.py
index 2a03836854777b6ce3a6b7b1d4171923508b7e0e..fb36083b28b9bcf852d37963f8b53c33760819d3 100644 (file)
--- a/args.py
+++ b/args.py
@@ -13,7 +13,9 @@ from typing import Iterator
 
 from xdg_base_dirs import xdg_cache_home
 
+from domfilter import ApplyDOMFilters, DOMFilters
 from fetch import CachingFetcher
+from htmlfilter import ApplyHTMLFilters, HTMLFilters
 from spec import Spec
 from texify import PandocTexifier
 
@@ -25,6 +27,14 @@ def _command_line_parser() -> ArgumentParser:
         metavar='PATH',
         help='Where to keep the http cache (instead of %(default)s)',
         default=os.path.join(xdg_cache_home(), "paperdoorknob"))
+    parser.add_argument(
+        '--domfilters',
+        help='Which DOM filters to use (default: %(default)s)',
+        default=','.join(f[0] for f in DOMFilters))
+    parser.add_argument(
+        '--htmlfilters',
+        help='Which HTML filters to use (default: %(default)s)',
+        default=','.join(f[0] for f in HTMLFilters))
     parser.add_argument(
         '--out',
         help='The filename stem at which to write output ' +
@@ -35,7 +45,9 @@ def _command_line_parser() -> ArgumentParser:
         '--timeout',
         help='How long to wait for HTTP requests, in seconds',
         default=30)
-    parser.add_argument('url', help='URL to retrieve')
+    parser.add_argument(
+        'url',
+        help='URL to retrieve (example: https://www.projectlawful.com/posts/4582 )')
     return parser
 
 
@@ -44,4 +56,10 @@ def spec_from_commandline_args() -> Iterator[Spec]:
     args = _command_line_parser().parse_args()
     with CachingFetcher(args.cache_path, args.timeout) as fetcher:
         with open(args.out + '.tex', 'wb') as texout:
-            yield Spec(args.url, fetcher, PandocTexifier(args.pandoc or 'pandoc'), texout)
+            yield Spec(
+                args.url,
+                fetcher,
+                lambda x: ApplyHTMLFilters(args.htmlfilters, x),
+                lambda x: ApplyDOMFilters(args.domfilters, x),
+                PandocTexifier(args.pandoc or 'pandoc'),
+                texout)