aboutsummaryrefslogtreecommitdiffstats
path: root/generate_html_de.py
blob: ea3e9fd31963e61016d4a429e8cb8b70ec97b7fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/python
# -*- 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).encode('utf8')


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)