示例#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
示例#2
0
    def getByKeyword(self, keyword, callback):
    
        cache = Memcached(["localhost:11211"], 60)

        hash_value = calc_hash("getbykeyword:keyword")
        vitrine = cache.get(hash_value)
        
        if not vitrine:
            produto_buscape = yield gen.Task(Produto.getProductByName, keyword)
            
            if not produto_buscape:
                produto_buscape = yield gen.Task(Produto.getTopProduct)
    
            vitrine = Vitrine().getByProdutoBuscape(
                produto_id = produto_buscape['id'],
                buscape_image_url = produto_buscape['thumbnail']['url'],
                name = produto_buscape['productname'].encode("utf-8"),
                pricemin = produto_buscape.get('pricemin'),
                pricemax = produto_buscape.get('pricemax'),
                compare = [link['link']['url'] for link in produto_buscape.get('links') if link['link']['type'] == 'product'][0],
            )
            cache.set(hash_value, vitrine)
            
        callback(vitrine)