#!/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 " "))
