#!/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: 2012-01-01T00:00:00 Sonntag Neujahr Die Furcht des HERRN wird Zions Schatz sein. Jesaja 33,6 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. Lukas 2,25.28-30 """ 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)