

def parse_journal(foldername):
    'Return a list of Entry objects, sorted by date'
    journal = dict()
    for filename in os.listdir(os.path.join(foldername, 'entries')):
        if (os.path.splitext(filename)[1] == '.doentry'):
            try:
                entry = Entry(os.path.join(foldername, 'entries', filename))
            except KeyError as err:
                pass
            journal[entry['UUID']] = entry
    if (len(journal) == 0):
        raise Exception(('No journal entries found in ' + foldername))
    try:
        photos = os.listdir(os.path.join(foldername, 'photos'))
    except OSError:
        pass
    else:
        for filename in photos:
            base = os.path.splitext(filename)[0]
            try:
                journal[base].set_photo(os.path.join('photos', filename))
            except KeyError:
                pass
    journal = list(journal.values())
    journal.sort(key=itemgetter('Creation Date'))
    newest_tz = 'utc'
    for entry in reversed(journal):
        if ('Time Zone' in entry):
            newest_tz = entry['Time Zone']
            break
    tz = newest_tz
    for entry in reversed(journal):
        if ('Time Zone' in entry):
            tz = entry['Time Zone']
        else:
            entry.set_time_zone(tz)
        entry.set_localized_date(tz)
    return journal

dataset/ETHPy150Open nathangrigg/dayone_export/dayone_export/__init__.py parse_journal/original