Exemplo n.º 1
0
 def __init__(self, service, source = 'Web', resultsPerPage = 10, **args):
     """
     Args:
         source - should be 'Web', 'Image', 'News', 'RelatedSearch', 'SpellingSuggestions'
     """
     SearchEngine.__init__(self, service, **args)
     self.source = source
     self.resultsPerPage = resultsPerPage
Exemplo n.º 2
0
    def __init__(self, service, source = 'Web', adult = 'Strict', market = 'en-US', resultsPerPage = 8, filters = None, sortBy = None, newsCategory = None, sites=None, **args):
        """
        Arguments for all source types:
            (1) source(str)         -    Should be 'Web', 'Image', 'News', 'RelatedSearch', 'SpellingSuggestions'
            (2) adult(str)          -    Strict is the default, not recommended to change this, can also be 'Moderate' or 'Off'
            (3) market(str)         -    For UK: en-GB, For Netherlands: nl-NL etc
            (4) resultsPerPage(int) -    How many results per page
            
        Arguments for Image and Video searches only:
            (1) filters(str)        -    Filter options split up by '+' you can only have one of each type see 
                                         Bing API documentation for examples of the valid filters.
                                         
                                         Example: "Style:Photo+Aspect:Tall'" gets tall photos.
                                     
        Arguments for Video and News searches only:
            (1) sortBy(str)         -    You can select to sort by either 'Date' or 'Relevance'

        Arguments for News searches only:
            (1) newsCategory(str)   -    What sort of news is wanted, see BingAPI for list of options, for example:
                                         'rt_ScienceAndTechnology' to find news under this category. Only available
                                         with the en-US market, 'cause the rest of the world do not like categories.
        """
        SearchEngine.__init__(self, service, **args)    # This will also handle any unsupported parameters
        
        # The search sources have different limits
        sources_to_limits = {"Image"                :   50,
                             "Web"                  :   50,
                             "News"                 :   15,
                             "RelatedSearch"        :   50,
                             "Video"                :   50,
                             "SpellingSuggestions"  :   50}
        
        self.engineName = "Bing V3_json"            # Used for error identification  
        
        # If there is not entry in the sources dictionary with their limits raise an Error
        if source in sources_to_limits:        
            self.source = source
        else:
            raise SearchEngineError(self.engineName, "Invalid source type: %s is not supported" % source)
        
        # For some reason Spelling Suggestions (named wrongly in their documentation) is only available as Atom
        if self.source != "SpellingSuggestions":
            self.format = "json"
        else:
            self.format = "atom"
        
        # Quick bit of validation, if greater than the sources limit or 0 or less use a default
        if resultsPerPage > sources_to_limits[source] or resultsPerPage <= 0:
            self.resultsPerPage = 8
        else:
            self.resultsPerPage = resultsPerPage
        
        self.adult = adult
        self.market = market
        self.filters = filters
        self.sortBy = sortBy
        self.newsCategory = newsCategory
        self.sites = sites       
Exemplo n.º 3
0
 def __init__(self, service, source = 'web', adult = 'Strict', market = 'en-GB', resultsPerPage = 10, lat = None, lon = None, radius = 5, sites=None, **args):
   SearchEngine.__init__(self, service, **args)
   sitesearch.__init__(self, sites)
   self.sites = sites
   self.source = source
   self.adult = adult
   self.market = market
   self.resultsPerPage = resultsPerPage
   self.lat = lat
   self.lon = lon
   self.radius = radius
Exemplo n.º 4
0
  def __init__(self, service, source = 'Web', adult = 'Strict', market = 'en-GB', resultsPerPage = 8, filters = None, sortBy = None, newsCategory = None, sites=None, **args):
    SearchEngine.__init__(self, service, **args)
    sitesearch.__init__(self, sites)

    self.source = source
    self.adult = adult
    self.market = market
    self.resultsPerPage = resultsPerPage
    self.filters = filters
    self.sortBy = sortBy
    self.newsCategory = newsCategory
Exemplo n.º 5
0
  def __init__(self, service, resultsPerPage = 8, order=None, tags=None, filter=None, genres=None, types=None, bpmFilter=None, durationFilter=None, createdFilter=None, **args):
    SearchEngine.__init__(self, service, **args)

    self.resultsPerPage = resultsPerPage
    self.order = order
    self.tags = tags
    self.filter = filter
    self.genres = genres
    self.types = types
    self.bpmFilter = bpmFilter
    self.durationFilter = durationFilter
    self.createdFilter = createdFilter
Exemplo n.º 6
0
 def __init__(self,
              service,
              source='web',
              adult='Strict',
              market='en-GB',
              resultsPerPage=10,
              lat=None,
              lon=None,
              radius=5,
              sites=None,
              **args):
     SearchEngine.__init__(self, service, **args)
     sitesearch.__init__(self, sites)
     self.sites = sites
     self.source = source
     self.adult = adult
     self.market = market
     self.resultsPerPage = resultsPerPage
     self.lat = lat
     self.lon = lon
     self.radius = radius
Exemplo n.º 7
0
    def __init__(self,
                 service,
                 source='Web',
                 adult='Strict',
                 market='en-GB',
                 resultsPerPage=8,
                 filters=None,
                 sortBy=None,
                 newsCategory=None,
                 sites=None,
                 **args):
        SearchEngine.__init__(self, service, **args)
        sitesearch.__init__(self, sites)

        self.source = source
        self.adult = adult
        self.market = market
        self.resultsPerPage = resultsPerPage
        self.filters = filters
        self.sortBy = sortBy
        self.newsCategory = newsCategory
Exemplo n.º 8
0
    def __init__(self,
                 service,
                 resultsPerPage=8,
                 order=None,
                 tags=None,
                 filter=None,
                 genres=None,
                 types=None,
                 bpmFilter=None,
                 durationFilter=None,
                 createdFilter=None,
                 **args):
        SearchEngine.__init__(self, service, **args)

        self.resultsPerPage = resultsPerPage
        self.order = order
        self.tags = tags
        self.filter = filter
        self.genres = genres
        self.types = types
        self.bpmFilter = bpmFilter
        self.durationFilter = durationFilter
        self.createdFilter = createdFilter
Exemplo n.º 9
0
  def __init__(self, service, source = 'Definitions', resultsPerPage = 8, sourceDictionaries = None, **args):
    SearchEngine.__init__(self, service, **args)

    self.source = source
    self.resultsPerPage = resultsPerPage
    self.sourceDictionaries = sourceDictionaries
Exemplo n.º 10
0
 def __init__(self, service, source='web', resultsPerPage=10, **args):
     SearchEngine.__init__(self, service, **args)
     self.source = source
     self.resultsPerPage = resultsPerPage
Exemplo n.º 11
0
 def __init__(self, service, source = 'web', resultsPerPage = 10, **args):
     SearchEngine.__init__(self, service, **args)
     self.source = source
     self.resultsPerPage = resultsPerPage
Exemplo n.º 12
0
    def __init__(self,
                 service,
                 source='Web',
                 adult='Strict',
                 market='en-US',
                 resultsPerPage=8,
                 filters=None,
                 sortBy=None,
                 newsCategory=None,
                 sites=None,
                 **args):
        """
        Arguments for all source types:
            (1) source(str)         -    Should be 'Web', 'Image', 'News', 'RelatedSearch', 'SpellingSuggestions'
            (2) adult(str)          -    Strict is the default, not recommended to change this, can also be 'Moderate' or 'Off'
            (3) market(str)         -    For UK: en-GB, For Netherlands: nl-NL etc
            (4) resultsPerPage(int) -    How many results per page
            
        Arguments for Image and Video searches only:
            (1) filters(str)        -    Filter options split up by '+' you can only have one of each type see 
                                         Bing API documentation for examples of the valid filters.
                                         
                                         Example: "Style:Photo+Aspect:Tall'" gets tall photos.
                                     
        Arguments for Video and News searches only:
            (1) sortBy(str)         -    You can select to sort by either 'Date' or 'Relevance'

        Arguments for News searches only:
            (1) newsCategory(str)   -    What sort of news is wanted, see BingAPI for list of options, for example:
                                         'rt_ScienceAndTechnology' to find news under this category. Only available
                                         with the en-US market, 'cause the rest of the world do not like categories.
        """
        SearchEngine.__init__(
            self, service,
            **args)  # This will also handle any unsupported parameters

        # The search sources have different limits
        sources_to_limits = {
            "Image": 50,
            "Web": 50,
            "News": 15,
            "RelatedSearch": 50,
            "Video": 50,
            "SpellingSuggestions": 50
        }

        self.engineName = "Bing V3_json"  # Used for error identification

        # If there is not entry in the sources dictionary with their limits raise an Error
        if source in sources_to_limits:
            self.source = source
        else:
            raise SearchEngineError(
                self.engineName,
                "Invalid source type: %s is not supported" % source)

        # For some reason Spelling Suggestions (named wrongly in their documentation) is only available as Atom
        if self.source != "SpellingSuggestions":
            self.format = "json"
        else:
            self.format = "atom"

        # Quick bit of validation, if greater than the sources limit or 0 or less use a default
        if resultsPerPage > sources_to_limits[source] or resultsPerPage <= 0:
            self.resultsPerPage = 8
        else:
            self.resultsPerPage = resultsPerPage

        self.adult = adult
        self.market = market
        self.filters = filters
        self.sortBy = sortBy
        self.newsCategory = newsCategory
        self.sites = sites