Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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)