def get_event_sessions(event_id): event = db_event.get_event(event_id) if not event: abort(400) sessions = db_session.get_full_event_sessions(event["id"]) return sorted(sessions.values(), key=lambda x: x['title'])
def get_event_sessions(event_id): event = db_event.get_event(event_id) if not event: abort(400) sessions = db_session.get_full_event_sessions(event["id"]) return sorted(sessions.values(), key=lambda x: x["title"])
def my_favorites_events(): user_id = flask_session['indico_user'] events = [] contributions = db_contribution.get_favorites_contributions(user_id, distinct=True) for event_id in contributions: event = db_event.get_event(event_id) if not event in events: events.append(event) sessions = db_session.get_favorites_sessions(user_id, distinct=True) for event_id in sessions: event = db_event.get_event(event_id) if not event in events: events.append(event) events_in_db = db_event.get_favorites_events(user_id) for event in events_in_db: events.append(event['event']) events = sorted(events, key=lambda x:x['startDate']) events.reverse() return Response(json.dumps(events), mimetype='application/json')
def get_event(event_id): event = db_event.get_event(event_id) if event is None: if flask_session.get("indico_user", ""): abort(404) else: abort(Response('Not logged in')) if flask_session.get("indico_user", ""): event["favorite"] = db_event.is_favorite(event_id, flask_session["indico_user"]) return Response(json.dumps(event), mimetype='application/json')
def add_event(event_id): user_id = flask_session['indico_user'] event_logic.update_event_info(event_id) event = db_event.get_event(event_id) if db_event.get_favorites_event(user_id, event_id): print 'already in favorites' else: db_contribution.remove_event_contributions_from_favorites(user_id, event_id) db_session.remove_event_sessions_from_favorites(user_id, event_id) db_event.add_event_to_favorites(user_id, event) return ''
def my_favorites_events(): user_id = flask_session['indico_user'] events = [] contributions = db_contribution.get_favorites_contributions(user_id, distinct=True) for event_id in contributions: event = db_event.get_event(event_id) if not event in events: events.append(event) sessions = db_session.get_favorites_sessions(user_id, distinct=True) for event_id in sessions: event = db_event.get_event(event_id) if not event in events: events.append(event) events_in_db = db_event.get_favorites_events(user_id) for event in events_in_db: events.append(event['event']) events = sorted(events, key=lambda x: x['startDate']) events.reverse() return Response(json.dumps(events), mimetype='application/json')
def add_event(event_id): user_id = flask_session['indico_user'] event_logic.update_event_info(event_id) event = db_event.get_event(event_id) if db_event.get_favorites_event(user_id, event_id): print 'already in favorites' else: db_contribution.remove_event_contributions_from_favorites( user_id, event_id) db_session.remove_event_sessions_from_favorites(user_id, event_id) db_event.add_event_to_favorites(user_id, event) return ''
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 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 get_future_contributions(): events = api.get_future_events() for event in events: if not db_event.get_event(event['id']): # store event event_tt = api.fetch_timetable(event['id']) db_event.store_event(event, event_tt) now = datetime.utcnow() tomorrow = now + timedelta(hours=6) results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False}, {'_fossil': 'contribSchEntryDisplay'}])) \ + list(db_event.get_ongoing_lectures(now, tomorrow)) return sorted(results, key=lambda x: x['startDate'])
def get_ongoing_contributions(): events = api.get_ongoing_events() for event in events: if not db_event.get_event(event['id']): # store event event_tt = api.fetch_timetable(event['id']) db_event.store_event(event, event_tt) now = datetime.utcnow() tomorrow = now + timedelta(hours=6) results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False}, {'_fossil': 'contribSchEntryDisplay'}])) \ + list(db_event.get_ongoing_lectures(now, tomorrow)) return sorted(results, key=lambda x: x['startDate'])
def add_history_event(event_id): if 'indico_user' in flask_session: if flask_session['indico_user']: user_id = flask_session['indico_user'] now = datetime.utcnow() event_db = db_event.get_event(event_id) event_in_history = db_event.get_event_in_history(user_id, event_id) if event_in_history: db_event.update_event_to_history(event_in_history, now) else: history_events = list(db_event.get_history(user_id, order=1)) if len(history_events) > 9: oldest = history_events[0] db_event.remove_event_from_history(user_id, oldest["id"]) db_event.add_event_to_history(user_id, now, event_db, event_id) return Response(json.dumps({'status': 'ok'}), mimetype='application/json')
def get_future_contributions(): events = api.get_future_events() for event in events: if not db_event.get_event(event["id"]): # store event event_tt = api.fetch_timetable(event["id"]) db_event.store_event(event, event_tt) now = datetime.utcnow() tomorrow = now + timedelta(hours=6) results = list( db_contribution.get_contributions( now, tomorrow, [{"hasAnyProtection": False}, {"_fossil": "contribSchEntryDisplay"}] ) ) + list(db_event.get_ongoing_lectures(now, tomorrow)) return sorted(results, key=lambda x: x["startDate"])
def get_ongoing_contributions(): events = api.get_ongoing_events() for event in events: if not db_event.get_event(event['id']): # store event event_tt = api.fetch_timetable(event['id']) db_event.store_event(event, event_tt) now = datetime.utcnow() tomorrow = now + timedelta(hours=6) results = list(db_contribution.get_contributions(now, tomorrow, [{'hasAnyProtection': False}, {'_fossil': 'contribSchEntryDisplay'}])) \ + list(db_event.get_ongoing_lectures(now, tomorrow)) if flask_session.get("indico_user", ""): for contrib in results: contrib["favorite"] = favorites.is_contribution_favorite( contrib, flask_session["indico_user"]) return sorted(results, key=lambda x: x['startDate'])
def get_ongoing_contributions(): events = api.get_ongoing_events() for event in events: if not db_event.get_event(event["id"]): # store event event_tt = api.fetch_timetable(event["id"]) db_event.store_event(event, event_tt) now = datetime.utcnow() tomorrow = now + timedelta(hours=6) results = list( db_contribution.get_contributions( now, tomorrow, [{"hasAnyProtection": False}, {"_fossil": "contribSchEntryDisplay"}] ) ) + list(db_event.get_ongoing_lectures(now, tomorrow)) if flask_session.get("indico_user", ""): for contrib in results: contrib["favorite"] = favorites.is_contribution_favorite(contrib, flask_session["indico_user"]) return sorted(results, key=lambda x: x["startDate"])
def get_event(event_id): event = db_event.get_event(event_id) if event == None: abort(404) return Response(json.dumps(event), mimetype='application/json')
def get_event_speaker(event_id, speaker_id): result = db_event.get_event_speaker(event_id, speaker_id) event = db_event.get_event(event_id) result["event"] = event return Response(json.dumps(result), mimetype='application/json')