]>
git.scottworley.com Git - paperdoorknob/blob - domfilter.py
1 # paperdoorknob: Print glowfic
3 # This program is free software: you can redistribute it and/or modify it
4 # under the terms of the GNU General Public License as published by the
5 # Free Software Foundation, version 3.
8 from typing
import Any
, Callable
, List
, Tuple
10 from bs4
.element
import Tag
13 DOMFilters
: List
[Tuple
[str, Callable
[[Tag
], Any
]]] = [
14 ("NoEdit", lambda x
: [eb
.decompose() for eb
in x
.find_all("div", class_
="post-edit-box")]),
15 ("NoFooter", lambda x
: [foot
.decompose() for foot
in x
.find_all("div", class_
="post-footer")]),
19 class DOMFilterError(Exception):
23 def ApplyDOMFilters(filter_list
: str, tag
: Tag
) -> None:
24 for filter_name
in filter_list
.split(','):
25 filters
= [f
for (name
, f
) in DOMFilters
if name
== filter_name
]
27 raise DOMFilterError(f
"Unknown DOM filter: {filter_name}")
30 f
"Multiple DOM filters with the same name!?: {filter_name}")