Comments (11)
Тут бы такие моменты продумать:
- Обработчик нажатия не тем пользователем
- Возможность нажатия любым пользователем
- Возможность передачи диалога от одного пользователя другому и/или по порядку нескольким пользователям
Думаю покрыло бы любой кейс
from aiogram_dialog.
будет актуально для stateless диалогов
from aiogram_dialog.
диалог запоминает intent_id который валиден только для одного юзера.
Возможна реализация обратной функциональности: диалоги, доступные всем.
from aiogram_dialog.
Use case: подскажите, как можно реализовать бота для опросов: текст опроса, ниже кнопки с выбором ответов, а после нажатия бот возвращает соотношение проголосовавших( условно, да 70%, нет30%)
from aiogram_dialog.
Сделать диалоги доступными для всех:
Сценарий использования: Развлекательный бот для создания лобби пользователей в группе (текст с пользователями в лобби, кнопки для присоединения/выхода из него) и последующей работы с ними (True Mafia к примеру).
from aiogram_dialog.
Кейс по диалогам, доступным всем. Пример: сбор денег на подарок босу. В групповом чате висит окно с сводной информацией из базы (сколько денег собрано). Кнопки запускаю диалоги в привате, которые позволяют менять данные на основе которых формируется сводка. В примере - пользователь может указать сумму, которую он может выделить на подарок. После создания взноса сводка обновляется.
Сейчас в aiogram-dialog зачем-то данные хранятся на уровне пользователя. Чтобы кнопки работали в групповых чатах, пришлось добавили патч, который позволяет хранить данные только для чатов.
from aiogram_dialog.
Techincal details:
- need to undarstand if a dialog is started for all/single user (what about multicast?)
- event isolation
from aiogram_dialog.
Кейс модерация. Пользователь добавляется в групповой чат. В отдельном чате администраторов(2-3 человека) всплывает диалог с карточкой пользователя. Любой администратор может отклонить пользователя или одобрить его по кнопке. Можно так же открыть по кнопке подробный профиль пользователя (переключение на следующее окно).
from aiogram_dialog.
Юзкейс настройки многопользовательской игры: в чат отправляется сообщение, к которому прикреплены инлайн-кнопки. Они работают по принципу Radio виджета. То есть для игры есть несколько параметров настройки и для каждого из них есть список вариантов, из которых выбирается один конкретный.
С диалогом взаимодействует 1 пользователь
from aiogram_dialog.
Юзкейс.
Нужно показывать в общем чате диалог с разным текстом на разные кнопки, так, чтобы все могли наживать на кнопки и получать текст соответствующий кнопке. Например, это описание какого то продукта в чате.
from aiogram_dialog.
Юзкейс: Личный диалог для "игрока" в глобальном чате. (Например профиль/инвентарь)
-
Диалог без свойства "Always on top", чтобы при обычных сообщениях от юзера - диалог оставался там где был вызван. По сути чтобы не был "Always on top"
-
Свойство "игнорировать" текстовые сообщения/команды и пропускать их дальше, чтобы бот мог отвечать на них даже во время диалога. Диалог при этом остаётся активным, но не мешает пользоваться другими командами бота постоянно вылезая в "top of messages".
-
В случае вызова нового диалога - (завершать старый) или (начинать диалог с того же места где остановился юзер в старом диалоге), в зависимости от настроек.
-
Также обязательное свойство пропускать CallbackQuery, которые не принадлежат диалогу, дальше на обработку. Чтобы если у юзера открыт диалог и ещё какое-то сообщение с кнопками, которое не принадлежит диалогу - то чтобы бот мог обрабатывать колбеки от кнопок в этом сообщении.
-
Дополнительно обработка нажатий от "не владельцев" диалога. Диалог может быть: "личным", "групповым (для всех в чате)", "для конкретных юзеров (по сути фильтрация по каким-то атрибутам, например наличие админки, или соответствие по List[User.id])"
Upd: Пример использования в группе:
- Личный диалог для конкретного пользователя в группе. Диалог показывает окно с "инвентарём" игрока. Есть возможность переключатся между типами показываемых предметов (ресурсы, оружие, тд), (разные стейты/окна по сути). Сообщение диалога не должно быть "Always on top", чтобы не мешать другим игрокам в группе.
from aiogram_dialog.
Related Issues (20)
- Error in 2.0.0b12 HOT 1
- AttributeError: 'ManagerImpl' object has no attribute 'data' HOT 1
- Bug: Issue with the find method in Widget Case HOT 1
- ListGroup id HOT 1
- Window events
- ManagerRadio unchecked all HOT 1
- How to use old windows after restarting HOT 4
- show_mode in SwitchTo Widged
- Implementing Multiple Dynamic Counter Widgets with Text Parameters in aiogram-dialog HOT 1
- ShowMode in manager.start() doesn't work as expected by some users HOT 2
- Updating the examples.
- Launching a dialog with the transmission of dynamic data for the status of the checkbox buttons HOT 1
- Start calendar widget with scope Year HOT 1
- Calendar bug while selected date less than 1970 HOT 2
- How i can store data in state using FSMContext HOT 4
- Using payments HOT 1
- Coverage report falied on Jinja widgets HOT 1
- Handling InaccessibleMessage in get_media_id Function
- Best solution for creating different count of buttons
- LinkPreview widget HOT 1
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 aiogram_dialog.