def recent(): # parse arg limit = request.args.get('limit', 50) # just look two days back end = current_timestamp() start = end - 24*60*60*2 # fetch data key = 'article_sorted_set' results = db.zrangebyscore(key, min = start, max = end) # turn it into a json list return "[%s]" % ",".join(results[0:limit+1])
def recent(): # parse args start = request.args.get('start', 0) end = request.args.get('end', 1e11) order = request.args.get('order', 'desc') # fetch data key ='article_sorted_set' results = db.zrangebyscore(key, min = start, max = end) if order=='desc': results = [r for r in reversed(results)] # turn it into a json list return "[%s]" % ",".join(results[0:21])
def query(): # parse args article_slug = sluggify(request.args.get('url', '')) data_sources = request.args.get('data_sources', 'all').split(",") start = request.args.get('start', 0) end = request.args.get('end', 1e11) timestamp = request.args.get('timestamp', None) order = request.args.get('order', 'desc') include_article = request.args.get('include_article', 'true').lower() include_keys = request.args.get('include_keys', 'true').lower() # pesky boolian problem if include_keys=='true': include_keys = True elif include_keys=='false': include_keys = False # parse article arg if include_article == 'true': include_article = True elif include_article =='false': include_article = False # timestamp override if timestamp is not None: start = timestamp end = timestamp # fetch data results = db.zrangebyscore(article_slug, min = start, max = end) # optionally filter out particular datasources if data_sources[0] != "all": filtered_results = [] data = [json.loads(r) for r in results] for src in data_sources: for d in data: if d.has_key(src): if not include_keys: filtered_results.append(json.dumps(d.values())) else: filtered_results.append(json.dumps(d)) else: for key in d.keys(): if re.search(src, key): if not include_keys: filtered_results.append(json.dumps(d.values())) else: filtered_results.append(json.dumps(d)) results = filtered_results # optionally order database if order=='desc': results = [r for r in reversed(results)] # turn it into a json list results = "[%s]" % ",".join(results) # create article dict if requested if include_article: return_pattern = "{\"article\" : %s, \"events\" : %s }" article_data = db.get(article_slug+":article") if article_data is None: article_data = "{}" return return_pattern % (article_data, results) # otherwise just return json list else: return results