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)
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])
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)
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
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
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()])