def mark_as_cont(request, id): e = Entry.objects.get(id=int(id)) if e.type == '': from parsing import find_cont_speaker find_cont_speaker(e) e.type = 'continuacao' e.save() return HttpResponse('<p>%s</p>' % e.type)
def parse_raw_text(self): if not self.raw_text: return None from parsing import parse_mp_from_raw_text, find_cont_speaker speaker, text = parse_mp_from_raw_text(self.raw_text) self.normalize_text() if isinstance(speaker, int): self.mp = MP.objects.get(id=speaker) self.party = self.mp.mandate_on(self.day.legislature.number).party.abbrev self.text = text self.save() elif speaker: if speaker == 'pm': from deputados.utils import get_pm_from_date self.mp = get_pm_from_date(self.day.date) self.speaker = 'Primeiro-Ministro' self.party = self.mp.current_party if self.type == 'deputado_intervencao': self.type = 'pm_intervencao' self.save() elif speaker.startswith('ministro: '): from deputados.utils import get_minister speaker = speaker.replace('ministro: ', '').strip() if '(' in speaker: speaker = speaker.split('(')[1].rstrip(')') govpost = get_minister(self.day.date, shortname=speaker) else: govpost = get_minister(self.day.date, post=speaker) if govpost: if govpost.mp: self.mp = govpost.mp else: self.speaker = govpost.person_name self.party = govpost.name else: self.speaker = speaker self.type = 'ministro_intervencao' elif speaker.startswith('secestado: '): from deputados.utils import get_minister speaker = speaker.replace('secestado: ', '').strip() if '(' in speaker: speaker = speaker.split('(')[1].rstrip(')') govpost = get_minister(self.day.date, shortname=speaker) else: govpost = get_minister(self.day.date, post=speaker) if govpost: if govpost.mp: self.mp = govpost.mp else: self.speaker = govpost.person_name self.party = govpost.name else: self.speaker = speaker self.type = 'secestado_intervencao' elif len(speaker) > 100: speaker = speaker[:100] else: self.speaker = speaker self.text = text self.save() else: self.text = self.raw_text self.save() # special case if not self.type in ('continuacao', 'pm_intervencao', 'ministro_intervencao', 'secestado_intervencao'): self.determine_type() from parsing import guess_if_continuation if guess_if_continuation(self): self.type = 'continuacao' self.save() if not self.mp: find_cont_speaker(self)