Example #1
0
        def build_parameters(self, args, kargs):
            self.parameters = {}
            for idx, arg in enumerate(args):
                try:
                    self.parameters[self.allowed_param[idx]] = convert_to_utf8_str(arg)
                except IndexError:
                    raise WeibopError('Too many parameters supplied!')

            for k, arg in kargs.items():
                if arg is None:
                    continue
                if k in self.parameters:
                    raise WeibopError('Multiple values for parameter %s supplied!' % k)

                self.parameters[k] = convert_to_utf8_str(arg)
Example #2
0
 def get_normalized_parameters(self):
     """Return a string that contains the parameters that must be signed."""
     params = self.parameters
     try:
         # Exclude the signature if it exists.
         del params['oauth_signature']
     except:
         pass
     # Escape key values before sorting.
     key_values = [(escape(convert_to_utf8_str(k)),
                    escape(convert_to_utf8_str(v))) \
         for k, v in params.items()]
     # Sort lexicographically, first after key, then after value.
     key_values.sort()
     # Combine key value pairs into a string.
     return '&'.join(['%s=%s' % (k, v) for k, v in key_values])
Example #3
0
        def build_parameters(self, args, kargs):
            # bind here, as default
            self.parameters = {'format': self.payload_format}
            for idx, arg in enumerate(args):
                try:
                    self.parameters[self.allowed_param[idx]] = convert_to_utf8_str(arg)
                except IndexError:
                    raise QWeiboError('Too many parameters supplied!')

            for k, arg in kargs.items():
                if bool(arg) == False:
                    continue
                if k in self.parameters:
                    raise QWeiboError('Multiple values for parameter `%s` supplied!' % k)
                #if k not in self.allowed_param:
                #    raise QWeiboError('`%s` is not allowd in this API function.' % k)
                self.parameters[k] = convert_to_utf8_str(arg)
Example #4
0
		def __init__(self, args, kargs):
			self.paramters = dict()
			for k, v in kargs.items():
				if v is None:
					continue
				if k in self.allow_parameters:
					try:
						self.paramters[k] = utils.convert_to_utf8_str(v)
					except Exception, e:
						raise "parse paramters errors: " + e
Example #5
0
 def build_post_body(self, args, kargs):
     self.parameters = {}
     
     if not self.post_data == {}:
         return
     
     post_body = []
     
     for idx, arg in enumerate(args):
         if arg is None:
             continue
         
         try:
             if not is_iterable(arg):
                 post_body.append((self.allowed_param[idx], convert_to_utf8_str(arg)))
             else:
                 self.parameters[self.allowed_param[idx]] = []
                 for value in arg:
                     post_body.append((self.allowed_param[idx], convert_to_utf8_str(value)))
                     self.parameters[self.allowed_param[idx]].append(convert_to_utf8_str(arg))
         except:
             raise MicardError('Too many parameters supplied!')
         
     for k, arg in kargs.items():
         if arg is None:
             continue
         
         if not is_iterable(arg):
             post_body.append((k, convert_to_utf8_str(arg)))
             self.parameters[k] = convert_to_utf8_str(arg)
         else:
             self.parameters[k]=[]
             for value in arg:
                 post_body.append((k,convert_to_utf8_str(value)))
                 self.parameters[k].append(convert_to_utf8_str(value))
     
     post_body.sort()
     self.post_data = post_body
Example #6
0
 def to_postdata(self):
     """Serialize as post data for a POST request."""
     return '&'.join(['%s=%s' % (escape(convert_to_utf8_str(k)),
                                 escape(convert_to_utf8_str(v))) \
         for k, v in self.parameters.items()])