Пример #1
0
def get_entries(include_terms, exclude_terms=None,
                order_by='relevant', **kwargs):

    search_string = metasearch_util.search_string_from_terms(
        include_terms, exclude_terms)

    # Note here that we can use more than 50
    # (metasearch.DEFAULT_MAX_RESULTS), but that requires doing multiple
    # queries for RSS "pagination" with youtube's API.  Maybe we should
    # implement that later.
    get_params = {
        'vq': search_string.encode('utf8'),
        'alt': 'rss',
        'max-results': defaults.DEFAULT_MAX_RESULTS}

    if order_by == 'latest':
        get_params['orderby'] = 'published'
    elif order_by == 'relevant':
        get_params['orderby'] = 'relevance'
    else:
        pass #TODO: throw an error here

    get_url = '%s?%s' % (YOUTUBE_QUERY_BASE, urllib.urlencode(get_params))

    parsed_feed = feedparser.parse(get_url)

    entries = []
    for entry in parsed_feed.entries:
        try:
            entries.append(parse_youtube_entry(entry))
        except errors.VideoDeleted:
            pass
    return entries
Пример #2
0
def get_entries(include_terms,
                exclude_terms=None,
                order_by='relevant',
                **kwargs):

    search_string = metasearch_util.search_string_from_terms(
        include_terms, exclude_terms)

    # Note here that we can use more than 50
    # (metasearch.DEFAULT_MAX_RESULTS), but that requires doing multiple
    # queries for RSS "pagination" with youtube's API.  Maybe we should
    # implement that later.
    get_params = {
        'vq': search_string.encode('utf8'),
        'alt': 'rss',
        'max-results': defaults.DEFAULT_MAX_RESULTS
    }

    if order_by == 'latest':
        get_params['orderby'] = 'published'
    elif order_by == 'relevant':
        get_params['orderby'] = 'relevance'
    else:
        pass  #TODO: throw an error here

    get_url = '%s?%s' % (YOUTUBE_QUERY_BASE, urllib.urlencode(get_params))

    parsed_feed = feedparser.parse(get_url)

    return [parse_youtube_entry(entry) for entry in parsed_feed.entries]
Пример #3
0
def get_entries(include_terms, exclude_terms=None,
                order_by='relevant', **kwargs):
    # NOTE: As of this writing, if you order_by 'relevant' from blip.tv,
    # blip.tv finds you maximally *irrelevant* videos to your query.
    #
    # This is quite frustrating, so we override all searches to sort by
    # date instead.
    #
    # Note also that sort by date doesn't actually sort by date.
    # Example URLs with broken behavior:
    #
    # http://blip.tv/search/?q=va+floyd&skin=rss&sort=relevant
    # irrelevant hits
    #
    # http://blip.tv/search/?q=va+floyd&skin=rss&sort=date
    # more irrelevant hits
    #
    # At least http://blip.tv/rss?q=va+floyd&skin=rss&sort=date
    # is mostly relevant. It's not sorted by date, though.
    #
    # Mega wtf.
    #
    # http://blip.tv/rss?q=va+floyd is equivalent to the above,
    # and has fewer parameters, so we use that.
    #
    # -- Asheesh 2010-12-14.
    search_string = metasearch_util.search_string_from_terms(
        include_terms, exclude_terms)

    get_params = {
        'q': search_string.encode('utf8')
    }

    get_url = '%s?%s' % (BLIP_QUERY_BASE, urllib.urlencode(get_params))

    parsed_feed = feedparser.parse(get_url)

    if len(parsed_feed.entries) == 1 and \
            parsed_feed.entries[0].summary == 'Search returned no results.':
        return [] # no results

    return [parse_entry(entry) for entry in parsed_feed.entries]
Пример #4
0
def get_entries(include_terms, exclude_terms=None,
                order_by='relevant', **kwargs):
    search_string = metasearch_util.search_string_from_terms(
        include_terms, exclude_terms)

    get_params = {
        'skin': 'rss',
        'search': search_string.encode('utf8')}

    if order_by == 'latest':
        get_params['sort'] = 'date'

    get_url = '%s?%s' % (BLIP_QUERY_BASE, urllib.urlencode(get_params))

    parsed_feed = feedparser.parse(get_url)

    if len(parsed_feed.entries) == 1 and \
            parsed_feed.entries[0].summary == 'Search returned no results.':
        return [] # no results

    return [parse_entry(entry) for entry in parsed_feed.entries]
Пример #5
0
def get_entries(include_terms, exclude_terms=None,
                order_by=None, **kwargs):
    search_string = metasearch_util.search_string_from_terms(
        include_terms, exclude_terms)

    get_params = {
        'format': 'json',
        'nojsoncallback': '1',
        'method': 'vimeo.videos.search',
        'query': search_string,
        'per_page': str(defaults.DEFAULT_MAX_RESULTS),
        'fullResponse': '1',
        'api_key': vimeo_scraper.VIMEO_API_KEY
        }
    url = '%s?%s' % (vimeo_scraper.VIMEO_API_URL,
                     urllib.urlencode(get_params))
    consumer = oauth2.Consumer(vimeo_scraper.VIMEO_API_KEY,
                               vimeo_scraper.VIMEO_API_SECRET)
    client = oauth2.Client(consumer)
    request = client.request(url)
    json = simplejson.loads(request[1])

    return [parse_entry(entry) for entry in json['videos']['video']]