示例#1
0
def load_reden(engine, indexer, debatte, zitate):
    reden = {}
    for zitat in zitate:
        if zitat['speech_id'] in reden:
            continue
        rede = Rede.query.filter_by(webtv_id=zitat['speech_id']).first()
        if rede is None:
            rede = Rede()
            rede.webtv_id = zitat['speech_id']
        rede.redner = lazyload_person(engine, indexer,
                                zitat['fingerprint'])
        rede.debatte = debatte
        rede.sitzung = debatte.sitzung
        db.session.add(rede)
        db.session.flush()
        reden[zitat['speech_id']] = rede
    return reden
示例#2
0
def load_beitrag(engine, indexer, position, data):
    beitrag = Beitrag()
    beitrag.seite = data.get('seite')
    beitrag.art = data.get('art')
    beitrag.position = position

    beitrag.person = lazyload_person(engine, indexer, data.get('fingerprint'))
    beitrag.rolle = Rolle.query.filter_by(person=beitrag.person,
                                          funktion=data.get('funktion'),
                                          ressort=data.get('ressort'),
                                          land=data.get('land')).first()
    if beitrag.person is not None and beitrag.rolle is None:
        beitrag.rolle = Rolle()
        beitrag.rolle.person = beitrag.person
        beitrag.rolle.funktion = data.get('funktion')
        beitrag.rolle.ressort = data.get('ressort')
        beitrag.rolle.land = data.get('land')
        db.session.add(beitrag.rolle)
    db.session.add(beitrag)
示例#3
0
def load_beitrag(engine, indexer, position, data):
    beitrag = Beitrag()
    beitrag.seite = data.get('seite')
    beitrag.art = data.get('art')
    beitrag.position = position

    beitrag.person = lazyload_person(engine, indexer,
            data.get('fingerprint'))
    beitrag.rolle = Rolle.query.filter_by(
            person=beitrag.person,
            funktion=data.get('funktion'),
            ressort=data.get('ressort'),
            land=data.get('land')).first()
    if beitrag.person is not None and beitrag.rolle is None:
        beitrag.rolle = Rolle()
        beitrag.rolle.person = beitrag.person
        beitrag.rolle.funktion = data.get('funktion')
        beitrag.rolle.ressort = data.get('ressort')
        beitrag.rolle.land = data.get('land')
        db.session.add(beitrag.rolle)
    db.session.add(beitrag)
示例#4
0
def load_zitate(engine, indexer, debatte, zitate, speeches, reden):
    for data in zitate:
        f = lambda s: int(s['wahlperiode']) == int(data['wp']) and \
                      int(s['sitzung']) == int(data['session']) and \
                      int(s['sequence']) == int(data['sequence'])
        speech = filter(f, speeches).pop()
        zitat = Zitat.query.filter_by(
                sitzung=debatte.sitzung,
                sequenz=speech['sequence']).first()
        if zitat is None:
            zitat = Zitat()
        zitat.sitzung = debatte.sitzung
        zitat.debatte = debatte
        zitat.sequenz = speech['sequence']
        zitat.rede = reden[data['speech_id']]
        zitat.text = speech['text']
        zitat.typ = speech['type']
        zitat.sprecher = speech['speaker']
        zitat.source_url = speech['source_url']
        zitat.person = lazyload_person(engine, indexer,
                speech['fingerprint'])

        db.session.add(zitat)
        db.session.flush()