Справочник по API¶
Bot¶
-
class
vk_botting.bot.
Bot
(command_prefix, description=None, **options)¶ Представляет собой бота ВК. Это сабкласс
Client
, поэтому все, что можно делать сClient
, можно делать и с нимТак же это сабкласс
GroupMixin
, потому у него есть функционал для работы с командами-
command_prefix
¶ Префикс команды - это то, с чего должно начинаться сообщение, чтобы бот распознал его как команду. Этот префикс должен быть либо строкой, либо вызываемой функцией, которая принимает как параметры бота и экземпляр класса
Message
и возвращает префикс. Это позволяет сделать префикс динамическим. При этом функция может быть как синхронной, так и асинхроннойПрефикс может быть и итератором строк, в таком случае первый подошедший префикс будет использован для вызова команды. Для избежания проблем нельзя использовать пустой итератор. Префикс можно получить с помощью
Context.prefix
Примечание
Если передавать боту несколько префиксов, то учтите, что более ранний префикс не должен быть началом более позднего. Как, к примеру, префиксы не должны быть в порядке
('!', '!?')
, ибо в таком случае префикс'!?'
никогда не будет использован. Это особенно важно при использовании пустой строки в качестве префикса
-
self_bot
¶ Если
True
, бот будет слушать только команды, вызванные им же самим. ЕслиFalse
(по умолчанию), то бот будет себя игнорировать- тип
-
v
¶ Версия VK API. По умолчанию „5.131“ (последняя поддерживаемая библиотекой)
Предупреждение
Библиотека не предназначена для работы с версиями API ниже „5.131“ и выше „5.131“
- тип
-
add_check
(func, *, call_once=False)¶ Добавляет боту глобальную проверку. Это способ добавить
check()
илиcheck_once()
без декоратора.- Параметры
func – Функция, используемая как глобальная проверка
call_once (
bool
) – Должна ли функция быть вызвана лишь раз при вызовеCommand.invoke()
-
add_cog
(cog)¶ Добавляет боту «Cog». Cog - класс, который имеет полностью обособленные события и команды
- Параметры
cog (
Cog
) – Cog, который надо зарегистрировать боту- Исключение
CommandError – Возникла ошибка во время инициализации.
-
add_command
(command)¶ Добавляет команду
Command
или ее наследника в внутренний лист команд.Обычно не вызывается, вместо него используется декораторы
command()
.- Параметры
command (
Command
) – Команда, которую надо добавить.- Исключение
ClientException – Если команда уже зарегистрирована.
-
add_listener
(func, name=None)¶ Алтернатива
listen()
без декоратора.- Параметры
Пример
async def on_ready(): pass async def my_message(message): pass bot.add_listener(on_ready) bot.add_listener(my_message, 'on_message_new')
-
await
add_user_token
(token)¶ Эта функция является корутиной. Альтернатива для
Context.attach_user_token()
-
after_invoke
(coro)¶ Декоратор, вызывающий корутину сразу после вызова команды. Удобно использовать для чистки подключений и еще чего-нибудь. Сама корутина должна принимать один параметр -
Context
Примечание
Аналог
before_invoke()
, но не вызывается пока не пройдут все проверки и парсинг аргументов. Правда, вызвывается вне зависимости от наличия или отсутствия ошибок в команде
-
await
attach_user_token
(token)¶ Эта функция является корутиной.
Присоединяет к боту токен пользователя, что позволяет выполнять запросы к API которые доступны только пользователям.
Также помещает в self.user экземпляр класса
User
соответствующий предоставленному токену- Параметры
token (
str
) – Токен пользователя, который необходимо прикрепить
-
before_invoke
(coro)¶ Декоратор, который вызывает корутину прямо перед вызовом команды. Удобно чтобы подготовить подключения, например. Корутина должна принимать один параметр -
Context
.Примечание
before_invoke()
иafter_invoke()
вызываются только если все проверки прошли и команда не выдала ошибок.
-
build_msg
(msg)¶ Создает экземпляр класса
Message
изdict
, содержащего объект сообщения.В нормальных условиях не должна вызываться вообще
-
check
(func)¶ Декоратор, добавляющий глобальную проверку для бота. Глобальная проверка применяется ко всем командам бота.
Примечание
Эта функция может быть как обычной функцией, так и корутиной.
Similar to a command
check()
, this takes a single parameter of typeContext
and can only raise exceptions inherited fromCommandError
. .. rubric:: Пример@bot.check def check_commands(ctx): return ctx.command.qualified_name in allowed_commands
-
check_once
(func)¶ Декоратор, добавляющий одноразовую глобальную проверку боту. Вызывается один раз для каждой команды, после чего не используется
Примечание
Эта функция может быть как обычной функцией, так и корутиной.
Как и функция
check()
команды, принимает один параметрContext
и может вызывать ошибки, наследованные изCommandError
Пример
@bot.check_once def whitelist(ctx): return ctx.message.author.id in my_whitelist
-
command
(*args, **kwargs)¶ Декоратор, который добавляет команду в внутренний лист через
add_command()
-
extensions
¶ Связь названия расширений с самими расширениями, только для чтения
- тип
Mapping[
str
,types.ModuleType
]
-
get_cog
(name)¶ Получает запрошенный cog. Если он не найден, возвращает
None
.- Параметры
name (
str
) – Название cog’а, который запрашивается
-
get_command
(name)¶ Получает команду (
Command
или его сабкласс) из внутреннего списка командМожет использоваться и чтобы получать альтернативные названия
К примеру, в случае с
'foo bar'
вернет название подкомандыbar
из группы командfoo
. Если команда не найдена, вернетNone
- Параметры
name (
str
) – Название команды, которую надо получить- Результат
Запрошенная команда. Если не найдена, возвращает
None
.- Тип результата
Command
или сабкласс
-
await
get_context
(message, *, cls=<class 'vk_botting.context.Context'>)¶ Эта функция является корутиной.
Возвращает контекст для вызова команды из сообщения. Это более низкоуровневая часть
process_commands()
, которая позволяет более детально управлять обработкой. Возвращенный контест не обязательно будет верным, его надо проверить с помощьюContext.valid
- Параметры
- Результат
Контекст для вызова. Тип зависит от параметра
cls
- Тип результата
-
await
get_group
(gid)¶ Эта функция является корутиной.
Альтернатива для метода „groups.get“ VK API, возвращает только одну группу
-
await
get_groups
(*gids)¶ Эта функция является корутиной.
Альтернатива для метода „groups.get“ VK API
-
await
get_own_page
()¶ Эта функция является корутиной.
Получает страницу для текущего токена, вне зависимости от того, пользователь это или группа
-
await
get_page
(pid, fields=None, name_case=None)¶ Эта функция является корутиной.
Получает страницу с данным id, вне зависимости от того, группа это или пользователь
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
- Тип результата
-
await
get_pages
(*ids, fields=None, name_case=None)¶ Эта функция является корутиной.
Получает страницы для запрошенных id, вне зависимости от того, группа это или пользователь
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
- Тип результата
-
await
get_prefix
(message)¶ Эта функция является корутиной.
Получает префикс бота для данного сообщения
-
await
get_user
(uid, fields=None, name_case=None)¶ Эта функция является корутиной.
Альтернатива методу „users.get“ VK API, возвращает только одного пользователя
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Экземпляр класса
User
для запрошенного пользователя- Тип результата
-
await
get_users
(*uids, fields=None, name_case=None)¶ Эта функция является корутиной.
Альтернатива методу „users.get“ VK API
-
await
invoke
(ctx)¶ Эта функция является корутиной.
Вызывает команду с данным контекстом и разбирается со всеми внутренними механизмами вызова событий.
- Параметры
ctx (
Context
) – Контекст для вызова команды.
-
listen
(name=None)¶ Декоратор, который привязывает функцию к событию. По сути позволяет слушать множество событий из разных мест, таких, как, к примеру
on_ready()
. Привязанная функция должна быть корутиной.Пример
@bot.listen() async def on_message_new(message): print('one') # in some other file... @bot.listen('on_message_new') async def my_message(message): print('two')
Выведет „one“ и „two“ в неопределенном порядке.
- Исключение
TypeError – Привязанная функция - не корутина.
-
load_extension
(name)¶ Загружает расширение. Расширения - модуль python который содержит команды, cog’и и события. Любое расширение должно иметь глобальную функцию
setup
, определяющую, что расширение должно делать, когда загружено. Эта функция должна принимать 1 аргумент - bot.- Параметры
name (
str
) – Название расширения, которое надо загрузить. Должно иметь в себе точку, повторяя синтаксис импорта в обычном Python (к примеру foo.test для файла foo/test.py).- Исключение
ExtensionNotFound – Расширение не может быть импортировано.
ExtensionAlreadyLoaded – Расширение уже загружено.
NoEntryPointError – У расширения нет функции
setup
.ExtensionFailed – В расширении или его
setup
возникла ошибка.
-
await
on_command_error
(context, exception)¶ Эта функция является корутиной. Обработчик ошибок, предоставляемый ботом. По умолчанию выводит информацию о ошибке в
sys.stderr
, но может быть переобъявлен, чтобы делать что-то другое. Вызывается только если в боте нет функций, привязанных к ошибкам.
-
await
on_error
(event_method, *args, **kwargs)¶ Эта функция является корутиной.
Обработчик ошибок, предоставляемый ботом.
По умолчанию выводит информацию о ошибке в
sys.stderr
, но может быть переобъявлен, чтобы делать что-то другое.Посмотрите
vk_botting.on_error()
для более детального объяснения
-
await
process_commands
(message)¶ Эта функция является корутиной.
Функция, обрабатывающая команды, зарегистрированные в боте и прочих источниках. Без этой корутины никакие команды вызваны не будут.
По умолчанию, эта корутина вызывается внутри
on_message_new()
. Если вы переобъявляетеon_message_new()
, не забудьте вызывать эту корутину.Состоит из более низкоуровневых функций и представляет собой последовательный вызов
get_context()
иinvoke()
.Так же проверяет, является ли автор сообщения ботом и не вызывает
get_context()
иinvoke()
в таком случае.- Параметры
message (
Message
) – Сообщение, команды из которого надо обрабатывать
-
reload_extension
(name)¶ Автоматически перезагружает расширение. Заменяет расширение перезагруженной версией самого себя. Представляет собой последовательный вызов
unload_extension()
иload_extension()
, но рассчитанный на возможные ошибки, в случае которых бот возвращается к предыдущей, рабочей версии расширения.- Параметры
name (
str
) – Имя расширения, которое надо перезагрузить. Должно иметь в себе точку, повторяя синтаксис импорта в обычном Python (к примеру foo.test для файла foo/test.py).- Исключение
ExtensionNotLoaded – Расширение не было загружено.
ExtensionNotFound – Расширение не может быть импортировано.
NoEntryPointError – У расширения нет функции
setup
.ExtensionFailed – В функции
setup
расширения произошла ошибка.
-
remove_check
(func, *, call_once=False)¶ Удаляет глобальную проверку из бота. Эта функция не вызывает ошибку даже если такой глобальной проверки не было.
- Параметры
func – Функция, которую надо удалить из глобальных проверок.
call_once (
bool
) – Была ли функция была добавлена с параметромcall_once=True
-
remove_cog
(name)¶ Удаляет cog из бота. Все связаные с ним команды и события тоже будут удалены. Если cog не найден, ничего не делает.
- Параметры
name (
str
) – Название cog’а для удаления.
-
remove_command
(name)¶ Удаляет команду (
Command
или сабкласс) из внутреннего списка команд.Может быть использован и для удаления альтернативных названий.
-
remove_listener
(func, name=None)¶ Удаляет событие из списка событий.
- Параметры
func – Функция, которая была привязана к событию.
name (
str
) – Название события, которое надо удалить. По умолчанию - имя функции
-
run
(token, owner_id=None)¶ Блокирующий вызов, который позволяет не инициализировать цикл самостоятельно.
Предупреждение
Эта функция должна быть последней вызванной в коде, так как она блокирующая. Это значит что регистрация событий, команд и т.д. после нее не будут работать.
-
await
send_message
(peer_id=None, message=None, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None, forward=None, **kwargs)¶ Эта функция является корутиной.
Отправляет сообщение данному получателю с данным текстом
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
peer_id (
int
) – Id получателя сообщенияmessage (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.forward (
dict
) – Для дополнительной информации смотрите документацию.as_user (
bool
) – Должно ли сообщение быть отправлено от имени пользователя (с использованием присоединенного токена)
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
unload_extension
(name)¶ Выгружает расширение. Когда расширение выгружено, все команды, события и cog’и, связанные с ним, тоже удаляются. У расширения так же может быть функция
teardown
для чистки всего, что осталось, если это необходимо. Она, аналогичноsetup
, должна принимать один параметр - bot- Параметры
name (
str
) – Название расширения для выгрузки. Должно иметь в себе точку, повторяя синтаксис импорта в обычном Python (к примеру foo.test для файла foo/test.py).- Исключение
ExtensionNotLoaded – Расширение не было загружено.
-
await
upload_document
(peer_id, file, type=<DocType.DOCUMENT: 'doc'>, title=None)¶ Эта функция является корутиной.
Загружает документ в диалог с данным peer_id
Возвращает attachment, готовый к использованию в send_message
- Параметры
peer_id (
int
) – Peer_id назначения. Загруженный документ нельзя использовать вне данного диалога.file (
str
) – Путь к документу, который надо загрузить. Может быть относительным.type (
str
) – Тип загруженного документа. Может быть значением изDocType
title (
str
) – Название для загруженного документа. По умолчанию имя файла.
- Результат
Экземпляр
Attachment
, представляющий загруженный документ- Тип результата
-
await
upload_image_to_server
(server, filename=None, url=None, raw=None, format=None)¶ Эта функция является корутиной.
Загружает изображение на какой-то сервер ВК.
Возвращает dict, представляющий собой ответ сервера.
- Параметры
server (
str
) – Url сервера для загрузки. Может быть получен от API с помощью методов подобных photos.getUploadServer.filename (
str
) – Путь к изображению, которое надо загрузить. Может быть относительным.url (
str
) – Ссылка на изображение, которое надо загрузить. Это должна быть прямая ссылка на поддерживаемый формат изображений, иначе не сработает.raw (
bytes
) – Сырые байты изображения, которое надо загрузить. Если используется, надо передать параметр format.format (
str
) – Расширение загружаемого изображения. Должно быть использовано только вместе с сырыми байтами.
- Результат
dict
, представляющий собой ответ сервера.- Тип результата
-
await
upload_photo
(peer_id, filename=None, url=None, raw=None, format=None)¶ Эта функция является корутиной.
Загружает изображение в диалог с данным peer_id
Возвращает attachment, готовый к использованию в send_message
- Параметры
peer_id (
int
) – Peer_id назначения. Загруженное изображение нельзя использовать вне данного диалогаfilename (
str
) – Путь к изображению, которое надо загрузить. Может быть относительным.url (
str
) – Ссылка на изображение, которое надо загрузить. Это должна быть прямая ссылка на поддерживаемый формат изображений, иначе не сработает.raw (
bytes
) – Сырые байты изображения, которое надо загрузить. Если используется, надо передать параметр format.format (
str
) – Расширение загружаемого изображения. Должно быть использовано только вместе с сырыми байтами.
- Результат
Экземпляр
Attachment
, представляющий загруженное фото.- Тип результата
-
await
user_vk_request
(method, post=True, **kwargs)¶ Эта функция является корутиной.
Реализует абстрактный запрос к методам VK Api с помощью прикрепленного токена пользователя.
- Параметры
method (
str
) – Название метода в виде строки (к примеру „users.get“)post (
bool
) – Должен ли запрос быть POST. По умолчаниюTrue
. Не рекомендуется менять этот параметр.kwargs (
Any
) – Аргументы для отправки вместе с запросом. .. note:: access_token и v отправлять не надо, они автоматически добавляются из настроек текущего бота
- Результат
Ответ от сервера, представленный в виде
dict
- Тип результата
-
await
vk_request
(method, post=True, **kwargs)¶ Эта функция является корутиной.
Реализует абстрактный запрос к методам VK Api
- Параметры
method (
str
) – Название метода в виде строки (к примеру „users.get“)post (
bool
) – Должен ли запрос быть POST. По умолчаниюTrue
. Не рекомендуется менять этот параметр.kwargs (
Any
) – Аргументы для отправки вместе с запросом. .. note:: access_token и v отправлять не надо, они автоматически добавляются из настроек текущего бота
- Результат
Ответ от сервера, представленный в виде
dict
- Тип результата
-
wait_for
(event, *, check=None, timeout=None)¶ Эта функция является корутиной.
Ожидает определенное событие.
Может быть использован, к примеру, чтобы ждать ответа пользователя или пока тот изменит сообщение внутри команды.
Параметр
timeout
передается напрямую вasyncio.wait_for()
. По умолчанию, ждет неопределенно долго. Учтите, что в случае истечения времени вызываетсяasyncio.TimeoutError
.В случае если событие возвращает множество аргументов, возвращается
tuple
, содержащий их. Пожалуйста, обращайтесь к documentation для справки о событиях и их параметрахФункция возвращает первое событие, удовлетворяющее условиям
Примеры
Ожидание ответа пользователя:
@bot.command() async def greet(ctx): await ctx.send('Say hello!') def check(m): return m.text == 'hello' and m.from_id == ctx.from_id msg = await bot.wait_for('message_new', check=check) await ctx.send('Hello {.from_id}!'.format(msg))
- Параметры
event (
str
) – Название события, как и в event reference, но без префиксаon_
.check (Optional[Callable[…,
bool
]]) – Проверка для события, которое надо ожидать. Аргументы должны соответствовать параметрам события, который ожидается.timeout (Optional[
float
]) – Количество секунд для ожидания. По истечении вызываетasyncio.TimeoutError
.
- Исключение
asyncio.TimeoutError – Если время ожидание было предоставлено и достигнуто
- Результат
Возвращает один аргумент,
tuple
из нескольких аргументов, или не возвращает вообще, в зависимости от события. Пожалуйста, обращайтесь к documentation для справки о событиях и их параметрах- Тип результата
Any
-
for ... in
walk_commands
()¶ Итератор, который рекурсивно проходит по всем командам и подкомандам.
-
-
vk_botting.bot.
when_mentioned
(bot, msg)¶ Функция, которая реализует префикс команды, аналогичный обращению к боту. Должна передаваться как атрибут
Bot.command_prefix
-
vk_botting.bot.
when_mentioned_or
(*prefixes)¶ Функция, которая реализует префикс команды, аналогичный обращению к боту, а также все предоставленные префиксы. Должна передаваться как атрибут
Bot.command_prefix
Пример
bot = Bot(command_prefix=commands.when_mentioned_or('!'))
Примечание
Эта функция возвращает другую функцию, так что если она используется внутри собственной функции, то должна возвращать возвращенную функцию. К примеру:
async def get_prefix(bot, message): extras = await prefixes_for(message.peer_id) # returns a list return commands.when_mentioned_or(*extras)(bot, message)
-
vk_botting.bot.
when_mentioned_or_pm
()¶ Функция, которая реализует префикс команды, аналогичный обращению к боту, а также принимает любое сообщение за команду, в случае если боту пишут в ЛС. Должна передаваться как атрибут
Bot.command_prefix
Пример
bot = commands.Bot(command_prefix=commands.when_mentioned_or_pm())
-
vk_botting.bot.
when_mentioned_or_pm_or
(*prefixes)¶ Функция, которая реализует префикс команды, аналогичный обращению к боту, принимает любое сообщение за команду, в случае если боту пишут в ЛС, а также реализует все предоставленные префиксы. Должна передаваться как атрибут
Bot.command_prefix
Пример
bot = commands.Bot(command_prefix=commands.when_mentioned_or_pm_or('!'))
Примечание
Эта функция возвращает другую функцию, так что если она используется внутри собственной функции, то должна возвращать возвращенную функцию. К примеру:
async def get_prefix(bot, message): extras = await prefixes_for(message.peer_id) # returns a list return commands.when_mentioned_or(*extras)(bot, message)
Context¶
-
class
vk_botting.context.
Context
(**attrs)¶ Представляет собой контекст с которым должна вызываться команда.
Этот класс содержит кучу информации, которая поможет вам понять контекст вызова команды. Класс не должен создаваться вручную и вместо этого должен передаваться командам как первый параметр.
Класс является экземпляром абстрактного класса
Messageable
-
args
¶ Список преобразованных аргументов, переданных команде. Если используется в событии
on_command_error()
, то может быть неполным- тип
-
kwargs
¶ Словарь преобразованных аргументов, переданных команде. Аналогично
args
, если используется в событииon_command_error()
, то может быть неполным- тип
-
invoked_with
¶ Название команды, которая была вызвана. Можно использовать, чтобы понять, какое альтернативное название было использовано для вызова.
- тип
-
invoked_subcommand
¶ Подкоманда (
Command
или сабкласс), которая была вызвана.None
если подкоманды не были использованы
-
subcommand_passed
¶ Строка, которая пыталась вызвать подкоманду. Не обязательно указывает на существующую подкоманду, может просто являться бредом или, в случае, если ничего не было передано,
None
.- тип
Опциональный[
str
]
-
command_failed
¶ Логическая переменная, обозначающая что провалилась подготовка, проверка или вызов команды.
- тип
-
await
invoke
(*args, **kwargs)¶ Эта функция является корутиной.
Вызывает команду с данными аргументами.
Можно использовать в случае если необходимо просто вызвать функцию, которая привязана к команде.
Примечание
Не вызывает преобразователи, проверки, задержки или связанные события. Просто вызывает связанную функцию.
В эту функцию очень важно передавать верные аргументы.
Предупреждение
Первым параметром должна быть вызываемая команда.
- Параметры
command (
Command
) – Команда или ее сабкласс, которую необходимо вызвать*args – Аргументы для вызова
**kwargs – Аргументы с ключевыми словами для вызова
-
await
reinvoke
(*, call_hooks=False, restart=True)¶ Эта функция является корутиной.
Заново вызывает команду
Аналог
invoke()
, но пропускает проверки, задержки и обработчики ошибокПримечание
Если необходимо избежать
ArgumentError
или ее наследников, то стоит использовать обычныйinvoke()
, так как иначе будут использованы те же аргументы и возвращена та же ошибка
-
await
reply
(message=None, *, attachment=None, sticker_id=None, keyboard=None)¶ Эта функция является корутиной. Сокращение для
Message.reply()
-
await
get_user
(fields=None, name_case=None)¶ Эта функция является корутиной. Возвращает автора сообщения как экземпляр
User
class
Эта функция является корутиной. Альтернатива для
Context.get_user()
-
await
fetch_user
(*args, **kwargs)¶ Эта функция является корутиной. Альтернатива для
Context.get_user()
Эта функция является корутиной. Альтернатива для
Context.get_user()
-
cog
¶ Возвращает cog, связанный с командой или
None
, если такого не существует
-
valid
¶ Проверяет, верен ли контекст для вызова
Сокращение для
Message.from_id
-
from_id
¶ Сокращение для
Message.from_id
-
peer_id
¶ Сокращение для
Message.peer_id
-
text
¶ Сокращение для
Message.text
-
await
send
(message=None, *, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None)¶ Эта функция является корутиной.
Отправляет сообщение в ответ с данным текстом.
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
message (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
trigger_typing
()¶ Эта функция является корутиной.
Включает боту состояние „печатает“
Может быть использовано вместо
typing()
в некоторых случаяхСостояние „печатает“ выключается через 10 секунд или при отправке ответа
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Результат вызова к VK Api
- Тип результата
-
typing
()¶ Возвращает контекстный менеджер, который позволяет поддерживать состояние „печатает“ неопределенное количество времени
Может быть использовано для долгих операций бота в командах
Примечание
Может использоваться и как синхронный контекстный менеджер, и как асинхроный. То есть и
with
иasync with
будут работатьПример использования:
async with ctx.typing(): # do expensive stuff here await ctx.send('done!')
-
Справка по событиям¶
Эта страница описывает различные события, которые слушает Bot
Есть два способа зарегистрировать события: через Bot.listen()
или создать сабкласс Bot
и перезаписать события. К примеру:
import vk_botting
class MyBot(vk_botting.Bot):
async def on_message_new(self, message):
if message.from_id == self.group.id:
return
if message.text.startswith('$hello'):
await message.send('Hello World!')
Если обработчик события вызывает ошибку, то вызывается функция on_error()
для ее обработки. По умолчанию она выводит ошибку и игнорирует ее
Предупреждение
Все события должны быть корутинами(корутиной). Если они таковыми не являются, то можно получить неожиданные ошибки. Чтобы функция стала корутиной, ее надо объявлять через async def
-
on_ready
()¶ Вызывается, когда бот закончил подготовку информации, полученной от VK Api. Обычно - после успешного входа и когда подготовлены атрибуты
Bot.group
и прочие
-
on_error
(event, \*args, \*\*kwargs)¶ Обычно, когда событие вызывает ошибку, в stderr выводится traceback и ошибка игнорируется. Если вы хотите изменить это поведение и обрабатывать ошибки самостоятельно, можно переобъявить эту функцию.
Информация о ошибке и сама ошибка получаются стандартным вызовом
sys.exc_info()
Если необходимо, чтобы ошибка выходила за пределы бота, то можно просто вызывать ошибку внутри
on_error
(The raise statement). Если внутриon_error
вызвана ошибка, то бот никак не будет ее обрабатывать.- Параметры
event (
str
) – Названия события, вызвавшего ошибкуargs – Позиционные аргументы для события, вызвавшего ошибку
kwargs – Аргументы с ключевыми словами для события, вызвавшего ошибку
-
on_command_error
(ctx, error)¶ Обработчик ошибок, вызываемый, когда ошибка вызвана внутри команды посредством ошибки ввода пользователя, проверки или ошибки в вашем коде
По умолчанию -
Bot.on_command_error()
- Параметры
ctx (
Context
) – Контекст вызова командыerror (
CommandError
derived) – Вызванная ошибка
-
on_command
(ctx)¶ Событие, которое вызывается когда команда найдена и будет вызвана
Это событие вызывается вне зависимости от возможных ошибок в команде
- Параметры
ctx (
Context
) – Контекст вызова команды
-
on_command_completion
(ctx)¶ Событие, которое вызывается, когда команда успешно вызвана
Вызывается только после успешного вызова команды
- Параметры
ctx (
Context
) – Контекст вызова команды
-
on_message_new
(message)¶ Вызывается, когда бот получает сообщение
- Параметры
message (
message.Message
) – Полученное сообщение
-
on_message_event
(event)¶ Вызывается, когда пользователь нажимает на callback-кнопку
- Параметры
event – Полученное событие
-
on_message_reply
(message)¶ Вызывается, когда бот отвечает на сообщение
- Параметры
message (
message.Message
) – Отправленное сообщение
-
on_message_edit
(message)¶ Вызывается, когда сообщение изменено
- Параметры
message (
message.Message
) – Измененное сообщение
-
on_message_typing_state
(state)¶ Вызывается, когда изменяется состояние „печатает“ (к примеру кто-то начал печатать)
- Параметры
state (
states.State
) – Новое состояние
-
on_conversation_start
(message)¶ Вызывается, когда пользователь использует кнопку „Начать“ в диалоге с ботом
- Параметры
message (
message.Message
) – Сообщение, отправленное когда пользователь начал диалог
-
on_chat_kick_user
(message)¶ Вызывается при удалении пользователя из чата
- Параметры
message (
message.Message
) – Сообщение, отправленное, когда пользователь был удален
-
on_chat_invite_user
(message)¶ Вызывается при добавлении пользователя к чату
- Параметры
message (
message.Message
) – Сообщение, отправленное при приглашении пользователя
-
on_chat_invite_user_by_link
(message)¶ Вызывается при добавлении пользователя к чату посредством ссылки-приглашения
- Параметры
message (
message.Message
) – Сообщение, отправленное при приглашении пользователя
-
on_chat_photo_update
(message)¶ Вызывается при обновлении фото чата
- Параметры
message (
message.Message
) – Сообщение, отправленное при смене фото
-
on_chat_photo_remove
(message)¶ Вызывается при удалении фото чата
- Параметры
message (
message.Message
) – Сообщение, отправленное при удалении фото
-
on_chat_create
(message)¶ Вызывается при создании чата
- Параметры
message (
message.Message
) – Сообщение, отправленное при создании чата
-
on_chat_title_update
(message)¶ Вызывается при обновлении названия чата
- Параметры
message (
message.Message
) – Сообщение, отправленное при смене названия чата
-
on_chat_pin_message
(message)¶ Вызывается при закреплении сообщения в чате
- Параметры
message (
message.Message
) – Сообщение, отправленное при закреплении сообщения в чате
-
on_chat_unpin_message
(message)¶ Вызывается при откреплении сообщения в чате
- Параметры
message (
message.Message
) – Сообщение, отправленное при откреплении сообщения в чате
-
on_message_allow
(user)¶ Вызывается, когда пользователь разрешает получение сообщений от бота
- Параметры
user (
user.User
) – Пользователь, разрешивший получение сообщений
-
on_message_deny
(user)¶ Вызывается, когда пользователь запрещает получение сообщения от бота
- Параметры
user (
user.User
) – Пользователь, запретивший получение сообщений
-
on_photo_new
(photo)¶ Вызывается, когда в группу бота загружено фото
- Параметры
photo (
attachments.Photo
) – Загруженное фото
-
on_audio_new
(audio)¶ Вызывается, когда в группу бота загружено аудио
- Параметры
audio (
attachments.Audio
) – Загруженное аудио
-
on_video_new
(video)¶ Вызывается, когда в группу бота загружено видео
- Параметры
video (
attachments.Video
) – Загруженное видео
-
on_photo_comment_new
(comment)¶ Вызывается, когда к фото добавляется новый комментарий
- Параметры
comment (
group.PhotoComment
) – Добавленный комментарий
-
on_photo_comment_edit
(comment)¶ Вызывается, когда под фото изменяется комментарий
- Параметры
comment (
group.PhotoComment
) – Измененный комментарий
-
on_photo_comment_restore
(comment)¶ Вызывается, когда под фото восстанавливается комментарий
- Параметры
comment (
group.PhotoComment
) – Восстановленный комментарий
-
on_photo_comment_delete
(comment)¶ Вызывается, когда под фото удаляется комментарий
- Параметры
comment (
group.DeletedPhotoComment
) – Удаленный комментарий
-
on_video_comment_new
(comment)¶ Вызывается, когда к видео добавляется новый комментарий
- Параметры
comment (
group.VideoComment
) – Добавленный комментарий
-
on_video_comment_edit
(comment)¶ Вызывается, когда под видео изменяется комментарий
- Параметры
comment (
group.VideoComment
) – Измененный комментарий
-
on_video_comment_restore
(comment)¶ Вызывается, когда под видео восстанавливается комментарий
- Параметры
comment (
group.VideoComment
) – Восстановленный комментарий
-
on_video_comment_delete
(comment)¶ Вызывается, когда под видео удаляется комментарий
- Параметры
comment (
group.DeletedVideoComment
) – Удаленный комментарий
-
on_market_comment_new
(comment)¶ Вызывается, когда к товару добавляется новый комментарий
- Параметры
comment (
group.MarketComment
) – Добавленный комментарий
-
on_market_comment_edit
(comment)¶ Вызывается, когда под товаром изменяется комментарий
- Параметры
comment (
group.MarketComment
) – Измененный комментарий
-
on_market_comment_restore
(comment)¶ Вызывается, когда под товаром восстанавливается комментарий
- Параметры
comment (
group.MarketComment
) – Восстановленный комментарий
-
on_market_comment_delete
(comment)¶ Вызывается, когда под товаром удаляется комментарий
- Параметры
comment (
group.DeletedMarketComment
) – Удаленный комментарий
-
on_board_post_new
(comment)¶ Вызывается, когда к обсуждению добавляется новый комментарий
- Параметры
comment (
group.BoardComment
) – Комментарий, добавленный к обсуждению
-
on_board_post_edit
(comment)¶ Вызывается, когда в обсуждении изменяется комментарий
- Параметры
comment (
group.BoardComment
) – Измененный комментарий
-
on_board_post_restore
(comment)¶ Вызывается, когда в обсуждении восстанавливается комментарий
- Параметры
comment (
group.BoardComment
) – Восстановленный комментарий
-
on_board_post_delete
(comment)¶ Вызывается, когда в обсуждении удаляется комментарий
- Параметры
comment (
group.DeletedBoardComment
) – Удаленный комментарий
-
on_wall_post_new
(post)¶ Вызывается, когда на стену добавляется пост
- Параметры
post (
group.Post
) – Добавленный пост
-
on_wall_repost
(post)¶ Вызывается, когда пост со стены репостится
- Параметры
post (
group.Post
) – Репостнутый пост
-
on_wall_reply_new
(comment)¶ Вызывается, когда на стену добавляется новый комментарий
- Параметры
comment (
group.WallComment
) – Добавленный комментарий
-
on_wall_reply_edit
(comment)¶ Вызывается, когда комментарий на стене изменяется
- Параметры
comment (
group.WallComment
) – Измененный комментарий
-
on_wall_reply_restore
(comment)¶ Вызывается, когда комментарий на стене восстанавливается
- Параметры
comment (
group.WallComment
) – Восстановленный комментарий
-
on_wall_reply_delete
(comment)¶ Вызывается, когда комментарий на стене удаляется
- Параметры
comment (
group.DeletedWallComment
) – Удаленный комментарий
-
on_group_join
(user, join_type)¶ Вызывается, когда пользователь присоединяется к группе
- Параметры
user (
user.User
) – Пользователь, присоединившийся к группеjoin_type (
str
) – Тип присоединения. Может быть „join“ если пользователь просто присоединился, „unsure“ для событий, „accepted“ если пользователя приглашали, „approved“ если пользователя приняли или „request“ если пользователь запросил доступ в сообщество
-
on_group_leave
(user, self)¶ Вызывается, когда пользователь покидает группу
- Параметры
user (
user.User
) – Пользователь, покинувший группуself (
bool
) – Покинул ли пользователь сам (True) или был исключен (False)
-
on_user_block
(user)¶ Вызывается, когда пользователя блокируют в группе
- Параметры
user (
user.BlockedUser
) – Пользователь, которого заблокировали
-
on_user_unblock
(user)¶ Вызывается, когда пользователя разблокируют в группе
- Параметры
user (
user.UnblockedUser
) – Пользователь, которого разблокировали
-
on_poll_vote_new
(vote)¶ Вызывается, когда в опросе появляется новый голос
- Параметры
vote (
group.PollVote
) – Новый голос
-
on_group_officers_edit
(edit)¶ Вызывается, когда изменяются полномочия в группе
- Параметры
edit (
group.OfficersEdit
) – Изменение
Cog’и¶
Cog¶
-
class
vk_botting.cog.
Cog
¶ Базовый класс который должны наследовать все cog’и.
Cog - собрание команд, событий и переменных состояний, помогающий объединять команды в группы. Больше информации о них можно найти на странице Cogs.
При наследовании этого класса, можно также указывать параметры, доступные в
CogMeta
.-
for ... in
walk_commands
()¶ Итератор, который рекурсивно проходит по всем командам и подкомандам.
-
get_listeners
()¶ Возвращает
list
вида (имя, функция), содержащий все события объявленные в этом cog’е.
-
classmethod
listener
(name=None)¶ Декоратор, который регистрирует функцию как обработчик события.
Это то же самое, что
Bot.listen()
, только для cog’а.
-
cog_unload
()¶ Особый метод, который вызывается когда cog удаляется.
Эта функция не может быть корутиной. Это должна быть обычная функция.
Сабклассы должны заменить эту функцию для изменения поведения при удалении cog’а.
-
bot_check_once
(ctx)¶ Особый метод который регистрирует проверку аналогично
Bot.check_once()
.Эта функция может быть корутиной и должна принимать один параметр -
ctx
, который представляет собойContext
.
-
bot_check
(ctx)¶ Особый метод который регистрирует проверку аналогично
Bot.check_once()
.Эта функция может быть корутиной и должна принимать один параметр -
ctx
, который представляет собойContext
.
-
cog_check
(ctx)¶ Особый метод, который добавляет
commands.check()
к каждой команде и подкоманде в этом cog’е.Эта функция может быть корутиной и должна принимать один параметр -
ctx
, который представляет собойContext
.
-
cog_command_error
(ctx, error)¶ Особый метод, который вызывается когда внутри cog’а происходит ошибка.
Он похож на
on_command_error()
, за исключением того что применяется он только к командам внутри cog’а.Эта функция может быть корутиной.
- Параметры
ctx (
Context
) – Контекст вызова, при котором произошла ошибка.error (
CommandError
) – Вызванная ошибка.
-
await
cog_before_invoke
(ctx)¶ Особый метод, который выступает как локальный, действующий только на cog аналог
Command.before_invoke()
.Эта функция должна быть корутиной.
- Параметры
ctx (
Context
) – Контекст вызова команды
-
await
cog_after_invoke
(ctx)¶ Особый метод, который выступает как локальный, действующий только на cog аналог
Command.after_invoke()
.Эта функция должна быть корутиной.
- Параметры
ctx (
Context
) – Контекст вызова команды
-
for ... in
CogMeta¶
-
class
vk_botting.cog.
CogMeta
(*args, **kwargs)¶ Метакласс для объявления cog’а.
Важно заметить, что этот класс не предназначен для использования напрямую. Он представлен тут исключительно для полноты документации. В случае необходимости есть возможность создания собственных метаклассов для смеси этого с другими метаклассами, к примеру
abc.ABCMeta
.К примеру, для создания своего абстрактного класса, смешивающего cog с чем-то еще,можно сделать следующее.
import abc class CogABCMeta(CogMeta, abc.ABCMeta): pass class SomeMixin(metaclass=abc.ABCMeta): pass class SomeCogMixin(SomeMixin, Cog, metaclass=CogABCMeta): pass
Примечание
При передаче аттрибута метакласса, задокументированного ниже, важно заметить необходимость передачи его именно как аргумент с ключевым словом при создании класса, например:
class MyCog(Cog, name='My Cog'): pass
-
command_attrs
¶ Список свойств, которые передаются каждой команде внутри этого cog’а. Словарь передается в
__init__
классаCommand
(или его сабкласса). Если указать свойства при объявлении команды внутри класса, то они перезапишутсвойства, указанные в данном параметре. Например:class MyCog(Cog, command_attrs=dict(hidden=True)): @command() async def foo(self, ctx): pass # hidden -> True @command(hidden=False) async def bar(self, ctx): pass # hidden -> False
- тип
-
Абстрактные классы¶
abstract base class, известные как abc
- классы, которые определяют базовые модели, которые могут наследовать другие классы (abc). Нельзя создавать экземпляры этих классов. Они существуют в основном для использования с isinstance()
и issubclass()
Эта библиотека содержит раздел, посвященный абстрактным классам
-
class
vk_botting.abstract.
Messageable
¶ ABC, который определяет основные операции с моделями, способными получать сообщения
Этот ABC используется для:
-
async with
typing
()¶ Возвращает контекстный менеджер, который позволяет поддерживать состояние „печатает“ неопределенное количество времени
Может быть использовано для долгих операций бота в командах
Примечание
Может использоваться и как синхронный контекстный менеджер, и как асинхроный. То есть и
with
иasync with
будут работатьПример использования:
async with ctx.typing(): # do expensive stuff here await ctx.send('done!')
-
await
send
(message=None, *, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None)¶ Эта функция является корутиной.
Отправляет сообщение в ответ с данным текстом.
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
message (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
trigger_typing
()¶ Эта функция является корутиной.
Включает боту состояние „печатает“
Может быть использовано вместо
typing()
в некоторых случаяхСостояние „печатает“ выключается через 10 секунд или при отправке ответа
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Результат вызова к VK Api
- Тип результата
-
async with
Дополнительные классы¶
Attachment¶
-
class
vk_botting.attachments.
AttachmentType
¶ Определяет тип приложения
-
PHOTO
= 'photo'¶ Фото
-
VIDEO
= 'video'¶ Видео
-
AUDIO
= 'audio'¶ Аудио
-
DOCUMENT
= 'doc'¶ Документ
-
WALL
= 'wall'¶ Пост со стены
-
MARKET
= 'market'¶ Товар
-
POLL
= 'poll'¶ Опрос
-
-
class
vk_botting.attachments.
Attachment
(owner_id, _id, type)¶ Представляет собой приложение к сообщению
Для получения строкового представления можно использовать str(
Attachment
) или просто передавать это как аргумент вBot.send_message()
-
owner_id
¶ Id владельца приложения. Положительное целое для пользователей, отрицательное для групп
- тип
-
type
¶ Тип приложения. Может быть значением из
AttachmentType
- тип
-
Keyboard¶
-
class
vk_botting.keyboard.
KeyboardColor
¶ Определяет цвета клавиатуры
-
PRIMARY
= 'primary'¶ Основной цвет (синий)
-
SECONDARY
= 'secondary'¶ Вторичный цвет (серый)
-
NEGATIVE
= 'negative'¶ Отрицательный цвет (красный)
-
POSITIVE
= 'positive'¶ Положительный цвет (зеленый)
-
-
class
vk_botting.keyboard.
Keyboard
(one_time=False, inline=False)¶ Класс для удобного создания и изменения клавиатур ботов
Может использоваться в
Bot.send_message()
как есть-
classmethod
get_empty_keyboard
()¶ Метод класса для получения пустой клавиатуры. Удобно использовать для очищения клавиатуры
Добавляет кнопку на текущую строку
- Параметры
label (
str
) – Название кнопкиcolor (:class:Union[str, KeyboardColor]) – Цвет кнопки. Может быть значением из
KeyboardColor
payload (
dict
) – Опционально. Используется для некоторых кнопок
- Исключение
vk_botting.VKApiError – Когда на строке уже слишком много кнопок
Добавляет callback-кнопку (https://vk.com/dev/bots_docs_5) на текущую строку
- Параметры
label (
str
) – Название кнопкиcolor (:class:Union[str, KeyboardColor]) – Цвет кнопки. Может быть значением из
KeyboardColor
payload (
dict
) – Опционально. Используется для некоторых кнопок
- Исключение
vk_botting.VKApiError – Когда на строке уже слишком много кнопок
Добавляет кнопку местоположения на текущую строку
- Параметры
payload (
dict
) – Информация для кнопки местоположения- Исключение
vk_botting.VKApiError – Когда на строке уже слишком много кнопок
Добавляет кнопку на текущую строку
Добавляет кнопку на текущую строку
-
add_line
()¶ Добавляет новую строку на клавиатуру
- Исключение
vk_botting.VKApiError – Когда на клавиатуре уже слишком много кнопок
-
classmethod
Кулдаун¶
-
vk_botting.commands.
cooldown
(rate, per, type=<BucketType.default: 0>)¶ Декоратор который добавляет кулдаун к экземпляру класса
Command
или его сабкласса.Кулдаун позволяет использование команды только определенное количество раз за определенный отрезок времени. Кулдаун может применяться к каждому пользователю, диалогу, участнику диалога или же глобально.
Третий аргумент - тип, который должен быть значением
BucketType
, то есть может быть одним из:BucketType.default
чтобы кулдаун считался на глобальной основе.BucketType.user
- на основе пользователя.BucketType.conversation
- на основе диалога.BucketType.member
- на основе участника диалога.
Если кто-то пытается использовать команду при достигнутом кулдауне, то вызывается ошибка
CommandOnCooldown
, которую можно поймать вon_command_error()
или локальном обработчике ошибок.У команды может быть только один кулдаун
-
class
vk_botting.cooldowns.
BucketType
¶ Представляет собой тип бакета для кулдауна.
-
default
= 0¶ По умолчанию. Работает на глобальной основе. По сути, считает использование команды любым пользователем где угодно в один бакет.
-
user
= 1¶ Работает на основе пользователя. Считает использование команд конкретными пользователями вне зависимости от того, где эти пользователи использовали команду.
-
conversation
= 2¶ Работает на основе беседы. Считает использование команд в конкретных беседах, вне зависимости от того, кто использовал команду и является ли эта беседа личным или групповым чатом.
-
member
= 3¶ Работает на основе участника диалога. Участник тут - это пользователь в диалоге. Тот же пользователь сможет использовать команду в другом диалоге, и это будет считаться в другой бакет.
-
Модели VK¶
Модели - классы, которые получаются от VK и не должны быть созданы пользователем
Опасно
Классы ниже только для чтения
К примеру, это значит, что не стоит создавать или менять экземпляры класса User
User¶
-
class
vk_botting.user.
User
(bot, data)¶ Представляет собой пользователя ВК
Класс имеет в себе много неиспользуемых атрибутов, которые основаны вокруг полей пользователя в VK API, так что можно посмотреть их в документации VK API
Все атрибуты могут быть None при недостатке информации
-
async with
typing
()¶ Возвращает контекстный менеджер, который позволяет поддерживать состояние „печатает“ неопределенное количество времени
Может быть использовано для долгих операций бота в командах
Примечание
Может использоваться и как синхронный контекстный менеджер, и как асинхроный. То есть и
with
иasync with
будут работатьПример использования:
async with ctx.typing(): # do expensive stuff here await ctx.send('done!')
-
await
send
(message=None, *, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None)¶ Эта функция является корутиной.
Отправляет сообщение в ответ с данным текстом.
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
message (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
trigger_typing
()¶ Эта функция является корутиной.
Включает боту состояние „печатает“
Может быть использовано вместо
typing()
в некоторых случаяхСостояние „печатает“ выключается через 10 секунд или при отправке ответа
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Результат вызова к VK Api
- Тип результата
-
async with
Group¶
-
class
vk_botting.group.
Group
(data)¶ Представляет собой сообщество ВК
Message¶
-
class
vk_botting.message.
Message
(data)¶ Представляет собой любое сообщение, отправленное или полученное ботом
Должно создаваться только через
Bot.build_msg()
-
id
¶ Id сообщения в диалоге
Предупреждение
Не пытайтесь использовать этот параметр в групповых чатах, так как он всегда будет 0 и будет вызывать ошибки
- тип
-
date
¶ Дата/время отправки сообщения
-
update_time
¶ Дата/время изменения сообщения
-
attachments
¶ Список приложений к сообщению
- тип
List[
Attachment
]
-
action
¶ Информация о действии
- тип
Union[
MessageAction
,NoneType
]
-
async with
typing
()¶ Возвращает контекстный менеджер, который позволяет поддерживать состояние „печатает“ неопределенное количество времени
Может быть использовано для долгих операций бота в командах
Примечание
Может использоваться и как синхронный контекстный менеджер, и как асинхроный. То есть и
with
иasync with
будут работатьПример использования:
async with ctx.typing(): # do expensive stuff here await ctx.send('done!')
-
await
edit
(message=None, *, attachment=None, keep_forward_messages=1, keep_snippets=1)¶ Эта функция является корутиной.
Корутина для изменения сообщения
- Параметры
message (
str
) – Новый текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Новые приложения к сообщениюkeep_forward_messages (
bool
) –True
если стоит сохранить пересланные сообщения. По умолчаниюTrue
keep_snippets (
bool
) –True
если стоит сохранить сниппеты. По умолчаниюTrue
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
delete
(delete_for_all=1)¶ Эта функция является корутиной.
Корутина для удаления сообщения
- Параметры
delete_for_all (
bool
) –True
если стоит удалить сообщение для всех пользователей. По умолчаниюTrue
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
-
await
reply
(message=None, **kwargs)¶ Эта функция является корутиной.
Отправляет сообщение как ответ к изначальному
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
message (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщением
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
get_user
()¶ Эта функция является корутиной. Возвращает автора сообщения как экземпляр
User
class
Эта функция является корутиной. Альтернатива для
Message.get_user()
-
await
fetch_user
()¶ Эта функция является корутиной. Альтернатива для
Message.get_user()
Эта функция является корутиной. Альтернатива для
Message.get_user()
-
await
send
(message=None, *, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None)¶ Эта функция является корутиной.
Отправляет сообщение в ответ с данным текстом.
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
message (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
trigger_typing
()¶ Эта функция является корутиной.
Включает боту состояние „печатает“
Может быть использовано вместо
typing()
в некоторых случаяхСостояние „печатает“ выключается через 10 секунд или при отправке ответа
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Результат вызова к VK Api
- Тип результата
-
MessageEvent¶
-
class
vk_botting.message.
MessageEvent
(data)¶ Представляет собой событие сообщения (https://vk.com/dev/bots_docs_5)
-
event_id
¶ Уникальное id события (может быть использовано только один раз и только в течении следующей минуты)
- тип
-
await
blank_answer
()¶ Эта функция является корутиной.
Корутина, которая отправляет пустой ответ на событие (чтобы убрать анимацию загрузки на кнопке)
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Ответ сервера
- Тип результата
-
await
show_snackbar
(text)¶ Эта функция является корутиной.
Корутина для отправки ответа типа show_snackbar (показывает пользователю всплывающее уведомление)
-
await
open_link
(link)¶ Эта функция является корутиной.
Корутина для отправки ответа типа open_link (открывает у пользователя ссылку)
-
Ошибки¶
-
class
vk_botting.exceptions.
VKException
¶ Базовый класс ошибки для vk_botting
В идеале, он может быть использован для обработки всех ошибок, вызываемых библиотекой
-
class
vk_botting.exceptions.
VKApiError
¶ Ошибка для большинства ошибок, возвращаемых VK Api в своих ответах
-
class
vk_botting.exceptions.
CommandError
(message=None, *args)¶ Базовая ошибка для всех ошибок, связанных с командами
Является наследником
VKException
Эта ошибка и ее наследники обрабатываются особым образом в специальном событии
on_command_error()
-
class
vk_botting.exceptions.
CommandNotFound
¶ Ошибка, вызываемая когда не найдена команда с подходящим именем
Не вызывается при неверных подкомандах
Является наследником
CommandError
-
class
vk_botting.exceptions.
DisabledCommand
(message=None, *args)¶ Ошибка, вызываемая, когда вызыванная команда выключена
Является наследником
CommandError
-
class
vk_botting.exceptions.
CommandOnCooldown
(cooldown, retry_after)¶ Ошибка, вызываемая когда вызыванная команда на кулдауне. Является наследником
CommandError
-
cooldown
¶ Класс с атрибутами
rate
,per
иtype
, аналогичный декораторуcooldown()
- тип
Кулдаун
-
-
class
vk_botting.exceptions.
CheckFailure
(message=None, *args)¶ Ошибка, вызываемая при провале проверок из
Command.checks
Является наследником
CommandError
-
class
vk_botting.exceptions.
ClientException
¶ Ошибка, вызываемая когда возникает проблема с
Client
Обычно возникает из-за кривого ввода пользователя
-
class
vk_botting.exceptions.
CommandInvokeError
(e)¶ Ошибка, вызываемая при возникновении ошибки при вызове команды. Наследник
CommandError
-
original
¶ Изначальная ошибка. Может быть получена с помощью атрибута
__cause__
-
-
class
vk_botting.exceptions.
ArgumentError
(message=None, *args)¶ Базовая ошибка для ошибок, связанных с аргументами команд
Является наследником
CommandError
-
class
vk_botting.exceptions.
BadArgument
(message=None, *args)¶ Ошибка, возникающая при ошибке парсинга или преобразования аргументов
Наследник
ArgumentError
-
class
vk_botting.exceptions.
BadUnionArgument
(param, converters, errors)¶ Ошибка, возникающая при ошибке преобразования к всем типам
typing.Union
. НаследникArgumentError
-
param
¶ Параметр, который не удалось преобразовать
-
converters
¶ Кортеж использованных преобразователей
- тип
Tuple[Type, ..]
-
errors
¶ Список ошибок, вызванных проблемой при преобразовании
- тип
List[
CommandError
]
-
-
class
vk_botting.exceptions.
MissingRequiredArgument
(param)¶ Ошибка, возникшая при нехватке пропаршенных аргументов для команды
Наследник
ArgumentError
-
param
¶ Отсутствующий аргумент
-
-
class
vk_botting.exceptions.
TooManyArguments
(message=None, *args)¶ Ошибка, возникающая когда команде было передано слишком много аргументов и атрибут
Command.ignore_extra
был наTrue
Наследник
ArgumentError
-
class
vk_botting.exceptions.
ConversionError
(converter, original)¶ Ошибка, возникающая когда преобразователь вызывает ошибку, отличную от
CommandError
. наследникCommandError
-
converter
¶ Преобразователь, который вызвал ошибку
- тип
conversions.Converter
-
original
¶ Изначальная ошибка. Может быть получена с помощью атрибута
__cause__
-
-
class
vk_botting.exceptions.
ExtensionError
(message=None, *args, name)¶ Базовая ошибка для ошибок, связанных с расширениями
Является наследником
VKException
-
class
vk_botting.exceptions.
ExtensionAlreadyLoaded
(name)¶ Ошибка, вызванная когда расширение уже было загружено
Наследник
ExtensionError
-
class
vk_botting.exceptions.
ExtensionNotLoaded
(name)¶ Ошибка, вызываемая, когда расширение не загружено
Наследник
ExtensionError
-
class
vk_botting.exceptions.
NoEntryPointError
(name)¶ Ошибка, вызываемая, когда в расширении нет функции
setup
Наследник
ExtensionError
-
class
vk_botting.exceptions.
ExtensionFailed
(name, original)¶ Ошибка, вызываемая когда расширение провалилось при выполнении или в функции
setup
Наследник
ExtensionError
-
class
vk_botting.exceptions.
ExtensionNotFound
(name, original)¶ Ошибка, вызываемая когда расширение не найдено
Наследник
ExtensionError
-
original
¶ Тут могла быть ваша реклама ver.2
- тип
NoneType
-
-
class
vk_botting.exceptions.
UnexpectedQuoteError
(quote)¶ Ошибка, вызываемая когда парсер находит кавычку внутри строки, не ограниченной кавычками
Наследник
ArgumentError
-
class
vk_botting.exceptions.
InvalidEndOfQuotedStringError
(char)¶ Ошибка, вызываемая когда пробел должен быть после закрывающей кавычки, но найден другой символ
Наследник
ArgumentError
-
class
vk_botting.exceptions.
ExpectedClosingQuoteError
(close_quote)¶ Ошибка, вызываемая когда ожидается кавычка, но ее нет
Наследник
ArgumentError
-
class
vk_botting.exceptions.
LoginError
¶ Ошибка, вызываемая когда боту не удается зайти с предоставленным токеном по какой-то причине
Дополнительные классы¶
-
class
vk_botting.commands.
GroupMixin
(*args, **kwargs)¶ Mixin, который определяет часто используемый функционал для классов, которые могут регистрировать команды
-
add_command
(command)¶ Добавляет команду
Command
или ее наследника в внутренний лист команд.Обычно не вызывается, вместо него используется декораторы
command()
.- Параметры
command (
Command
) – Команда, которую надо добавить.- Исключение
ClientException – Если команда уже зарегистрирована.
-
remove_command
(name)¶ Удаляет команду (
Command
или сабкласс) из внутреннего списка команд.Может быть использован и для удаления альтернативных названий.
-
for ... in
walk_commands
()¶ Итератор, который рекурсивно проходит по всем командам и подкомандам.
-
get_command
(name)¶ Получает команду (
Command
или его сабкласс) из внутреннего списка командМожет использоваться и чтобы получать альтернативные названия
К примеру, в случае с
'foo bar'
вернет название подкомандыbar
из группы командfoo
. Если команда не найдена, вернетNone
-
command
(*args, **kwargs)¶ Декоратор, который добавляет команду в внутренний лист через
add_command()
-
-
class
vk_botting.commands.
Command
(func, **kwargs)¶ Класс, определяющий текстовую команду бота
Не создаются вручную, вместо этого они создаются с помощью декоратора
-
cog
¶ Cog, к которому принадлежит команда.
None
если такого нет- тип
Optional[
Cog
]
-
checks
¶ Список проверок, которые подтверждают, что команда должна быть вызвана, принимающих на вход
Context
как единственный параметр. Если команда не проходит проверки, то вon_command_error()
подаетсяCheckFailure
- тип
List[Callable[…,
bool
]]
-
rest_is_raw
¶ Если
False
и есть аргумент с ключевым словом, то он обрабатывается как обычный аргумент, который обрабатываетMissingRequiredArgument
и значения по умолчанию как обычно вместо того, чтобы передавать аргумент как сырую строку- тип
-
ignore_extra
¶ Если
True
, игнорирует лишние аргументы, переданные команде. Иначе вызываетсяTooManyArguments
- тип
-
cooldown_after_parsing
¶ Если
True
, то обработка перезарядки происходит после парсинга аргументов, иначе до- тип
-
add_check
(func)¶ Добавляет проверку к команде. Это
check()
, только без декоратора- Параметры
func – Функция, которая будет использоваться для проверки
-
remove_check
(func)¶ Удаляет проверку с команды. Если такой проверки нет, не вызовет ошибку
- Параметры
func – Функция, которую необходимо удалить из проверок
-
update
(**kwargs)¶ Обновляет экземпляр
Command
с новыми атрибутамиРаботает аналогично декоратору
command()
в плане параметров
-
copy
()¶ Создает копию команды
-
clean_params
¶ Получает параметр OrderedDict без параметров контекста и self
Удобно для исследования подписей
-
full_parent_name
¶ Получает имя команды
Базовое имя команды, которое необходимо для ее выполнения
- тип
-
parents
¶ Получает родительские команды для данной
Если у команды нет родительских команд, то возвращает пустой
list
К примеру для команды
?a b c test
родительские команды -[c, b, a]
- тип
-
root_parent
¶ Получает коренные родительские команды данной
Если у команды нет родительских команд, возвращает
None
К примеру в команде
?a b c test
вернетa
-
is_on_cooldown
(ctx)¶ Проверяет на перезарядке ли команда
-
reset_cooldown
(ctx)¶ Обнуляет перезарядку команды
- Параметры
ctx (
Context
) – Контест команды, перезарядку которой надо обнулить
-
error
(coro)¶ Декоратор, который регистрирует корутину как локальный обработчик ошибок
Локальный обработчик ошибок это
on_command_error()
, работающий только на одну команду
-
before_invoke
(coro)¶ Декоратор, который вызывает корутину прямо перед вызовом команды
Удобно чтобы подготовить подключения, например
Корутина должна принимать один параметр -
Context
См.
Bot.before_invoke()
для дополнительной информации
-
after_invoke
(coro)¶ Декоратор, вызывающий корутину сразу после вызова команды
Удобно использовать для чистки подключений и еще чего-нибудь
Сама корутина должна принимать один параметр -
Context
См.
Bot.after_invoke()
для дополнительной информации
-
await
can_run
(ctx)¶ Эта функция является корутиной.
Проверяет, может ли команда быть вызвана засчет проверки всех проверок внутри атрибута
checks
. Еще проверяет, выключена ли команда- Параметры
ctx (
Context
) – Параметр ctx вызванной команды- Исключение
CommandError – Любая ошибка, возникшая во время выполнения функции будет обработана этой функцией
- Результат
Логическая переменная, обозначающая может ли команда быть вызвана
- Тип результата
-
-
class
vk_botting.client.
Client
(**kwargs)¶ Класс, представляющий собой Клиент для взаимодействий с VK Api
Предупреждение
Не должен использоваться вне класса
Bot
, так как не будет работать-
exception
botCommandException
¶
-
wait_for
(event, *, check=None, timeout=None)¶ Эта функция является корутиной.
Ожидает определенное событие.
Может быть использован, к примеру, чтобы ждать ответа пользователя или пока тот изменит сообщение внутри команды.
Параметр
timeout
передается напрямую вasyncio.wait_for()
. По умолчанию, ждет неопределенно долго. Учтите, что в случае истечения времени вызываетсяasyncio.TimeoutError
.В случае если событие возвращает множество аргументов, возвращается
tuple
, содержащий их. Пожалуйста, обращайтесь к documentation для справки о событиях и их параметрахФункция возвращает первое событие, удовлетворяющее условиям
Примеры
Ожидание ответа пользователя:
@bot.command() async def greet(ctx): await ctx.send('Say hello!') def check(m): return m.text == 'hello' and m.from_id == ctx.from_id msg = await bot.wait_for('message_new', check=check) await ctx.send('Hello {.from_id}!'.format(msg))
- Параметры
event (
str
) – Название события, как и в event reference, но без префиксаon_
.check (Optional[Callable[…,
bool
]]) – Проверка для события, которое надо ожидать. Аргументы должны соответствовать параметрам события, который ожидается.timeout (Optional[
float
]) – Количество секунд для ожидания. По истечении вызываетasyncio.TimeoutError
.
- Исключение
asyncio.TimeoutError – Если время ожидание было предоставлено и достигнуто
- Результат
Возвращает один аргумент,
tuple
из нескольких аргументов, или не возвращает вообще, в зависимости от события. Пожалуйста, обращайтесь к documentation для справки о событиях и их параметрах- Тип результата
Any
-
await
vk_request
(method, post=True, **kwargs)¶ Эта функция является корутиной.
Реализует абстрактный запрос к методам VK Api
- Параметры
method (
str
) – Название метода в виде строки (к примеру „users.get“)post (
bool
) – Должен ли запрос быть POST. По умолчаниюTrue
. Не рекомендуется менять этот параметр.kwargs (
Any
) – Аргументы для отправки вместе с запросом. .. note:: access_token и v отправлять не надо, они автоматически добавляются из настроек текущего бота
- Результат
Ответ от сервера, представленный в виде
dict
- Тип результата
-
await
user_vk_request
(method, post=True, **kwargs)¶ Эта функция является корутиной.
Реализует абстрактный запрос к методам VK Api с помощью прикрепленного токена пользователя.
- Параметры
method (
str
) – Название метода в виде строки (к примеру „users.get“)post (
bool
) – Должен ли запрос быть POST. По умолчаниюTrue
. Не рекомендуется менять этот параметр.kwargs (
Any
) – Аргументы для отправки вместе с запросом. .. note:: access_token и v отправлять не надо, они автоматически добавляются из настроек текущего бота
- Результат
Ответ от сервера, представленный в виде
dict
- Тип результата
-
await
get_users
(*uids, fields=None, name_case=None)¶ Эта функция является корутиной.
Альтернатива методу „users.get“ VK API
-
await
get_groups
(*gids)¶ Эта функция является корутиной.
Альтернатива для метода „groups.get“ VK API
-
await
get_pages
(*ids, fields=None, name_case=None)¶ Эта функция является корутиной.
Получает страницы для запрошенных id, вне зависимости от того, группа это или пользователь
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
- Тип результата
-
await
get_user
(uid, fields=None, name_case=None)¶ Эта функция является корутиной.
Альтернатива методу „users.get“ VK API, возвращает только одного пользователя
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Экземпляр класса
User
для запрошенного пользователя- Тип результата
-
await
get_group
(gid)¶ Эта функция является корутиной.
Альтернатива для метода „groups.get“ VK API, возвращает только одну группу
-
await
get_page
(pid, fields=None, name_case=None)¶ Эта функция является корутиной.
Получает страницу с данным id, вне зависимости от того, группа это или пользователь
- Параметры
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
- Тип результата
-
await
get_own_page
()¶ Эта функция является корутиной.
Получает страницу для текущего токена, вне зависимости от того, пользователь это или группа
-
await
upload_image_to_server
(server, filename=None, url=None, raw=None, format=None)¶ Эта функция является корутиной.
Загружает изображение на какой-то сервер ВК.
Возвращает dict, представляющий собой ответ сервера.
- Параметры
server (
str
) – Url сервера для загрузки. Может быть получен от API с помощью методов подобных photos.getUploadServer.filename (
str
) – Путь к изображению, которое надо загрузить. Может быть относительным.url (
str
) – Ссылка на изображение, которое надо загрузить. Это должна быть прямая ссылка на поддерживаемый формат изображений, иначе не сработает.raw (
bytes
) – Сырые байты изображения, которое надо загрузить. Если используется, надо передать параметр format.format (
str
) – Расширение загружаемого изображения. Должно быть использовано только вместе с сырыми байтами.
- Результат
dict
, представляющий собой ответ сервера.- Тип результата
-
await
upload_document
(peer_id, file, type=<DocType.DOCUMENT: 'doc'>, title=None)¶ Эта функция является корутиной.
Загружает документ в диалог с данным peer_id
Возвращает attachment, готовый к использованию в send_message
- Параметры
peer_id (
int
) – Peer_id назначения. Загруженный документ нельзя использовать вне данного диалога.file (
str
) – Путь к документу, который надо загрузить. Может быть относительным.type (
str
) – Тип загруженного документа. Может быть значением изDocType
title (
str
) – Название для загруженного документа. По умолчанию имя файла.
- Результат
Экземпляр
Attachment
, представляющий загруженный документ- Тип результата
-
await
upload_photo
(peer_id, filename=None, url=None, raw=None, format=None)¶ Эта функция является корутиной.
Загружает изображение в диалог с данным peer_id
Возвращает attachment, готовый к использованию в send_message
- Параметры
peer_id (
int
) – Peer_id назначения. Загруженное изображение нельзя использовать вне данного диалогаfilename (
str
) – Путь к изображению, которое надо загрузить. Может быть относительным.url (
str
) – Ссылка на изображение, которое надо загрузить. Это должна быть прямая ссылка на поддерживаемый формат изображений, иначе не сработает.raw (
bytes
) – Сырые байты изображения, которое надо загрузить. Если используется, надо передать параметр format.format (
str
) – Расширение загружаемого изображения. Должно быть использовано только вместе с сырыми байтами.
- Результат
Экземпляр
Attachment
, представляющий загруженное фото.- Тип результата
-
build_msg
(msg)¶ Создает экземпляр класса
Message
изdict
, содержащего объект сообщения.В нормальных условиях не должна вызываться вообще
-
await
on_error
(event_method, *args, **kwargs)¶ Эта функция является корутиной.
Обработчик ошибок, предоставляемый ботом.
По умолчанию выводит информацию о ошибке в
sys.stderr
, но может быть переобъявлен, чтобы делать что-то другое.Посмотрите
vk_botting.on_error()
для более детального объяснения
-
await
send_message
(peer_id=None, message=None, attachment=None, sticker_id=None, keyboard=None, reply_to=None, forward_messages=None, forward=None, **kwargs)¶ Эта функция является корутиной.
Отправляет сообщение данному получателю с данным текстом
Текст должен быть типом, который можно преобразовать в строку с помощью
str(message)
.Если сообщение -
None
(по умолчанию), то должен быть предоставлен параметрattachment
илиsticker_id
.Если есть параметр
attachment
, он должен бытьstr
, List[str
],Attachment
или List[Attachment
]Если есть параметр
keyboard
, он должен бытьstr
илиKeyboard
(предпочтительно)- Параметры
peer_id (
int
) – Id получателя сообщенияmessage (
str
) – Текст сообщенияattachment (Union[List[
str
],str
, List[Attachment
],Attachment
]) – Приложение к сообщениюsticker_id (Union[
str
,int
]) – Id стикера, который надо отправитьkeyboard (
Keyboard
) – Клавиатура, которую надо отправить вместе с сообщениемreply_to (Union[
str
,int
]) – Id сообщения, на которое надо ответитьforward_messages (Union[List[
int
], List[str
]]) – Id сообщений, которые надо переслать.forward (
dict
) – Для дополнительной информации смотрите документацию.as_user (
bool
) – Должно ли сообщение быть отправлено от имени пользователя (с использованием присоединенного токена)
- Исключение
vk_botting.VKApiError – Если VK API возвращает ошибку
- Результат
Сообщение, которое было отправлено
- Тип результата
-
await
add_user_token
(token)¶ Эта функция является корутиной. Альтернатива для
Context.attach_user_token()
-
await
attach_user_token
(token)¶ Эта функция является корутиной.
Присоединяет к боту токен пользователя, что позволяет выполнять запросы к API которые доступны только пользователям.
Также помещает в self.user экземпляр класса
User
соответствующий предоставленному токену- Параметры
token (
str
) – Токен пользователя, который необходимо прикрепить
-
run
(token, owner_id=None)¶ Блокирующий вызов, который позволяет не инициализировать цикл самостоятельно.
Предупреждение
Эта функция должна быть последней вызванной в коде, так как она блокирующая. Это значит что регистрация событий, команд и т.д. после нее не будут работать.
-
exception
-
vk_botting.commands.
command
(name=None, cls=None, **attrs)¶ Декоратор который преобразует функцию в класс
Command
.Все проверки, добавленные с помощью
check()
и подобных, привязываются к функции. Через сам этот декоратор нельзя передать проверки.- Параметры
name (
str
) – Название, с которым надо создать команду. По умолчанию - название функции без изменений.cls – Класс, с помощью которого надо создать команду. По умолчанию - класс
Command
. Обычно этот параметр менять не стоит.attrs – Аргументы с ключевыми словами, которые передаются при создании класса, указанного в
cls
.
- Исключение
TypeError – Если функция не является корутиной или уже является командой.