Инструменты#
Модуль tools
содержит вспомогательные инструменты для генерации таких объектов, как клавиатура.
Клавиатура (Keyboard)#
С pyvdk можно легко создать клавиатуру.
Сперва импортируем класс Keyboard
и нужные виды кнопок, создаем объект клавиатуры.
from pyvdk.tools import Keyboard, TextButton
kb = Keyboard(one_time=True)
Теперь создадим и добавим кнопки. Полный список кнопок можно найти здесь.
b1 = TextButton(
color=kb.BLUE,
label="text1",
payload="button1"
)
b2 = TextButton(
color=kb.B,
label="text2",
payload="button2"
)
kb.append(b2)
kb.appendleft(b1)
Данные о клавиатуре хранятся в виде collections.deque, так что нам доступны appendleft
и extendleft
.
Danger
Всвязи с принципом работы deque, если привысить лимит кнопок в строке, то лишние будут автоматически удалены без предупреждения. Подробнее здесь.
В клавиатуре и кнопоках присутствуют константы цветов. Информацию о них можно найти здесь.
Если указать параметр payload
строкой, то он будет автоматически обернут в dict по формату {"command": payload}
.
Hint
Цвет кнопки можно так же указать строкой. Его можно указать сокращенно или полностью.
color="w"
color="white"
Кнопки можно добавлять в определенную строку через keyboard[row: int]
. Строки нумеруются сверху вниз, от 0 до текущего лимита. Пустые строки автоматически удаляются из клавиатуры.
row = (
TextButton(
color=kb.PRIMARY,
label="text3",
payload={"button": "1"}
),
TextButton(
color=kb.RED,
label="text4",
payload={"button": "2"}
)
)
kb[1].extend(row)
Note
Для добавления кнопок так же можно просто указать параметр row
у данных методов.
kb.append(button, row=3)
Теперь мы можем отправить объект клавиатуры.
msg(..., keyboard=kb)
Если же вам понадобится клавиатура в формате json, то просто вызовите объект.
json_keyboard = kb()
Упоминание (Mention)#
Mention
можно использовать для поиска упоминаний в тексте сообщения. Классметод find
находит первое упоминание в тексте.
from pyvdk.tools import Mention
...
mention = Mention.find(msg.text)
print(mention.id, mention.text) # 1 @durov
Так же с помощью Mention
можно создавать упоминания.
from pyvdk.tools import Mention
...
msg(f"{Mention(204697425, "@макс")}, сервера сегодня не будет")