Skip to content

Commit c6b15c3

Browse files
committed
Add VkUpload.document_message
1 parent 6836675 commit c6b15c3

1 file changed

Lines changed: 45 additions & 39 deletions

File tree

vk_api/upload.py

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -269,56 +269,26 @@ def video(self, video_file=None, link=None, name=None, description=None,
269269
files=f or None
270270
).json()
271271

272-
def audio_message(self, audio, group_id=None):
273-
""" Загрузка аудио-сообщения
274-
275-
:param audio: путь к аудиофайлу или file-like объект
276-
:param group_id: идентификатор сообщества
277-
(если используется токен сообщества)
278-
"""
279-
280-
return self.document(
281-
audio,
282-
audio_message=True,
283-
group_id=group_id,
284-
to_wall=group_id is not None
285-
)
286-
287-
def graffiti(self, image, group_id=None):
288-
""" Загрузка граффити
289-
290-
:param image: путь к png изображению или file-like объект.
291-
:param group_id: идентификатор сообщества
292-
(если используется токен сообщества)
293-
"""
294-
295-
return self.document(
296-
image,
297-
graffiti=True,
298-
group_id=group_id,
299-
to_wall=group_id is not None
300-
)
301-
302272
def document(self, doc, title=None, tags=None, group_id=None,
303-
to_wall=False, audio_message=False, graffiti=False):
273+
to_wall=False, message_peer_id=None, doc_type=None):
304274
""" Загрузка документа
305275
306276
:param doc: путь к документу или file-like объект
307277
:param title: название документа
308278
:param tags: метки для поиска
309279
:param group_id: идентификатор сообщества (если загрузка идет в группу)
310-
:param to_wall: загрузить на стену
311280
"""
312281

313-
values = {'group_id': group_id}
314-
315-
if audio_message:
316-
values['type'] = 'audio_message'
317-
elif graffiti:
318-
values['type'] = 'graffiti'
282+
values = {
283+
'group_id': group_id,
284+
'peer_id': message_peer_id,
285+
'type': doc_type
286+
}
319287

320288
if to_wall:
321289
method = 'docs.getWallUploadServer'
290+
elif message_peer_id:
291+
method = 'docs.getMessagesUploadServer'
322292
else:
323293
method = 'docs.getUploadServer'
324294

@@ -345,7 +315,43 @@ def document_wall(self, doc, title=None, tags=None, group_id=None):
345315
:param group_id: идентификатор сообщества (если загрузка идет в группу)
346316
"""
347317

348-
return self.document(doc, title, tags, group_id, True)
318+
return self.document(doc, title, tags, group_id, to_wall=True)
319+
320+
def document_message(self, doc, title=None, tags=None, peer_id=None):
321+
""" Загрузка документа для отправки личным сообщением.
322+
323+
:param doc: путь к документу или file-like объект
324+
:param title: название документа
325+
:param tags: метки для поиска
326+
:param peer_id: peer_id беседы
327+
"""
328+
329+
return self.document(doc, title, tags, message_peer_id=peer_id)
330+
331+
def audio_message(self, audio, peer_id=None, group_id=None):
332+
""" Загрузка аудио-сообщения.
333+
334+
:param audio: путь к аудиофайлу или file-like объект
335+
:param peer_id: идентификатор диалога
336+
:param group_id: для токена группы, можно передавать ID группы,
337+
вместо peer_id
338+
"""
339+
340+
return self.document(
341+
audio,
342+
doc_type='audio_message',
343+
message_peer_id=peer_id,
344+
group_id=group_id,
345+
to_wall=group_id is not None
346+
)
347+
348+
def graffiti(self, image):
349+
""" Загрузка граффити
350+
351+
:param image: путь к png изображению или file-like объект.
352+
"""
353+
354+
return self.document(image, doc_type='graffiti')
349355

350356
def photo_cover(self, photo, group_id,
351357
crop_x=None, crop_y=None,

0 commit comments

Comments
 (0)