@@ -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
90136def openPhotos (photos_paths ):
91137 photos = {}
0 commit comments