mirror of
https://github.com/foo-dogsquared/dotfiles.git
synced 2025-01-30 22:57:54 +00:00
23 lines
818 B
Python
Executable File
23 lines
818 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# TODO:
|
|
# Given a OPML file, convert the OPML into a `urls` file compatible for newsboat.
|
|
# It could also accept an OPML through stdin.
|
|
|
|
import itertools
|
|
import fileinput
|
|
from pathlib import Path
|
|
import sys
|
|
import xml.etree.ElementTree as ET
|
|
|
|
if len(sys.argv) > 1:
|
|
opml = ET.parse(sys.argv[1])
|
|
else:
|
|
opml = ET.fromstring(fileinput.input())
|
|
|
|
for outline in opml.findall("body/outline"):
|
|
categories = [category.strip("/") for category in outline.get("category", "").split(",") if category]
|
|
print('{xmlUrl} "~{text}" {category}'.format(xmlUrl = outline.get("xmlUrl"),
|
|
text = outline.get("text"),
|
|
category = " ".join([ f'"{tag}"' for tag in categories ]) if len(categories) else " "))
|