人用fsm

state-manager的Python项目详细描述


StateManager-面向人员的fsm

Convenient FSM implementation for telegram/vk

Russian version


安装

Supports python3.8+

仅图书馆

pip install state-manager

图书馆和仓库

^{pr2}$

图书馆和Aigram

pip install state-manager[telegram]

完全安装

pip install state-manager[full]

示例

VkWave

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)

Aiogram

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)

more examples

储存

库当前支持:

  • 再存储
  • 记忆库

如果不传递参数进行安装,则使用Redis存储,它将从env获取设置。在

设置:

  • 存储默认值:“redis://localhost:6379英寸
  • storage_ssl,默认值:无
  • 存储数据库:默认值:无
  • 池大小:默认值:10
  • 存储超时:默认值:5

过滤器

库支持现成的:

  • 文本过滤器
  • 文本包含过滤器
  • 正则表达式过滤器

您也可以编写过滤器。 aiogramvkwave

建筑

Search state在路由器中

alt text


路由器架构

alt text

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android webRTC音频卷   java Android Studio无法解析com。谷歌。安卓gms。附近的信息。订阅选项。建设者   java无法通过OAuth2将额外参数传递给SpringSecurity。0   Java正则表达式查找重复单词“\\b(\\w+)(\\s++\\1\\b)+”时出现问题   使用RSA进行模块乘法的加密会导致Java卡出错   如果存在多个下游操作符,java不会发送重复记录   java如何按键比较两个JavaPairRDD并比较值?   安卓如何访问java。JAVA中的lang.Object json值?   带Javascript客户端的Thrift Java server OutOfMemoryError   java HTML到PDF字体解析器   java从sqlite检索图像时出错?   java截断所有表的简单方法,清除一级和二级hibernate缓存?   java如何让GWT在链接文件夹中查找源代码?   java如何在internet上同时使用OAuth和Active Directory实现单点登录