def popular(): r = RedisClient.get_instance(dev=False) pop = r.hgetall('popular') sorted_searches = sorted(pop.items(), key=lambda x:int(x[1]), reverse=True)[0:10] final_dict = {} for sorted_search in sorted_searches: final_dict[sorted_search[0].decode('utf-8')] = int(sorted_search[1].decode('utf-8')) return jsonify(final_dict)
def search(): data = json.loads(request.data.decode('utf-8')) query = data['q'] prefs = data['prefs'] es = ElasticStorage.get_instance(dev=False) r = RedisClient.get_instance(dev=False) if r.hexists('popular', query.lower()): r.hincrby('popular', query.lower()) else: r.hset('popular', query.lower(), 1) articles = es.query_articles(query, prefs) articles = list(articles) articles = list({article['title']:article for article in articles}.values()) for article in articles: for key, value in source_map.items(): if key in article['url']: article['source'] = value return jsonify( articles=articles )