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
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)
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)
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()