Source code for app.mod_api.ical

from collections import defaultdict
from ics import Calendar, Event


[docs]def build_ical(lent_list): """Builds ical from a lent list. It takes a lent list that ran through a Marshmallow scheme. :param lent_list: Marshmallowed lent list. :type lent_list: dict :return: ical. :rtype: str """ cal = Calendar() item_dict = defaultdict(list) for i in lent_list['items']: item_dict[i['due_date']].append('{}: {}'.format(i['author'], i['title'])) for k, v in item_dict.items(): event = Event() event.begin = '{} 00:00:00'.format(k) items = '\n'.join(v) event.description = items event.name = 'Bibliotheksrueckgaben: {}'.format(len(v)) cal.events.append(event) return cal