#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import xml.etree.ElementTree as ET
import sys

klassen = ['Verb', 'Substantiv', 'Adjektiv', 'Adverb']
dateien = {k:open(k+'.txt','w') for k in klassen}

tree = ET.parse(sys.argv[1])
root = tree.getroot()
for page in root.findall('{http://www.mediawiki.org/xml/export-0.10/}page'):
    text = page.find('{http://www.mediawiki.org/xml/export-0.10/}revision').find('{http://www.mediawiki.org/xml/export-0.10/}text').text
    try:
        begin = text.index('{{Deutsch')+2
        end = text.index('}}', begin)-1
        uebersicht = text[begin:end].split('|')
        kopf = uebersicht[0].strip().split(' ')
        sprache, klasse, _ = kopf
        uebersicht = map(lambda x:x.strip().split('='), uebersicht[1:])
        uebersicht = {k:v for k,v in uebersicht}
        if (klasse == 'Verb'):
            eintrag = page.find('{http://www.mediawiki.org/xml/export-0.10/}title').text
        elif (klasse == 'Substantiv'):
            eintrag = uebersicht['Nominativ Plural']
        elif (klasse in ['Adjektiv', 'Adverb']):
            eintrag = uebersicht['Positiv']
        elif (klasse in ['Toponym', 'Eigenname', 'Nachname', 'Vorname', 'Name', 'Pronomen', 'adjektivisch', 'adjektivische']):
            # ignorieren
            pass
        else:
            print(klasse, uebersicht)
        if (eintrag[0] in ['m', 'M'] and klasse in dateien):
            dateien[klasse].write('%s\n'%eintrag)
    except AttributeError:
        # text ist None
        pass
    except ValueError:
        # keine übersicht
        pass
    except KeyError:
        # nicht in übersicht
        pass
    except IndexError:
        # eintrag ist leer
        pass
