aboutsummaryrefslogblamecommitdiffstats
path: root/generate_html_de.py
blob: f3c8924ab8f5e51ab28bc6686906c2ab6a34bd45 (plain) (tree)





































































                                                                                                                                                                                                                                                                                                                                          
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals
import datetime
import locale
import lxml.etree as et
import sys
import logging
#logging.basicConfig(level=logging.DEBUG)
import jinja2


def parse_one(elem):
    """
    Parse one losung. Example:
      <Losungen>
        <Datum>2012-01-01T00:00:00</Datum>
        <Wtag>Sonntag</Wtag>
        <Sonntag>Neujahr</Sonntag>
        <Losungstext>Die Furcht des HERRN wird Zions Schatz sein.</Losungstext>
        <Losungsvers>Jesaja 33,6</Losungsvers>
        <Lehrtext>Ein Mann war in Jerusalem, mit Namen Simeon; und dieser Mann war fromm und gottesfürchtig und wartete auf den Trost Israels. Er nahm Jesus auf seine Arme und lobte Gott und sprach: Herr, nun lässt du deinen Diener in Frieden fahren, wie du gesagt hast; denn meine Augen haben deinen Heiland gesehen.</Lehrtext>
        <Lehrtextvers>Lukas 2,25.28-30</Lehrtextvers>
      </Losungen>
    """
    logging.debug("losung = %s", elem)
    out = {}
    datum_str = elem.find('Datum').text
    logging.debug("datum_str = %s", datum_str)
    datum = datetime.datetime.strptime(datum_str, "%Y-%m-%dT%H:%M:%S")
    out['date_id'] = datum.strftime("%Y-%m-%d")

    out['date_full'] = datum.strftime("%A %x")
    sunday = elem.find("Sonntag")
    if sunday is not None:
        out['sunday'] = sunday.text
    out['watchwords'] = []

    for tst in (('Losungstext', 'Losungsvers'),
            ('Lehrtext', 'Lehrtextvers')):
        wword = {
            'text': ''
        }
        wword['text'] = elem.find(tst[0]).text
        wword['ref'] = elem.find(tst[1]).text
        out['watchwords'].append(wword)

    return out


def parse_file(filename):
    tree = et.parse(filename).getroot()
    article_list = []
    env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'))
    template = env.get_template('german.html')

    for los in tree.getiterator("Losungen"):
        article_list.append(parse_one(los))

    return template.render(articles=article_list)


if __name__ == "__main__":
    locale.setlocale(locale.LC_ALL, '')
    loc = locale.getlocale()
    locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
    articles = parse_file(sys.argv[1])
    locale.setlocale(locale.LC_ALL, loc)

    print(articles)