def collection_source_split_stories(collection_id): collections_query = "tags_id_media:{}".format(collection_id) exclude_spidered_stories = " tags_id_media:{} AND NOT tags_id_stories:{}".format( str(collection_id), TAG_SPIDERED_STORY)\ if 'separate_spidered' in request.args else collections_query interval = 'day' # default, and not currently passed to the calls above all_results = apicache.split_story_count(user_mediacloud_key(), collections_query) # same if request.args doesn't ask to exclude_spidered non_spidered_results = apicache.split_story_count( user_mediacloud_key(), exclude_spidered_stories) all_stories = { 'total_story_count': all_results['total_story_count'], 'list': all_results['counts'], } partial_stories = { 'total_story_count': non_spidered_results['total_story_count'], 'list': non_spidered_results['counts'], } return jsonify({ 'results': { 'all_stories': all_stories, 'partial_stories': partial_stories, 'interval': interval } })
def stream_split_stories_csv(user_mc_key, filename, q): response = { 'story_splits': apicache.split_story_count(user_mc_key, q)['counts'] } clean_results = [{ 'date': trim_solr_date(item['date']), 'numStories': item['count'] } for item in response['story_splits']] clean_results = sorted(clean_results, key=itemgetter('date')) props = ['date', 'numStories'] return csv.stream_response(clean_results, props, filename)
def _source_story_split_count_job(info): source = info['media'] q = "media_id:{}".format(source['media_id']) split_stories = apicache.split_story_count(user_mediacloud_key(), q, 360) source_data = { 'media_id': source['media_id'], 'media_name': source['name'], 'media_url': source['url'], 'total_story_count': split_stories['total_story_count'], 'splits_over_time': split_stories['counts'], } return source_data