Uploaders
Загрузка медиа разного типа в вк
Существует несколько типов аплоадеров:
- audio - загрузка аудио
- doc - загрузка документов разного типа
- photo - загрузка фото
- speech - загрузка аудиофайлов для распознавание речи
- video - загрузка видео
Пример
from vkbottle import PhotoMessageUploader
from vkbottle.bot import Bot
bot = Bot("token")
photo_uploader = PhotoMessageUploader(bot.api)
@bot.on.message(text="photo")
async def handler(message):
photo = await photo_uploader.upload(
file_source="photo.png",
peer_id=m.peer_id,
)
await message.answer(attachment=photo)
bot.run_forever()
Интерфейс аплоадера
Аплоадер принимает объект API
при инициализации.
Аплоадеры имеет два метода:
.upload(...)
.raw_upload(...)
Оба метода имеют одинаковый интерфейс, но различаются в том, что первый метод возвращает готовую строку аттачмента, а второй - словарь с ответом сервера.
Внимание
Не все аплоадеры имеют метод upload
, для них невозможно вернуть строку аттачмента
Все аплоадеры различаются методом получения сервера. Получить сервер аплоадера можно с помощью метода .get_server(...)
Так же у аплоадеров есть методы базового класса, одинаковые для всех:
.upload_files(url, files)
- загрузка файлов методом POST.get_bytes_io(data)
- приводит сырые байты в подходящий для вк вид.generate_attachment_string(attachment_type, owner_id, item_id, access_key)
- делает строку, которую вк принимает, как медиа для отправки.read(file_source)
- читает файл, если file_source строка, a если байты - возвращает их
Обычно нужен только метод upload
Виды аплоадеров
-
Для фото
PhotoMessageUploader
- загрузка в сообщениеPhotoToAlbumUploader
- загрузка в альбомPhotoWallUploader
- загрузка на стенуPhotoFaviconUploader
- загрузка аватаркиPhotoChatFaviconUploader
- загрузка аватарки беседыPhotoMarketUploader
- загрузка картинки для товара
-
Для документов
DocWallUploader
- загрузка документов на стенуDocMessagesUploader
- загрузка документов в сообщениеVoiceMessageUploader
- загрузка голосовых сообщенийGraffitiUploader
- загрузка граффити
-
AudioUploader
- загрузка аудио -
VideoUploader
- загрузка видео