Comments (7)
- FSM = бранчи
- Что? 2 генератора клавиатуры - мало?
from vkbottle.
- Не увидел.
- Не увидел, но приведу пример.
Допустим, я пишу бота, основанного на кнопках.
Пользователь начинает беседу с ботом, видит меню, состоящее из 3-ех кнопок: "Пойти налево", "Пойти прямо", "Пойти направо". С payload-ми: "left", "straight", "right" соответственно. Допустим, пользователь нажал на вторую кнопку. Как мне это обрабатывать, используя бранчи, потому что payload можно свой собственный написать (messages.send)? Т.е. я могу нажать на кнопку "Пойти прямо", выполнится какое-то действие (т.е. кнопку "Пойти налево" я нажать не могу), но через метод messages.send я могу отправить payload "left" (упрощенно, на самом деле, там должен быть json). Как с этим быть?
from vkbottle.
Допустим, пользователь нажал на вторую кнопку. Как мне это обрабатывать
from vkbottle.bot import Bot, Message
from vkbottle.branch import ClsBranch, rule_disposal
from vkbottle.rule import PayloadRule
class Test(ClsBranch):
@rule_disposal(PayloadRule({"command": "right"}))
async def turn_right(self, ans: Message):
await ans("You turned right.")
@rule_disposal(PayloadRule({"command": "left"}))
async def turn_left(self, ans: Message):
await ans("You turned left.")
from vkbottle.
Как же тогда бороться с тем, что можно свой payload написать и отправить через messages.send?
from vkbottle.
Как же тогда бороться с тем, что можно свой payload написать и отправить через messages.send?
Его в любом случае можно отправить самому, те же кнопки. Хендлеры в бранче не будут обрабатываться если пользователь не в бранче, мне кажется это очевидно.
from vkbottle.
Извините, что туплю, но ведь код выше не использует бранчи.
from vkbottle.
Извините, что туплю, но ведь код выше не использует бранчи.
Как это, именно что использует. ClsBranch
самая удобная имплементация бранчей, прочитайте документацию пожалуйста
from vkbottle.
Related Issues (20)
- pydantic.error_wrappers.ValidationError: 1 validation error for GetByIdResponse HOT 2
- Нет трейсбека при использовании LoopWrapper
- Refactor `LevenshteinRule`
- Bot error handler doesn't redirect arguments HOT 2
- handle:48
- Update vk api version to 5.199
- Polling: fix strange state dependency
- Improve mention
- Ошибка при обработке постов на стене(GroupEventType.WALL_POST_NEW), с размещенным ТОВАРОМ HOT 1
- Отрабатывает другой код, нежели ожидалось HOT 3
- Ошибка при загрузке фотографии на стену
- template или keyboard HOT 2
- Исправить конфликты с другими библиотеками из-за Pydantic HOT 3
- AdminRule в список Rule'ов, доступных из коробки HOT 1
- Хватит настраивать логер за меня. HOT 3
- Ошибка Aiohttp HOT 1
- -
- Code refactor -> tools.keyboard.action HOT 2
- Обновление версии pydantic для vkbottle HOT 1
- Как получить ссылку на капчу? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vkbottle.