Example #1
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 #2
0
        def build_parameters(self, args, kargs):
            self.parameters = {'format': 'json'} # bind here, as default
            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 #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]] = quote(
                        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] = quote(convert_to_utf8_str(arg))
Example #4
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()])