def _filter_future_events(user_id, now, events): cached = False for event in events: if dt_from_indico(event['startDate']) - utc.localize(now) > timedelta( days=1) and not db_event.is_cached(user_id, event["id"]): cached = True db_event.store_cached_event(user_id, now, event) return cached
def _filter_future_events(user_id, now, events): cached = False for event in events: if dt_from_indico(event["startDate"]) - utc.localize(now) > timedelta(days=1) and not db_event.is_cached( user_id, event["id"] ): cached = True db_event.store_cached_event(user_id, now, event) return cached
def update_event_info(event_id): if event_id: event_http = api.get_event_info(event_id) if event_http: event_db = db_event.get_event(event_id) if not event_db: event_tt = api.fetch_timetable(event_id) db_event.store_event(event_http, event_tt) elif utc.localize(event_db["modificationDate"]) < dt_from_indico(event_http["modificationDate"]): db_event.remove_event(event_id) event_tt = api.fetch_timetable(event_id) db_event.store_event(event_http, event_tt)
def getOngoingEvents(): user_id = unicode("all_public") now = datetime.utcnow() if "indico_user" in flask_session: if flask_session["indico_user"]: user_id = flask_session["indico_user"] events = getLatestEventsFromIndico(user_id) results = [] for event in events: if utc.localize(now) > dt_from_indico(event["startDate"]): if event["type"] == "simple_event" or len(event["contributions"]) > 0: results.append(event) return json.dumps(results[0 : min(len(results), 15)])
def update_event_info(event_id): if event_id: event_http = api.get_event_info(event_id) if event_http: event_db = db_event.get_event(event_id) if not event_db: event_tt = api.fetch_timetable(event_id) db_event.store_event(event_http, event_tt) elif utc.localize(event_db['modificationDate']) < dt_from_indico( event_http['modificationDate']): db_event.remove_event(event_id) event_tt = api.fetch_timetable(event_id) db_event.store_event(event_http, event_tt)
def getFutureEvents(): user_id = unicode("all_public") now = datetime.utcnow() if "indico_user" in flask_session: if flask_session["indico_user"]: user_id = flask_session["indico_user"] events = getLatestEventsFromIndico(user_id) results = [] if "error" in events: return json.dumps(events) for event in events: if dt_from_indico(event["startDate"]) - utc.localize(now) > timedelta(days=1): if event["type"] == "simple_event" or len(event["contributions"]) > 0: results.append(event) return json.dumps(results[max(0, len(results)) - 16 : len(results) - 1])
def with_event(): """ Gets executed before every request in this blueprint """ event_id = request.view_args.get('event_id') if event_id: event_http = get_event_info(event_id) event_db = db.Event.find_one({'id': event_id}) if not event_db: event_tt = fetch_timetable(event_id) store_event(event_http, event_tt) elif utc.localize(event_db['modificationDate']) < dt_from_indico(event_http['modificationDate']): Event.cleanup(event_id) event_tt = fetch_timetable(event_id) store_event(event_http, event_tt)
def with_event(event_id=None): """ Gets executed before every request in this blueprint """ event_id = request.view_args.get("event_id") if event_id: event_http = get_event_info(event_id) if not "error" in event_http: event_db = db.Event.find_one({"id": event_id}) if not event_db: event_tt = fetch_timetable(event_id) store_event(event_http, event_tt) elif utc.localize(event_db["modificationDate"]) < dt_from_indico(event_http["modificationDate"]): Event().cleanup(event_id) event_tt = fetch_timetable(event_id) store_event(event_http, event_tt) else: abort(401)
def store_cached_event(user_id, date, event): clean_html_tags(event) new_cached_events = db.CachedLatestEvent() new_cached_events.update({ 'user_id': user_id, 'event_id': event['id'], 'event_start_date': dt_from_indico(event["startDate"]), 'timestamp': date, 'event': event }) db.CachedLatestEvent.find_and_modify( { 'user_id': user_id, 'event_id': event['id'], 'timestamp': date }, new_cached_events, upsert=True)
def convert_dates(dictionary): dictionary['startDate'] = dt_from_indico(dictionary['startDate']) dictionary['endDate'] = dt_from_indico(dictionary['endDate']) if 'modificationDate' in dictionary: dictionary['modificationDate'] = dt_from_indico(dictionary['modificationDate'])
def _filter_events(user_id, now, events): for event in events: if utc.localize(now) - dt_from_indico(event['startDate']) < timedelta( days=30): db_event.store_cached_event(user_id, now, event)
def _filter_events(user_id, now, events): for event in events: if utc.localize(now) - dt_from_indico(event["startDate"]) < timedelta(days=30): db_event.store_cached_event(user_id, now, event)
def filter_events(event, now): return dt_from_indico(event['startDate']) - utc.localize(now) > timedelta(days=1)
def filter_events(event, now): return utc.localize(now) -dt_from_indico(event['startDate']) < timedelta(days=30)
def store_cached_event(user_id, date, event): clean_html_tags(event) new_cached_events = db.CachedLatestEvent() new_cached_events.update({'user_id': user_id, 'event_id': event['id'], 'event_start_date': dt_from_indico(event["startDate"]), 'timestamp': date, 'event': event}) db.CachedLatestEvent.find_and_modify({'user_id': user_id, 'event_id': event['id'], 'timestamp': date}, new_cached_events, upsert=True)