コード例 #1
0
def wiki_search(s, seed, n, morelike=False):
    """
    A client to the Mediawiki search API
    """
    endpoint, params = build_wiki_search(s, seed, n, morelike)
    try:
        response = data_fetcher.get(endpoint, params=params)
    except ValueError:
        log.info('Could not search for articles related to seed in %s. Choose another language.', s)
        return []

    if 'query' not in response or 'search' not in response['query']:
        log.info('Could not search for articles related to seed in %s. Choose another language.', s)
        return []

    response = response['query']['search']
    results = [r['title'].replace(' ', '_') for r in response]
    if len(results) == 0:
        log.info('No articles similar to %s in %s. Try another seed.', seed, s)
        return []

    return results
コード例 #2
0
    def query_pageviews(self, s):
        """
        Query pageview API and parse results
        """
        days = configuration.get_config_int('popular_pageviews', 'days')
        date_format = configuration.get_config_value('popular_pageviews', 'date_format')
        query = configuration.get_config_value('popular_pageviews', 'query')
        date = (datetime.datetime.utcnow() - datetime.timedelta(days=days)).strftime(date_format)
        query = query.format(source=s, date=date)
        try:
            data = data_fetcher.get(query)
        except ValueError:
            return []

        article_pv_tuples = []

        try:
            for d in data['items'][0]['articles']:
                article_pv_tuples.append((d['article'], d['views']))
        except:
            log.info('Could not get most popular articles for %s from pageview API. Try using a seed article.', s)

        return article_pv_tuples