Exemplo n.º 1
0
    def __init__(self,
                 login=None,
                 password=None,
                 number=None,
                 sec_number=None,
                 token=None,
                 proxies=None,
                 auth_handler=None,
                 captcha_handler=None,
                 config=None,
                 config_filename='vk_config.json',
                 api_version='5.63',
                 app_id=2895443,
                 scope=33554431,
                 client_secret=None):
        """
        :param login: Логин ВКонтакте
        :param password: Пароль ВКонтакте
        :param number: Номер для проверки безопасности (указывать, если
                        в качестве логина используется не номер)
        :param sec_number: Часть номера, которая проверяется при проверке
                            безопасности (указывать, если точно известно, что
                            вводить и если автоматическое получение кода из
                            номера работает не корректно)

        :param token: access_token
        :param proxies: proxy server
                         {'http': 'http://127.0.0.1:8888/',
                         'https': 'https://127.0.0.1:8888/'}
        :param auth_handler: Функция для обработки двухфакторной аутентификации,
                              должна возвращать строку с кодом и
                              булевое значение, означающее, стоит ли запомнить
                              это устройство, для прохождения аутентификации.
        :param captcha_handler: Функция для обработки капчи
        :param config: класс для сохранения настроек
        :param config_filename: Расположение config файла

        :param api_version: Версия API
        :param app_id: Standalone-приложение
        :param scope: Запрашиваемые права. Можно передать строкой
        :param client_secret: Защищенный ключ приложения для серверной
                               авторизации (https://vk.com/dev/auth_server)
        """

        self.login = login
        self.password = password
        self.number = number
        self.sec_number = sec_number

        self.sid = None
        self.token = {'access_token': token}

        self.api_version = api_version
        self.app_id = app_id
        self.scope = scope
        self.client_secret = client_secret

        if config is None:
            self.settings = jconfig.Config(login, filename=config_filename)
        else:
            self.settings = config(login, filename=config_filename)

        self.http = requests.Session()
        self.http.proxies = proxies
        self.http.headers.update({
            'User-agent':
            'Mozilla/5.0 (Windows NT 6.1; rv:40.0) '
            'Gecko/20100101 Firefox/40.0'
        })

        self.last_request = 0.0

        self.error_handlers = {
            NEED_VALIDATION_CODE: self.need_validation_handler,
            CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler,
            TOO_MANY_RPS_CODE: self.too_many_rps_handler,
            TWOFACTOR_CODE: auth_handler or self.auth_handler
        }

        self.lock = threading.Lock()
Exemplo n.º 2
0
    def __init__(self,
                 login=None,
                 password=None,
                 number=None,
                 sec_number=None,
                 token=None,
                 proxies=None,
                 captcha_handler=None,
                 config_filename='vk_config.json',
                 api_version='5.35',
                 app_id=2895443,
                 scope=33554431,
                 client_secret=None):
        """
        :param login: Логин ВКонтакте
        :param password: Пароль ВКонтакте
        :param number: Номер для проверки безопасности (указывать, если
                        в качестве логина используется не номер)
        :param sec_number: Часть номера, которая проверяется при проверке
                            безопасности (указывать, если точно известно, что
                            вводить и если автоматическое получение кода из
                            номера работает не корректно)

        :param token: access_token
        :param proxies: proxy server
                        {'http': 'http://127.0.0.1:8888/',
                        'https': 'https://127.0.0.1:8888/'}
        :param captcha_handler: Функция для обработки капчи
        :param config_filename: Расположение config файла

        :param api_version: Версия API (default: '5.35')
        :param app_id: Standalone-приложение (default: 2895443)
        :param scope: Запрашиваемые права (default: 33554431)
        :param client_secret: Защищенный ключ приложения для серверной
                                авторизации (https://vk.com/dev/auth_server)
        """

        self.login = login
        self.password = password
        self.number = number
        self.sec_number = sec_number

        self.sid = None
        self.token = {'access_token': token}

        self.api_version = api_version
        self.app_id = app_id
        self.scope = scope
        self.client_secret = client_secret

        self.settings = jconfig.Config(login, filename=config_filename)

        self.http = requests.Session()
        self.http.proxies = proxies  # Ставим прокси
        self.http.headers = {  # Притворимся браузером
            'User-agent':
            'Mozilla/5.0 (Windows NT 6.1; rv:40.0) '
            'Gecko/20100101 Firefox/40.0'
        }

        self.last_request = 0.0

        self.error_handlers = {
            NEED_VALIDATION_CODE: self.need_validation_handler,
            CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler,
            TOO_MANY_RPS_CODE: self.too_many_rps_handler
        }
Exemplo n.º 3
0
    def __init__(self,
                 login=None,
                 password=None,
                 number=None,
                 token=None,
                 proxies=None,
                 captcha_handler=None,
                 config_filename=None,
                 api_version='5.21',
                 app_id=2895443,
                 scope=2097151):
        """
        :param login: Логин ВКонтакте
        :param password: Пароль ВКонтакте
        :param number: Номер для проверке безопасности (указывать, если
                                     в качестве логина используется не номер)

        :param token: access_token
        :param proxies: proxy server
                        {'http': 'http://127.0.0.1:8888/',
                        'https': 'https://127.0.0.1:8888/'}
        :param captcha_handler: Функция для обработки капчи
        :param config_filename: Расположение config файла

        :param api_version: Версия API (default: '5.21')
        :param app_id: Standalone-приложение (default: 2895443)
        :param scope: Запрашиваемые права (default: 2097151)
        """

        self.login = login
        self.password = password
        self.number = number

        self.sid = None
        self.token = {'access_token': token}

        self.api_version = api_version
        self.app_id = app_id
        self.scope = scope

        self.settings = jconfig.Config(login, filename=config_filename)

        self.http = requests.Session()
        self.http.proxies = proxies  # Ставим прокси
        self.http.headers = {  # Притворимся браузером
            'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) ' \
                                            'Gecko/20100101 Firefox/28.0'
        }
        self.http.verify = False

        self.last_request = 0.0

        self.error_handlers = {
            NEED_VALIDATION_CODE: self.need_validation_handler,
            CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler
        }

        if login and password:
            self.sid = self.settings['remixsid']
            self.token = self.settings['access_token']

            if not self.check_sid():
                self.vk_login()
            else:
                self.security_check('http://vk.com')

            if not self.check_token():
                self.api_login()