Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)])
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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])
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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'])
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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)
Exemplo n.º 13
0
 def filter_events(event, now):
     return dt_from_indico(event['startDate']) - utc.localize(now) > timedelta(days=1)
Exemplo n.º 14
0
 def filter_events(event, now):
     return utc.localize(now) -dt_from_indico(event['startDate']) < timedelta(days=30)
Exemplo n.º 15
0
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)