Exemple #1
0
def timeline_event_stream(user_id):
    """Handles timeline event notifications."""
    red_p.subscribe(const.CHAN_TIMELINE)
    while True:
        # {'date': 20151121, 'time': 20:24, 'day': 'Wed 14 Oct',
        # 'priority': 1, 'text': 'Hello', 'net' : 1, 'netname': 'Home 2'}
        mess = red_p.get_message()
        if app.config['RANDOM_TIMELINE']:
            if random.randint(0, 1) == 0:
                now = datetime.datetime.now()
                text = ''.join(random.choice(string.letters) for _ in range(15))
                mess = {}
                netid = str(random.choice(list(
                    models.get_user_network_ids(user_id))))
                net = models.get_network(netid)
                mess['data'] = {'date': now.strftime(const.STRTIME_DATE),
                                'time': now.strftime(const.STRTIME_TIME),
                                'day': now.strftime(const.STRTIME_DAY),
                                'priority': const.PRIORITY_COLOUR[
                                    random.randint(0, 3)],
                                'text': text, 'netid': netid,
                                'netname': net['name']}
        if mess:
            mess = ast.literal_eval(mess['data'])
            # Send it to the client
            yield 'data: ' + json.dumps(mess) + '\n\n'
        gevent.sleep(1)
Exemple #2
0
def manage_key(key_id):
    """Generates and deletes api keys."""
    if request.method == 'POST':
        if str(key_id) in models.get_user_network_ids(current_user.id):
            models.generate_api_key(key_id)
            return jsonify({'status': 200})
        else:
            return jsonify({'status': 404,
                            'message': 'User has no such network.'})
    elif request.method == 'DELETE':
        if str(key_id) in models.get_user_api_keys(current_user.id):
            models.clean_api_key(key_id)
            return jsonify({'status': 200})
        else:
            return jsonify({'status': 404,
                            'message': 'User has no such key.'})