Exemple #1
0
def entry_text_authoreditor(entry):
    '''Convert entry Reviews to entry string review field'''

    entrystr = ' '

    if entry.not_empty('Authors'):
        entrystr += utils.make_name_str(entry['Authors'])
    elif entry.not_empty('Editors'):
        entrystr += utils.make_name_str(entry['Editors'])
        entrystr += ' ed.'

    return entrystr
Exemple #2
0
def entry_text_contributors(entry):
    '''Convert entry Contributors to entry string contributors'''

    entrystr = ' '

    if entry.not_empty('Contributors'):
        entrystr += 'contributors '
        entrystr += utils.make_name_str(entry['Contributors'])
        entrystr += ';'

    return entrystr
Exemple #3
0
def entry_text_additional_editors(entry):
    '''Convert the entry Editors to entrystr edited by
    but only if the author field is populated in which
    case these are additional editors.'''

    entrystr = ' '

    # additional editors
    if entry.not_empty('Authors') and entry.not_empty('Editors'):
        # need to include editors in comments
        entrystr += 'edited by '
        entrystr += utils.make_name_str(entry['Editors'])
        entrystr += ';'

    return entrystr
Exemple #4
0
def entry_text_translated(entry):
    '''Convert entry Translated or TranslatedFrom to
    an entrystr translator comment.'''

    entrystr = ' '

    # translated from by
    if entry.not_empty('Translators') or entry.not_empty('TranslatedFrom'):
        entrystr += 'translated '
        if entry.not_empty('TranslatedFrom'):
            entrystr += 'from '
            entrystr += entry['TranslatedFrom']
        if entry.not_empty('Translators'):
            entrystr += ' by '
            entrystr += utils.make_name_str(entry['Translators'])
        entrystr += ';'

    return entrystr
Exemple #5
0
    def write_text_from_entry(self):
        """Write an AJBentry back into the string format that it came from.
        It should be the case that write(read(ajbstr)) == ajbstr up to
        the order of the comments and that read(write(ajbent)) == ajbent."""

        if not self.is_valid():
            return ''

        entrystr = self.num_str()[4:] + ' '

        if self.not_empty('Authors'):
            entrystr += utils.make_name_str(self['Authors'])
        elif self.not_empty('Editors'):
            entrystr += utils.make_name_str(self['Editors'])
            entrystr += ' ed.'

        entrystr = entrystr + ', ' + self['Title'].replace(', ', ' comma ')

        if self.not_empty('Publishers'):
            entrystr += ', '
            if self['Publishers'][0]['Place']:
                entrystr += self['Publishers'][0]['Place']

            entrystr += ', '
            if self['Publishers'][0]['PublisherName']:
                name = self['Publishers'][0]['PublisherName']
                name = name.replace(', ', ' comma ')
                entrystr += name
        else:
            entrystr += ', , '

        entrystr += ', '
        if self.not_empty('Year'):
            entrystr += str(self['Year'])

        entrystr += ', '
        if self.not_empty('Pagination'):
            entrystr += str(self['Pagination'])

        entrystr += ', '
        if self.not_empty('Price'):
            entrystr += str(self['Price'])

        entrystr += ', '
        if self.not_empty('Reviews'):
            first = True
            for review in self['Reviews']:
                if not first:
                    entrystr += ' and '
                first = False
                entrystr += review

        # comments
        entrystr += ', '
        if self.not_empty('Edition'):
            entrystr += str(self['Edition'])
            num = int(self['Edition'])
            if  num == 1:
                entrystr += 'st'
            elif num == 2:
                entrystr += 'nd'
            elif num == 3:
                entrystr += 'rd'
            else:
                entrystr += 'th'
            entrystr += ' edition;'

        if self.not_empty('Reprint'):
            entrystr += 'reprint of '
            entrystr += str(self['Reprint'])
            entrystr += ';'

        if self.not_empty('Compilers'):
            entrystr += 'compiled by '
            entrystr += utils.make_name_str(self['Compilers'])
            entrystr += ';'


        if self.not_empty('Contributors'):
            entrystr += 'contributors '
            entrystr += utils.make_name_str(self['Contributors'])
            entrystr += ';'

        # translated from by
        if self.not_empty('Translators') or self.not_empty('TranslatedFrom'):
            entrystr += 'translated '
            if self.not_empty('TranslatedFrom'):
                entrystr += 'from '
                entrystr += self['TranslatedFrom']
            if self.not_empty('Translators'):
                entrystr += ' by '
                entrystr += utils.make_name_str(self['Translators'])
            entrystr += ';'

        # additional editors
        if self.not_empty('Authors') and self.not_empty('Editors'):
            # need to include editors in comments
            entrystr += 'edited by '
            entrystr += utils.make_name_str(self['Editors'])
            entrystr += ';'

        # additional publishers
        if self['Publishers'].__len__() > 1:
            extrapubl = self['Publishers'][1:]
            entrystr += 'also published '
            first = True
            for publ in extrapubl:
                if not first:
                    entrystr += ' and '
                first = False
                entrystr += '%s: %s' % (publ['Place'].replace(', ', ' comma '),
                                        publ['PublisherName'].replace(', ', ' comma '))
            entrystr += ';'

        if self.not_empty('Language'):
            entrystr += 'in '
            entrystr += self['Language']
            entrystr += ';'

        # others
        if self.not_empty('Others'):
            for other in self['Others']:
                entrystr += 'other %s' % str(other).replace(', ', ' comma ')
                entrystr += '; '

        if self.not_empty('Reference'):
            entrystr += 'reference '
            entrystr += self['Reference']
            entrystr += ';'


        return entrystr