docs: def set_search_url(self, url):
          """ Reads given query string and stores key-value tuples
  
          :param url: A string containing a valid URL to parse arguments from
          """
  
          self.__init__()
  
          if url[0] == '?':
              url = url[1:]
  
          args = parse_qs(url)
  
          # urldecode keywords
          for arg in args['q']:
              self.searchterms += [ unquote(i) for i in arg.split(" ") ]
          del args['q']
  
          for key, value in args.items():
              self.arguments.update({key: unquote(value[0])})
  
          # look for advanced operators: attitudes
          for attitude in self._attitudes:
              try:
                  i = self.searchterms.index(attitude)
                  del self.searchterms[i]
                  self.attitude_filter = (i == 1)
              except ValueError:
                  pass
  
          # look for advanced operators: question
          try:
              del self.searchterms[ self.searchterms.index(self._question) ]
              self.question_filter = True
          except ValueError:
              pass
  
          # look for advanced operators: link-filter
          try:
              del self.searchterms[ self.searchterms.index(self._link) ]
              self.link_filter = True
          except ValueError:
              pass
  
  
  
          # look for advanced operators: source-filter
          i = None
          for element in self.searchterms:
              if element.startswith(self._source):
                  i = element
                  break
          if i:
              del self.searchterms[ self.searchterms.index(i) ]
              self.source_filter = i[ len(self._source): ]