1+ '''
2+ @author: Kirill Python
3+ @contact: http://vk.com/python273
4+ @license Apache License, Version 2.0, see LICENSE file
5+
6+ Copyright (C) 2013
7+ '''
8+
19# -*- coding: utf-8 -*-
210import jconfig
311import re
412import requests
13+ import time
514
615
716class VkApi ():
817 def __init__ (self ,
918 login = None , password = None , number = None ,
1019 sid = None , token = None ,
11- app_id = 2895443 , scope = 2097151 , proxies = None ):
12- u""" Данные для авторизации:
13- login, password
14-
15- number - На случай проверки безопасности
16- Номер: +7 12345678 90
17- Передавать в number: 12345678
18-
19- Для авторизации без логина и пароля:
20- sid, token
21-
22- app_id - айди Standalone-приложения
23- scope - права приложения числом
24- proxies - использование прокси
25- {'http': 'http://127.0.0.1:8888/',
26- 'https' : 'https://127.0.0.1:8888/'}
27-
28- """
20+ proxies = None ,
21+ version = '5.0' , app_id = 2895443 , scope = 2097151 ):
22+ '''
23+ :param login: Логин ВКонтакте
24+ :param password: Пароль ВКонтакте
25+ :param number: Номер при проверке безопасности
26+ Номер: +7 12345678 90
27+ number = 12345678
28+ :param sid: cookie remixsid
29+ :param token: access_token
30+ :param proxies: proxy server
31+ {'http': 'http://127.0.0.1:8888/',
32+ 'https' : 'https://127.0.0.1:8888/'}
33+ :param version: Версия API (default: '5.0')
34+ :param app_id: Standalone-приложение (default: 2895443)
35+ :param scope: Запрашиваемые права (default: 2097151)
36+ '''
2937
3038 self .login = login
3139 self .password = password
3240 self .number = number
3341
3442 self .sid = sid
3543 self .token = {'access_token' : token }
36- self .settings = jconfig .config (login )
3744
45+ self .version = version
3846 self .app_id = app_id
3947 self .scope = scope
4048
49+ self .settings = jconfig .config (login )
50+
4151 self .http = requests .Session ()
4252 self .http .proxies = proxies # Ставим прокси
4353 self .http .headers = { # Притворимся браузером
@@ -57,7 +67,7 @@ def __init__(self,
5767 self .api_login ()
5868
5969 def vk_login (self , captcha_sid = None , captcha_key = None ):
60- u""" Авторизцаия ВКонтакте с получением cookies remixsid """
70+ ''' Авторизцаия ВКонтакте с получением cookies remixsid '''
6171
6272 url = 'https://login.vk.com/'
6373 values = {
@@ -115,7 +125,7 @@ def vk_login(self, captcha_sid=None, captcha_key=None):
115125 raise authorization_error ('Authorization error (enter number)' )
116126
117127 def check_sid (self ):
118- u""" Прверка Cookies remixsid на валидность """
128+ ''' Прверка Cookies remixsid на валидность '''
119129
120130 if self .sid :
121131 url = 'https://vk.com/feed2.php'
@@ -131,7 +141,7 @@ def check_sid(self):
131141 return response
132142
133143 def api_login (self ):
134- u""" Получение токена через Desktop приложение """
144+ ''' Получение токена через Desktop приложение '''
135145
136146 url = 'https://oauth.vk.com/authorize'
137147 values = {
@@ -163,7 +173,7 @@ def api_login(self):
163173 raise authorization_error ('Authorization error (api)' )
164174
165175 def check_token (self ):
166- u""" Прверка access_token на валидность """
176+ ''' Прверка access_token на валидность '''
167177
168178 if self .token .get ('access_token' ):
169179 try :
@@ -174,21 +184,24 @@ def check_token(self):
174184 return True
175185
176186 def method (self , method , values = None ):
177- u""" Использование методов API
187+ ''' Использование методов API
178188
179189 method - название метода
180190 'users.get'
181191
182192 values - параметры
183193 {'uids': 1}
184-
185- """
194+ '''
186195
187196 url = 'https://api.vk.com/method/%s' % method
188197
189198 if not values :
190199 values = {}
191- values .update ({'access_token' : self .token ['access_token' ]})
200+
201+ values .update ({'v' : self .version })
202+
203+ if self .token :
204+ values .update ({'access_token' : self .token ['access_token' ]})
192205
193206 response = self .http .post (url , values ).json ()
194207 if 'error' in response :
@@ -198,7 +211,7 @@ def method(self, method, values=None):
198211
199212
200213def regexp (reg , string ):
201- u""" Поиск по регулярке """
214+ ''' Поиск по регулярке '''
202215
203216 reg = re .compile (reg , re .IGNORECASE | re .DOTALL )
204217 reg = reg .findall (string )
0 commit comments