Пример #1
0
def filter():
    if request.method == 'POST':
        if request.form['urls']:
            urls = request.form['urls'].strip().split('\n')
            if len(urls) > MAX_URL:
                return "Too many URLs"

            titles = set()
            for url in urls:
                titles |= gehol.extract_names(gehol.get_cal(url))
            titles = list(titles)
            check = map(lambda x: "checked" if not "Guidance" in x else "", titles)
            titles = zip(titles, check)

            persist = json.dumps(urls)
            return render_template('filter.html', titles=titles, persist=base64.b64encode(persist))
        else:
            return "Form was empty"
Пример #2
0
def getcal(h):
        if not is_md5(h):
            raise ValueError('Param should be a md5 string')
        try:
            with open(os.path.join(DATA_DIR, '{}'.format(h))) as f:
                j = f.read()
        except IOError:
            return abort(404)

        data = json.loads(j)
        urls, selected = data['urls'], data['selected']

        cal = ics.Calendar()
        for url in urls:
            cal.events = cal.events + gehol.get_cal(url).events
        cal = gehol.filter_events(cal, selected)

        gehol.clean_cal(cal)

        resp = Response(response=str(cal), mimetype="text/calendar")
        return resp