예제 #1
0
파일: threads.py 프로젝트: yasyf/rainbow
def parse_calendar(type_, file, user_geo, existing_data=None):
    print('Processing {}'.format(file))
    importer = Importer.get_importer(type_)
    data = importer().open(file).read()
    if not data:
        Calendar.from_url(file, type_).destroy()
        return
    if data == existing_data:
        return
    events = Parser().parse(data)
    if all(user_geo):
        for event in events:
            if not event.latitude:
                cache_geolocation_info_for_event(event, *user_geo)
    calendar = Calendar(file, type_, data, events)
    return calendar.save()
예제 #2
0
파일: routes.py 프로젝트: yasyf/rainbow
def api_create_view():
    calendar = Calendar.from_url(request.form['url'], request.form['type'])
    _id = calendar.save()
    user_geo = (request.form.get('lat'), request.form.get('lng'))
    Pooler.submit(parse_calendar, request.form['type'], request.form['url'], user_geo)
    return jsonify({'status': 'success', 'id': str(_id)})