示例#1
0
 def send_api_request(self, request, captcha_response=None):
     """
     Modified method with immunity to timeout and bad internet
     :param request: VK API method
     :param captcha_response: captcha dictionary
     """
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     access_token = self.access_token
     if access_token:
         method_args['access_token'] = access_token
     if captcha_response:
         method_args['captcha_sid'] = captcha_response['sid']
         method_args['captcha_key'] = captcha_response['key']
     timeout = request._api._timeout
     try:
         response = self.requests_session.post(url,
                                               method_args,
                                               timeout=timeout)
     except (requests.exceptions.ReadTimeout,
             requests.exceptions.ConnectionError):
         response = self.send_api_request(request,
                                          captcha_response=captcha_response)
     return response
示例#2
0
文件: api.py 项目: itJunky/vk
 def send_api_request(self, request):
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     if self.access_token:
         method_args["access_token"] = self.access_token
     timeout = request._api._timeout
     response = self.requests_session.post(url, method_args, timeout=timeout)
     return response
示例#3
0
 def send_api_request(self, request):
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     if self.access_token:
         method_args['access_token'] = self.access_token
     timeout = request._api._timeout
     response = self.requests_session.post(url,
                                           method_args,
                                           timeout=timeout)
     return response
示例#4
0
文件: api.py 项目: backdorus/vk
    def method_request(self, method_name, timeout=None, **method_kwargs):
        params = {"timestamp": int(time.time()), "v": self.api_version}
        if self.access_token:
            params["access_token"] = self.access_token

        method_kwargs = stringify_values(method_kwargs)
        params.update(method_kwargs)
        url = "https://api.vk.com/method/" + method_name

        self.logger.info("Make request %s, %s", url, params)
        response = self.session.post(url, params, timeout=timeout or self.default_timeout)
        return response
示例#5
0
 def send_api_request(self, request, captcha_response=None):
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     access_token = self.access_token
     if access_token:
         method_args['access_token'] = access_token
     if captcha_response:
         method_args['captcha_sid'] = captcha_response['sid']
         method_args['captcha_key'] = captcha_response['key']
     timeout = request._api._timeout
     response = self.requests_session.post(url, method_args, timeout=timeout)
     return response
示例#6
0
文件: api.py 项目: chibisov/vk
 def send_api_request(self, request, captcha_response=None):
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     access_token = self.access_token
     if access_token:
         method_args['access_token'] = access_token
     if captcha_response:
         method_args['captcha_sid'] = captcha_response['sid']
         method_args['captcha_key'] = captcha_response['key']
     timeout = request._api._timeout
     response = self.requests_session.post(url, method_args, timeout=timeout)
     return response
示例#7
0
    def method_request(self, method_name, timeout=None, **method_kwargs):
        params = {
            'timestamp': int(time.time()),
            'v': self.api_version,
        }
        if self.access_token:
            params['access_token'] = self.access_token

        method_kwargs = stringify_values(method_kwargs)
        params.update(method_kwargs)
        url = 'https://api.vk.com/method/' + method_name

        logger.info('Make request %s, %s', url, params)
        response = self.requests_session.post(url,
                                              params,
                                              timeout=timeout
                                              or self.default_timeout)
        return response
示例#8
0
 def send_api_request(self, request, captcha_response=None):
     """
     Modified method with immunity to timeout and bad internet
     :param request: VK API method
     :param captcha_response: captcha dictionary
     """
     url = self.API_URL + request._method_name
     method_args = request._api._method_default_args.copy()
     method_args.update(stringify_values(request._method_args))
     access_token = self.access_token
     if access_token:
         method_args['access_token'] = access_token
     if captcha_response:
         method_args['captcha_sid'] = captcha_response['sid']
         method_args['captcha_key'] = captcha_response['key']
     timeout = request._api._timeout
     try:
         response = self.requests_session.post(url, method_args, timeout=timeout)
     except (requests.exceptions.ReadTimeout, requests.exceptions.ConnectionError):
         Logger.warning(NAME + _("Операция прервана по тайм-ауту"))
         time.sleep(5)
         response = self.send_api_request(request, captcha_response=captcha_response)
     return response
示例#9
0
 def __call__(self, **method_params):
     request_method_params = self._method_common_params.copy()
     request_method_params.update(stringify_values(method_params))
     return self._api.send(APIRequest(self._method, request_method_params))
示例#10
0
文件: api.py 项目: dimka665/vk
    def __call__(self, **method_params):
        request_method_params = self._method_common_params.copy()
        request_method_params.update(stringify_values(method_params))

        return self._api.send(APIRequest(self._method, request_method_params))
示例#11
0
def test_stringify():
    assert stringify_values({1: ['str', 'str2']}) == {1: 'str,str2'}
    assert stringify_values({1: ['str', u'стр2']}) == {1: u'str,стр2'}
    assert stringify_values({1: [u'стр', u'стр2']}) == {1: u'стр,стр2'}