人用fsm
state-manager的Python项目详细描述
StateManager-面向人员的fsm
Convenient FSM implementation for telegram/vk
安装
Supports python3.8+
仅图书馆
pip install state-manager
图书馆和仓库
^{pr2}$图书馆和Aigram
pip install state-manager[telegram]
完全安装
pip install state-manager[full]
示例
fromvkwave.botsimportSimpleLongPollBotimportloggingfromstate_managerimportVkWaveMainRouter,VkWaveStateManagerlogging.basicConfig(level=logging.INFO)bot=SimpleLongPollBot(tokens="your token",group_id=123123,)main_state=VkWaveMainRouter(bot)@main_state.message_handler()asyncdefhome(event:bot.SimpleBotEvent,state_manager:VkWaveStateManager):awaitevent.answer("go to home2")awaitstate_manager.set_next_state("home2")@main_state.message_handler()asyncdefhome2(event:bot.SimpleBotEvent,state_manager:VkWaveStateManager):awaitevent.answer("go to home")awaitstate_manager.back_to_pre_state()main_state.install()bot.run_forever(ignore_errors=True)
importloggingfromaiogramimportBot,Dispatcher,executor,typesfromstate_managerimportAiogramStateManagerfromstate_manager.routes.aiogramimportAiogramMainRouterlogging.basicConfig(level=logging.INFO)bot=Bot(token='your token')dp=Dispatcher(bot)main_state=AiogramMainRouter(dp)main_state.install()@main_state.message_handler()asyncdefhome(msg:types.Message,state_manager:AiogramStateManager):awaitmsg.answer("go to home2")awaitstate_manager.set_next_state("home2")@main_state.message_handler()asyncdefhome2(msg:types.Message,state_manager:AiogramStateManager):awaitmsg.answer("go to home")awaitstate_manager.set_next_state("home")executor.start_polling(dp,skip_updates=True)
储存
库当前支持:
- 再存储
- 记忆库
如果不传递参数进行安装,则使用Redis存储,它将从env获取设置。在
设置:
- 存储默认值:“redis://localhost:6379英寸
- storage_ssl,默认值:无
- 存储数据库:默认值:无
- 池大小:默认值:10
- 存储超时:默认值:5
过滤器
库支持现成的:
- 文本过滤器
- 文本包含过滤器
- 正则表达式过滤器
建筑
Search state在路由器中
路由器架构
- 项目
标签: