Skip to content

Commit ce001c3

Browse files
committed
Merge pull request #8 from python273/dev
Dev
2 parents c5fc392 + e7f58e0 commit ce001c3

5 files changed

Lines changed: 84 additions & 31 deletions

File tree

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright 2011-2013 Kirill Python
1+
Copyright 2011-2014 Kirill Python
22

33
Licensed under the Apache License, Version 2.0 (the "License");
44
you may not use this file except in compliance with the License.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from distutils.core import setup
1313
setup(
1414
name='vk_api',
15-
version='4.7.1',
15+
version='4.7.5',
1616
author='Kirill Python',
1717
author_email='siberianpython@gmail.com',
1818
url='https://github.com/python273/vk_api',

vk_api/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"""
1010

1111
__author__ = 'Kirill Python'
12-
__version__ = '4.7.1'
12+
__version__ = '4.7.5'
1313
__email__ = 'siberianpython@gmail.com'
1414
__contact__ = 'https://vk.com/python273'
1515

vk_api/vk_api.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def security_check(self, url=None, response=None):
163163
if response.text.split('<!>')[4] == '4':
164164
return True
165165

166-
raise SecurityCheck('Enter number')
166+
raise SecurityCheck(phone_prefix, phone_postfix)
167167

168168
def check_sid(self):
169169
""" Прверка Cookies remixsid на валидность """
@@ -331,7 +331,14 @@ class BadPassword(AuthorizationError):
331331

332332

333333
class SecurityCheck(AuthorizationError):
334-
pass
334+
def __init__(self, phone_prefix, phone_postfix):
335+
self.phone_prefix = phone_prefix
336+
self.phone_postfix = phone_postfix
337+
338+
def __str__(self):
339+
return 'Security check. Enter number: {}...{}'.format(
340+
self.phone_prefix, self.phone_postfix
341+
)
335342

336343

337344
class ApiError(Exception):

vk_api/vk_upload.py

Lines changed: 72 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,29 @@ def __init__(self, vk):
1414
self.vk = vk
1515
# https://vk.com/dev/upload_files
1616

17-
def photo(self, photos, album_id=None, group_id=None):
17+
def photo(self, photos, album_id,
18+
latitude=None, longitude=None, caption=None, description=None,
19+
group_id=None):
1820
""" Загрузка изображений в альбом пользователя
1921
20-
photos = ['photo1.jpg', 'img.png']
21-
= 'screen.png'
22-
Максимум 5 фотографий
23-
24-
album_id
22+
:param photos: список путей к изображениям, либо путь к изображению
23+
:param album_id: идентификатор альбома
24+
:param latitude: географическая широта, заданная в градусах
25+
(от -90 до 90)
26+
:param longitude: географическая долгота, заданная в градусах
27+
(от -180 до 180)
28+
:param caption: текст описания изображения
29+
:param description: текст описания альбома
30+
:param group_id: идентификатор сообщества (если загрузка идет в группу)
2531
"""
2632

27-
if not (album_id and photos):
28-
return False
29-
30-
if type(photos) == str: # upload.photo('photo.jpg', ...)
33+
if type(photos) == str:
3134
photos = [photos]
3235

3336
values = {
34-
'album_id': album_id
37+
'album_id': album_id,
38+
'group_id': group_id
3539
}
36-
if group_id: # Если загружаем в группу
37-
values.update({'group_id': group_id})
3840

3941
# Получаем ссылку для загрузки
4042
url = self.vk.method('photos.getUploadServer', values)['upload_url']
@@ -49,43 +51,87 @@ def photo(self, photos, album_id=None, group_id=None):
4951
if not 'album_id' in response:
5052
response['album_id'] = response['aid']
5153

54+
response.update({
55+
'latitude': latitude,
56+
'longitude': longitude,
57+
'caption': caption,
58+
'description': description
59+
})
60+
5261
# Сохраняем фото в альбоме
5362
response = self.vk.method('photos.save', response)
5463

5564
return response
5665

57-
def photoMessages(self, photos, group_id=None):
66+
def photo_messages(self, photos):
5867
""" Загрузка изображений в сообщения
5968
60-
photos = ['photo1.jpg', 'img.png']
61-
= 'screen.png'
62-
Максимум 7(?) фотографий
69+
:param photos: список путей к изображениям, либо путь к изображению
6370
"""
6471

65-
if not photos:
66-
return False
67-
68-
if type(photos) == str: # upload.photo('photo.jpg', ...)
72+
if type(photos) == str:
6973
photos = [photos]
7074

7175
values = {}
72-
if group_id:
73-
values.update({'group_id': group_id})
7476

75-
# Получаем ссылку для загрузки
7677
url = self.vk.method('photos.getMessagesUploadServer', values)
7778
url = url['upload_url']
7879

79-
# Загружаем
8080
photos_files = openPhotos(photos)
8181
response = self.vk.http.post(url, files=photos_files)
8282
closePhotos(photos_files)
8383

84-
# Сохраняем фото в альбоме
8584
response = self.vk.method('photos.saveMessagesPhoto', response.json())
8685

8786
return response
8887

88+
def photo_wall(self, photos, group_id=None):
89+
""" Загрузка изображений на стену пользователя или в группу
90+
91+
:param photos: список путей к изображениям, либо путь к изображению
92+
:param group_id: идентификатор сообщества (если загрузка идет в группу)
93+
"""
94+
95+
if type(photos) == str:
96+
photos = [photos]
97+
98+
values = {'group_id': group_id}
99+
100+
response = self.vk.method('photos.getWallUploadServer', values)
101+
url = response['upload_url']
102+
103+
photos_files = openPhotos(photos)
104+
response = self.vk.http.post(url, files=photos_files)
105+
closePhotos(photos_files)
106+
107+
response = self.vk.method('photos.saveWallPhoto', response.json())
108+
109+
return response
110+
111+
def document(self, file_path, title=None, tags=None, group_id=None):
112+
""" Загрузка документа
113+
114+
:param file_path: путь к документу
115+
:param title: название документа
116+
:param tags: метки для поиска
117+
:param group_id: идентификатор сообщества (если загрузка идет в группу)
118+
"""
119+
120+
values = {'group_id': group_id}
121+
url = self.vk.method('docs.getUploadServer', values)['upload_url']
122+
123+
with open(file_path, 'rb') as file:
124+
response = self.vk.http.post(url, files={'file': file}).json()
125+
126+
response.update({
127+
'title': title,
128+
'tags': tags
129+
})
130+
131+
response = self.vk.method('docs.save', response)
132+
133+
return response
134+
89135

90136
def openPhotos(photos_paths):
91137
photos = {}

0 commit comments

Comments
 (0)