Esempio n. 1
0
    def _get_keyword(self):
        
        IQE_KEY = '0e640412a82a4896bfb40bb53429729b'
        IQE_SECRET = '310970e406d94f9db24b2c527d7ae6d9'

        cache = Memcached(["localhost:11211"], 60)

        #file_image = self.request.files['']
        hash_value = calc_hash(self.request.body)
        keyword = cache.get(hash_value)
        if not cached_response:
            file_image = '/tmp/%s.jpg' % hash_value
            open(file_image, 'w').write(self.request.body)

            api = Api(IQE_KEY, IQE_SECRET)
            data = api.query(file_image)
            response = api.update()

            name = response['data']['results'][0]['qid_data']['labels']
            results = []
            for res in response['data']['results']:
                data = {
                    'product_name': res['qid_data']['labels'],
                }
                results.append(data)
            
            keyword = " ".join(results)
            
            cache.set(hash_value, keyword)
        
        return keyword
Esempio n. 2
0
File: tests.py Progetto: SFCRD/pyiqe
def _test_query_flow():
    """ 
    Tests whether querying works with the same interface. Warning, this will deplete your
    purchased query count. Also it requires that you set IQE_KEY and IQE_SECRET in your
    environment
    """
    import time
    from pyiqe import Api
    
    iqe = Api(version="1.2")
    response, qid = iqe.query('testdata/dole1.jpeg')
    print("sending in query with qid %s" % qid)
    assert response == {'data': {'error': 0}}, "Invalid Response while querying: \n%s " % response
    
    print("\nwaiting for results ...")
    response = iqe.update()
    print(response)
    
    print("\nretrieving results manually")
    time.sleep(2)
    response = iqe.result(qid)
    print(response)
Esempio n. 3
0
class TestApi(unittest.TestCase):
    
    def setUp(self):
        from pyiqe import Api
        self.api = Api(version="1.2")
        
    def test_QueryExtra(self):
        """ Make sure we pass back extra argument is returned"""
        import json
        device_id = "pyiqe.test.%s" % time.time()
        response, qid = self.api.query('testdata/dole1.jpeg', extra={'a':1}, device_id=device_id)
        
        # update method
        result = self.api.update(device_id=device_id)
        pprint(result)
        result = result['data']['results']
        pprint(result)
        assert "extra" in result[0] and result[0]['extra'] == json.dumps({'a':1}), "Extra Argument mismatch %s" % result
        
        # result method
        response = self.api.result(qid)
        result = response['data']
        pprint(result)
        assert "extra" in result and result['extra'] == json.dumps({'a':1}), "Extra Argument mismatch %s" % result
Esempio n. 4
0
def match_image_to_turn(image, game_id):
    """
    Match the image to the given image in the games last played image section
    returns True or False
    """
    api = Api(settings.IQE_KEY, settings.IQE_SECRET)

    label = utils.create_unique_label()
    filename = "/tmp/%s" %label
    file = open(filename, "w")

    file.write(image.decode('base64'))
    file.close()

    response, qid = api.query(filename, device_id=label)
    print "Object created with response: %s and qid: %s" %(response, qid)

    game = query_db('select * from game where id=?', [game_id], one=True)
    expected_label = game['label']

    try:
        # update method
        result = api.update(device_id=label)

        data = result['data']
        if "results" in data:
            print data['results']
            if isinstance(data['results'], list):
                actual_labels = [result['qid_data']['labels'] for result in data['results']]
                result = expected_label in actual_labels
            else:
                actual_labels = data['results']['qid_data']['labels']
                result = expected_label == actual_labels
            print "Actual labels: %s" %actual_labels
            print "Expected labels: %s" %expected_label
            print "Result for the image match is: %s" %result
            if result:
                return result
    except Exception as ex:
        print "Match raised ane exception"
        import traceback
        traceback.print_exc()

    # result method
    response = api.result(qid)
    data = response['data']

    print "Data response: %s" %response

    if "results" in data:
        if isinstance(data['results'], list):
            actual_labels = [result['labels'] for result in data['results']]
            result = expected_label in actual_labels
        else:
            actual_labels = data['results']['labels']
            result = expected_label == actual_labels
        print "Actual labels: %s" %actual_labels
        print "Expected labels: %s" %expected_label
        print "Result for the image match is: %s" %result
        return result
    else:
        return False