diff options
Diffstat (limited to 'ar/.local/bin/decodetitle')
| -rwxr-xr-x | ar/.local/bin/decodetitle | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ar/.local/bin/decodetitle b/ar/.local/bin/decodetitle new file mode 100755 index 0000000..e7a553c --- /dev/null +++ b/ar/.local/bin/decodetitle @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import html +import sys +import xml.etree.ElementTree as ET + +text_input = sys.stdin.read() +root = ET.fromstring(text_input) + +# RSS 2.0: <channel><item><title> +for item in root.findall(".//item"): + title = item.find("title") + if title is not None and title.text: + title.text = html.unescape(title.text) + +# re-serialize +sys.stdout.buffer.write(ET.tostring(root, encoding="utf-8", xml_declaration=True)) |
