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- загрузка видео