def api_topics_preview_word_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr(solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]'])) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) word_count_result = user_mc.wordCount(solr_query=solr_query, solr_filter=fq) return jsonify(word_count_result) # give them back new data, so they can update the client
def api_topics_preview_story_sample(): user_mc = user_mediacloud_client() solr_query = concatenate_query_for_solr(solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]'])) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) num_stories = request.form['rows'] story_count_result = user_mc.storyList(solr_query=solr_query, solr_filter=fq, sort=user_mc.SORT_RANDOM, rows=num_stories) return jsonify(story_count_result)
def api_topics_preview_split_story_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr(solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]'])) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) results = user_mc.storyCount(solr_query=solr_query, solr_filter=fq, split=True) total_stories = 0 for c in results['counts']: total_stories += c['count'] results['total_story_count'] = total_stories return jsonify({'results': results})
def api_topics_preview_word_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr( solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]']) ) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) word_count_result = user_mc.wordCount(solr_query=solr_query, solr_filter=fq) return jsonify(word_count_result ) # give them back new data, so they can update the client
def api_topics_preview_story_sample(): user_mc = user_mediacloud_client() solr_query = concatenate_query_for_solr( solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]']) ) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) story_count_result = user_mc.storyList(solr_query=solr_query, solr_filter=fq, sort=user_mc.SORT_RANDOM) return jsonify(story_count_result)
def api_topics_preview_story_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr( solr_seed_query=request.form['q'], start_date=request.form['start_date'], end_date=request.form['end_date'], media_ids=_media_ids_from_sources_param(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=_media_tag_ids_from_collections_param( request.form['collections[]']) ) if 'collections[]' in request.form else None, story_count_result = user_mc.storyCount(solr_query=solr_query) # maybe check admin role before we run this? return jsonify(story_count_result ) # give them back new data, so they can update the client
def topic_focus_definition_update_or_create(topics_id): user_mc = user_mediacloud_client() name = request.form['focusName'] description = request.form['focusDescription'] q = request.form['keywords'] if 'keywords' in request.form else '' collections = _parse_collection_ids(request.form) sources = _parse_media_ids(request.form) # update if it has an id, create if new if 'foci_id' in request.form: # for editing, the media ids come in through the keywords parameter # you can't change the focal set a focus is in foci_id = request.form['foci_id'] focus = user_mc.topicFocusDefinitionUpdate(topics_id, foci_id, name=name, description=description, query=q) else: # respect option for media and sources if (sources not in [None, ''] and len(sources) > 0) or (collections not in [None, ''] and len(collections) > 0): query = concatenate_query_for_solr(q, sources, collections) else: query = q if int(request.form['focalSetDefinitionId'] ) is NEW_FOCAL_SET_PLACEHOLDER_ID: fs_name = request.form['focalSetName'] fs_description = request.form['focalSetDescription'] focal_technique = request.form['focalTechnique'] new_focal_set = user_mc.topicFocalSetDefinitionCreate( topics_id, fs_name, fs_description, 'Boolean Query') focal_set_definitions_id = new_focal_set[ 'focal_set_definitions_id'] else: focal_set_definitions_id = request.form['focalSetDefinitionId'] # create focus, pointing at focal set focus = user_mc.topicFocusDefinitionCreate( topics_id, name=name, description=description, query=query, focal_set_definitions_id=focal_set_definitions_id) return jsonify(focus)
def _topic_seed_story_count(topic): try: if access_public_topic(topic['topics_id']): api_key = TOOL_API_KEY else: api_key = user_mediacloud_key() seed_query_count = shared_apicache.story_count( api_key, q=concatenate_query_for_solr( solr_seed_query=topic['solr_seed_query'], media_ids=[m['media_id'] for m in topic['media']], tags_ids=[t['tags_id'] for t in topic['media_tags']]), fq=concatenate_solr_dates(start_date=topic['start_date'], end_date=topic['end_date']))['count'] except mediacloud.error.MCException: # the query syntax is wrong (perhaps pre-story-level search seed_query_count = None return seed_query_count
def api_topics_preview_split_story_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr( solr_seed_query=request.form['q'], media_ids=ids_from_comma_separated_str(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=ids_from_comma_separated_str(request.form['collections[]']) ) if 'collections[]' in request.form else None, fq = concatenate_solr_dates(start_date=request.form['start_date'], end_date=request.form['end_date']) results = user_mc.storyCount(solr_query=solr_query, solr_filter=fq, split=True) total_stories = 0 for c in results['counts']: total_stories += c['count'] results['total_story_count'] = total_stories return jsonify({'results': results})
def api_topics_preview_sentences_count(): user_mc = user_admin_mediacloud_client() solr_query = concatenate_query_for_solr( solr_seed_query=request.form['q'], start_date=request.form['start_date'], end_date=request.form['end_date'], media_ids=_media_ids_from_sources_param(request.form['sources[]']) if 'sources[]' in request.form else None, tags_ids=_media_tag_ids_from_collections_param( request.form['collections[]']) ) if 'collections[]' in request.form else None, sentence_count_result = user_mc.sentenceCount( solr_query=solr_query, split_start_date=request.form['start_date'], split_end_date=request.form['end_date'], split=True) return jsonify(sentence_count_result)
def story_counts(topics_id): query = request.form['keywords'] if 'keywords' in request.form else '' #for preview information in subtopics and platforms - scope by media source info collections = _parse_collection_ids(request.args) sources = _parse_media_ids(request.args) merged_args = {} if ((sources not in [None, ''] and len(sources) > 0) or collections not in [None, ''] and len(collections) > 0): query = concatenate_query_for_solr(query, sources, collections) merged_args = {'q': query} filtered = apicache.topic_story_count(user_mediacloud_key(), topics_id, **merged_args) total = apicache.topic_story_count(user_mediacloud_key(), topics_id, timespans_id=None, snapshots_id=None, foci_id=None, q=None) return jsonify( {'counts': { 'count': filtered['count'], 'total': total['count'] }})