Исходный код vk_maria.upload.upload

from os import PathLike
from typing import Union, List, BinaryIO

from .utils import open_files
from ..api import Vk


[документация]class Upload: """ Класс реализующий загрузку файлов на сервер вк. """ def __init__(self, vk: Vk): self.vk = vk self.method = self.vk.method
[документация] def photo(self, photo: Union[str, bytes, PathLike]): """Загрузка фотографии, возвращает объект для вставки в сообщение""" data = open_files(photo, 'photo') upload = self.vk.photos_get_messages_upload_server() response = self.method(server=upload.upload_url, group_id=upload.group_id, files=data) p = self.vk.photos_save_messages_photo(**response)[0] return f'photo{p.owner_id}_{p.id}_{p.access_key}'
[документация] def set_chat_photo(self, photo: Union[str, bytes, PathLike], chat_id: int, crop_x: int = None, crop_y: int = None, crop_width: int = None): """Установка обложки чата""" data = open_files(photo, 'photo') upload_url = self.vk.photos_get_chat_upload_server( chat_id=chat_id, crop_x=crop_x, crop_y=crop_y, crop_width=crop_width ) response = self.method(server=upload_url, files=data) return self.vk.messages_set_chat_photo(file=response['response'])
[документация] def set_group_cover_photo(self, photo: Union[str, bytes, PathLike], crop_x: int = None, crop_y: int = None, crop_x2: int = None, crop_y2: int = None): """Загрузка и установка обложки сообщества""" data = open_files(photo, 'photo') upload_url = self.vk.photos_get_owner_cover_photo_upload_server( crop_x=crop_x, crop_y=crop_y, crop_x2=crop_x2, crop_y2=crop_y2 ) response = self.method(server=upload_url, files=data) return self.vk.photos_save_owner_cover_photo(response['hash'], response['photo'])
[документация] def document(self, document: Union[str, BinaryIO, PathLike, List[Union[str, BinaryIO, PathLike]]], peer_id: int, title: str = None, tags: List[str] = None, return_tags: int = None, type: str = 'doc'): """Загрузка документа, возвращает объект для вставки в сообщение""" if tags: tags = ','.join(tags) data = open_files(document, 'file') upload_url = self.vk.docs_get_messages_upload_server(peer_id=peer_id, type=type) response = self.method(server=upload_url, files=data) d = self.vk.docs_save(file=response['file'], title=title, tags=tags, return_tags=return_tags) return f'{d.type}{d.doc["owner_id"]}_{d.doc["id"]}'