Esempio n. 1
0
def compile_events():
    try:
        with current_app.test_request_context():
            print "[+] Starting events cache reset..."
            cache = Cache(config={'CACHE_TYPE': 'redis', 'CACHE_REDIS_DB': 0})
            cache.init_app(current_app)

            url = current_app.config['UFRAME_ASSETS_URL'] + '/events'
            payload = requests.get(url)
            if payload.status_code is 200:
                data = payload.json()
                events = _compile_events(data)

                if "error" not in events:
                    cache.set('event_list', events, timeout=CACHE_TIMEOUT)
                    print "[+] Events cache reset."
                else:
                    print "[-] Error in cache update"
    except Exception as err:
        message = 'compile_cam_images exception: %s' % err.message
        current_app.logger.warning(message)
Esempio n. 2
0
def get_events():
    '''
    -- M@C 05/12/2015
    Added to support event query on stream data.
    '''
    try:
        '''
        Listing GET request of all events.  This method is cached for 1 hour.
        '''
        data = {}

        cached = cache.get('event_list')
        if cached:
            data = cached

        else:
            url = current_app.config['UFRAME_ASSETS_URL']\
                + '/%s' % 'events'

            payload = requests.get(url)

            data = payload.json()
            if payload.status_code != 200:
                return jsonify({"events": payload.json()}), payload.status_code

            data = _compile_events(data)

            if "error" not in data:
                cache.set('event_list', data, timeout=CACHE_TIMEOUT)

        if request.args.get('ref_des') and request.args.get('ref_des') != "":
            ref_des = request.args.get('ref_des')
            resp = get_events_by_ref_des(data, ref_des)
            return resp

        if request.args.get('search') and request.args.get('search') != "":
            return_list = []
            ven_set = []
            ven_subset = []
            search_term = str(request.args.get('search')).split()
            search_set = set(search_term)
            for subset in search_set:
                if len(return_list) > 0:
                    if len(ven_set) > 0:
                        ven_set = deepcopy(ven_subset)
                    else:
                        ven_set = deepcopy(return_list)
                    ven_subset = []
                    for item in return_list:
                        if subset.lower() in str(item['eventClass']).lower():
                            ven_subset.append(item)
                        elif subset.lower() in str(item['id']).lower():
                            ven_subset.append(item)
                        elif subset.lower() in str(item['startDate']).lower():
                            ven_subset.append(item)
                    data = ven_subset
                else:
                    for item in data:
                        if subset.lower() in str(item['eventClass']).lower():
                            return_list.append(item)
                        elif subset.lower() in str(item['id']).lower():
                            return_list.append(item)
                        elif subset.lower() in str(item['startDate']).lower():
                            return_list.append(item)
                    data = return_list

        result = jsonify({'events': data})
        return result

    except requests.exceptions.ConnectionError as e:
        error = "Error: Cannot connect to uframe.  %s" % e
        print error
        return make_response(error, 500)