Ejemplo n.º 1
0
    def get_entry(self, Report):
        delimiter = ','

        photo_filename = ''
        photo_source = ''

        date_str = Report.get_date()
        tgeu_date_str = date_str

        try:
            dt = datetime.strptime(date_str, '%Y-%m-%d')  # 2017-11-20
            tgeu_date_str = dt.strftime('%d-%b-%Y')  # 20-Nov-2017
        except ValueError:
            dt = None

        birthdate = ''
        source_ref = 'tgeu/' + tgeu_date_str + '/' + Report.get_name()
        location = self.get_location_from_location_string(
            Report.get_location())
        state = self.get_state_from_location_string(Report.get_location())
        country = self.get_country_from_location_string(Report.get_location())
        latitude = ''
        longitude = ''
        category = self.get_category_from_cause(Report.get_cause())
        description = Report.get_remarks() + '\n\n' + Report.get_source()
        tweet = ''

        text = (self.quote_if_necessary(Report.get_name()) + delimiter +
                self.quote_if_necessary(Report.get_age()) + delimiter +
                self.quote_if_necessary(birthdate) + delimiter +
                self.quote_if_necessary(photo_filename) + delimiter +
                self.quote_if_necessary(photo_source) + delimiter +
                self.quote_if_necessary(date_str) + delimiter +
                self.quote_if_necessary(source_ref) + delimiter +
                self.quote_if_necessary(location) + delimiter +
                self.quote_if_necessary(state) + delimiter +
                self.quote_if_necessary(country) + delimiter +
                self.quote_if_necessary(latitude) + delimiter +
                self.quote_if_necessary(longitude) + delimiter +
                self.quote_if_necessary(category) + delimiter +
                self.quote_if_necessary(Report.get_cause()) + delimiter +
                self.quote_if_necessary(description) + delimiter +
                self.quote_if_necessary(tweet) + delimiter)

        return text
Ejemplo n.º 2
0
    def read(self, pathname):
        f = open(pathname, encoding="utf-8")

        reports = []

        last_property = ''

        report = None

        for line in f:

            if (line[:1] == '#'):
                space_pos = line.find(' ', 2)
                if (space_pos > 0):
                    line = 'Name:' + line[
                        space_pos:]  # Handles the case where the name is something like "# 1 Juliana Ferreira  "

            tokens = line.split(":")

            if (len(tokens) >= 2):
                #print('{} = {}'.format(tokens[0], tokens[1]) )

                property = tokens[0].lower()
                value = tokens[1]

                if (len(tokens) >= 3):
                    value = value + ':' + tokens[2]

                value = value.strip()

                last_property = property

                if (property == 'name'):
                    if (value == 'N.N.'):
                        value = 'Name Unknown'

                    report = None

                    report = Report()
                    reports.append(report)
                    report.set_name(value)

                elif (property == 'age'):
                    if (value != 'not reported'):
                        report.set_age(value)
                elif (property == 'date of death'):
                    date_value = self.parse_date(value)
                    report.set_date(date_value)
                elif (property == 'location of death'):
                    report.set_location(value)
                elif (property == 'cause of death'):
                    report.set_cause(value)
                elif (property == 'remarks'):
                    report.set_remarks(value)
                elif ((property == 'source') or (property == 'sources')):
                    report.set_source(value)
            elif (last_property == 'remarks'):
                if (len(tokens) == 1):
                    value = tokens[0]

                    suffix = value.strip()
                    if ((len(suffix) > 0) and (report != None)):
                        remarks = report.get_remarks() + ' ' + suffix

                        report.set_remarks(remarks)

            elif (((last_property == 'source') or (last_property == 'sources'))
                  and (report != None)):
                if (len(tokens) == 1):
                    value = tokens[0]

                    suffix = value.strip()
                    if ((len(suffix) > 0) and (report != None)):
                        source = report.get_source() + ' ' + suffix

                        report.set_source(source)

        f.close()

        return reports