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
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]
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]
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]
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']]