Ejemplo n.º 1
0
    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']
Ejemplo n.º 2
0
    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"]
Ejemplo n.º 3
0
    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']