def load_debatten(ws): sitzungen = {} for speech in ws['mediathek']: sitz = (speech['wahlperiode'], speech['meeting_nr']) if not sitz in sitzungen: sitzungen[sitz] = load_sitzung(ws, speech) sitzung = sitzungen[sitz] log.info("Loading Debatte: %s/%s - %s..." % ( speech.get('wahlperiode'), speech.get('meeting_nr'), speech.get('top_title'))) debatte = Debatte.query.filter_by( sitzung=sitzung, source_url=speech.get('top_source_url') ).first() if debatte is None: debatte = Debatte() debatte.sitzung = sitzung debatte.source_url = speech.get('top_source_url') debatte.nummer = speech.get('top_nr') debatte.titel = speech.get('top_title') debatte.text = speech.get('top_text') debatte.pdf_url = speech.get('top_pdf_url_plain') debatte.pdf_page = speech.get('top_pdf_url_pages') debatte.video_url = speech.get('top_mp4_url') db.session.add(debatte) db.session.commit()
def load_debatten(engine, indexer, sitzung): WebTV_Speech = sl.get_table(engine, 'webtv_speech') zitate = list(sl.find(engine, WebTV_Speech, wp=str(sitzung.wahlperiode), session=str(sitzung.nummer))) debatten = dict([(z['item_id'], z) for z in zitate]) speeches = list(sl.find(engine, sl.get_table(engine, 'speech'), wahlperiode=int(sitzung.wahlperiode), sitzung=int(sitzung.nummer))) for i, data in debatten.items(): log.info("Loading -> Debatte: %s..." % data.get('item_label')) debatte = Debatte.query.filter_by( sitzung=sitzung, nummer=data.get('item_id') ).first() if debatte is None: debatte = Debatte() debatte.sitzung = sitzung debatte.nummer = data.get('item_id') debatte.tops = data.get('item_key') debatte.titel = data.get('item_label') debatte.text = data.get('item_description') db.session.add(debatte) db.session.flush() indexer.add(debatte) dzitate = filter(lambda z: z['item_id'] == data['item_id'], zitate) reden = load_reden(engine, indexer, debatte, dzitate) load_zitate(engine, indexer, debatte, dzitate, speeches, reden) db.session.commit() indexer.add_many(reden.values())
def load_debatten(engine, sitzung): WebTV_Speech = sl.get_table(engine, 'webtv_speech') zitate = list(sl.find(engine, WebTV_Speech, wp=str(sitzung.wahlperiode), session=str(sitzung.nummer))) debatten = dict([(z['item_id'], z) for z in zitate]) speeches = list(sl.find(engine, sl.get_table(engine, 'speech'), wahlperiode=int(sitzung.wahlperiode), sitzung=int(sitzung.nummer))) for i, data in debatten.items(): log.info("Loading -> Debatte: %s..." % data.get('item_label')) debatte = Debatte.query.filter_by( sitzung=sitzung, nummer=data.get('item_id') ).first() if debatte is None: debatte = Debatte() debatte.sitzung = sitzung debatte.nummer = data.get('item_id') debatte.tops = data.get('item_key') debatte.titel = data.get('item_label') debatte.text = data.get('item_description') db.session.add(debatte) db.session.flush() dzitate = filter(lambda z: z['item_id'] == data['item_id'], zitate) load_zitate(engine, debatte, dzitate, speeches) db.session.commit()