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"
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