def do_request(self, method, secure, crypted, **kwargs): url_arg_strings = [] if self.partner_id: url_arg_strings.append('partner_id=%s' % self.partner_id) if self.user_id: url_arg_strings.append('user_id=%s' % self.user_id) if self.user_auth_token: url_arg_strings.append('auth_token=%s' % urllib.quote_plus(self.user_auth_token)) elif self.partner_auth_token: url_arg_strings.append('auth_token=%s' % urllib.quote_plus(self.partner_auth_token)) url_arg_strings.append('method=%s' % method) url = ('https' if secure else 'http') + self.RPC_URL + '&'.join(url_arg_strings) if self.time_offset: kwargs['syncTime'] = int(time.time() + self.time_offset) if self.user_auth_token: kwargs['userAuthToken'] = self.user_auth_token elif self.partner_auth_token: kwargs['partnerAuthToken'] = self.partner_auth_token data = json.dumps(kwargs) if crypted: data = crypt.pandora_encrypt(data) # execute request req = urllib2.Request(url, data, { 'User-agent': "02strich", 'Content-type': 'text/plain' }) response = urllib2.urlopen(req) text = response.read() # parse result tree = json.loads(text) if tree['stat'] == 'fail': code = tree['code'] msg = tree['message'] if code == 1002: raise AuthenticationError() else: raise ValueError("%d: %s" % (code, msg)) elif 'result' in tree: return tree['result']
def do_request(self, method, secure, crypted, user, **kwargs): url_arg_strings = [] if self.partner_id: url_arg_strings.append("partner_id=%s" % self.partner_id) if user: url_arg_strings.append("user_id=%s" % user["userId"]) if user: url_arg_strings.append("auth_token=%s" % urllib.quote_plus(user["userAuthToken"])) elif self.partner_auth_token: url_arg_strings.append("auth_token=%s" % urllib.quote_plus(self.partner_auth_token)) url_arg_strings.append("method=%s" % method) url = ("https" if secure else "http") + self.RPC_URL + "&".join(url_arg_strings) if self.time_offset: kwargs["syncTime"] = int(time.time() + self.time_offset) if user: kwargs["userAuthToken"] = user["userAuthToken"] elif self.partner_auth_token: kwargs["partnerAuthToken"] = self.partner_auth_token data = json.dumps(kwargs) if crypted: try: cryptedAppend = kwargs.pop("cryptedAppend") data = crypt.pandora_join_encrypt(json.dumps(kwargs), cryptedAppend) except KeyError: data = crypt.pandora_encrypt(data) # execute request req = urllib2.Request(url, data, {"User-agent": "walkman", "Content-type": "text/plain"}) response = self.opener.open(req) text = response.read() # parse result tree = json.loads(text) if tree["stat"] == "fail": code = tree["code"] msg = tree["message"] if code == 1002: raise AuthenticationError() else: raise ValueError("%d: %s" % (code, msg)) elif "result" in tree: return tree["result"]
def do_request(self, method, secure, crypted, user, **kwargs): url_arg_strings = [] if self.partner_id: url_arg_strings.append('partner_id=%s' % self.partner_id) if 'userId' in user: url_arg_strings.append('user_id=%s' % user['userId']) if 'userAuthToken' in user: url_arg_strings.append('auth_token=%s' % urllib.quote_plus(user['userAuthToken'])) elif self.partner_auth_token: url_arg_strings.append('auth_token=%s' % urllib.quote_plus(self.partner_auth_token)) url_arg_strings.append('method=%s' % method) url = ('https' if secure else 'http') + self.RPC_URL + '&'.join(url_arg_strings) if self.time_offset: kwargs['syncTime'] = int(time.time() + self.time_offset) if 'userAuthToken' in user: kwargs['userAuthToken'] = user['userAuthToken'] elif self.partner_auth_token: kwargs['partnerAuthToken'] = self.partner_auth_token data = json.dumps(kwargs) if crypted: data = crypt.pandora_encrypt(data) # execute request req = urllib2.Request(url, data, {'User-agent': "02strich", 'Content-type': 'text/plain'}) response = urllib2.urlopen(req) text = response.read() # parse result tree = json.loads(text) if tree['stat'] == 'fail': code = tree['code'] msg = tree['message'] if code == 1002: raise AuthenticationError() else: raise ValueError("%d: %s" % (code, msg)) elif 'result' in tree: return tree['result']