Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

overflow65537/MFW-PyQt6

Repository files navigation

LOGO

MFW-ChainFlow Assistant(链程助手)

简体中文 | English

基于 PySide6 MaaFramework 的跨平台 GUI,完整支持 interface v2 协议,开箱即用地编排、运行和扩展自动化流程。

license Python platform commit

目录

简介

MFW-ChainFlow Assistant 旨在为 MaaFramework 用户提供开箱即用的可视化运行器,覆盖配置管理、任务调度、通知联动以及自定义扩展,降低自动化流程的开发和运维成本。

功能亮点

  • 完整支持 interface v2 协议 V2.4.0
  • 跨平台支持:Windows / Linux / macOS
  • 可带参数启动:指定配置 ID 与自动执行任务
  • 外部通知:钉钉、飞书、SMTP、WxPusher、企业微信机器人、Gotify
  • 内置计划任务:单次 / 每日 / 每周 / 每月,多策略执行
  • 动态加载自定义动作与识别器的同时支持Agent,适配个性化流程
  • 嵌入式 Agent:在 agent 字段中启用内置模式,自动转换为 custom 加载方式,使用 UI 内部环境,更小更轻盈
  • 速通模式:按日 / 周 / 月限制运行次数与最小间隔,避免重复执行
  • 热更新:资源仓库与本地 update_flag.txt 一致时自动启用,速度更快且无需重启

速通模式

  • interface.json 的任务节点下添加 speedrun 块定义周期与次数控制,并设置 speedrun.enabled: true 后生效。
  • 支持 daily / weekly / monthly,配置运行次数与最小间隔,超限时自动跳过。
  • 详细字段与示例见 docs/speedrun_mode.md

开发文档

常用命令行参数

MFW 开关写在分隔符 -- 之前;之后仅传给 Qt。

  • --config-id <ID>:使用指定配置 ID 启动(可用 --config-id=<ID>)
  • --direct-run:启动后直接运行任务
  • --force-restart:强制启动,会关闭同目录下正在运行的其他 MFW 实例
  • --dev:启用调试模式(显示测试页)

示例:MFW.exe --direct-run --force-restart --config-id c_xxx

外部通知

当前支持:钉钉、飞书、SMTP、WxPusher、企业微信机器人、Gotify,可按需在配置中启用。

计划任务

支持单次、每日、每周、每月的定时运行,可选择强制启动或按队列执行,列表中可直接启用/禁用或删除计划。

热更新

当资源仓库中包含的 update_flag.txt 文件内容和本地的 update_flag.txt 内容不一致的时候,会启动热更新模式,速度更快并且无需重启。

动态加载自定义动作/识别器

参考 MaaFramework 的自定义动作/识别器说明:

  1. 自定义动作/识别器需使用 Python 3.12。
  2. 若包含第三方库,请将依赖安装到 _internal 目录。
  3. custom.json 中声明自定义对象,并在 interface.jsoncustom 键指出 custom.json 路径({custom_path} 默认为仓库根目录下的 custom/)。
  4. Pipeline 中通过名字引用自定义动作/识别器。

示例 custom.json 片段:

{
 "动作名字1": {
 "file_path": "{custom_path}/任意位置/任意名字_动作1.py",
 "class": "动作对象1",
 "type": "action"
 },
 "识别器名字1": {
 "file_path": "{custom_path}/任意位置/任意名字_识别器1.py",
 "class": "识别器对象1",
 "type": "recognition"
 }
}

在 pipeline 中引用:

"我的自定义任务": {
 "recognition": "Custom",
 "custom_recognition": "识别器名字1",
 "action": "Custom",
 "custom_action": "动作名字1"
}

自定义类示例:

class 动作对象1(CustomAction):
 def apply(self, context, ...):
 image = context.tasker.controller.cached_image
 # 在此处进行图像处理并返回结果

更多示例可参考仓库:MAA_Punish/assets

嵌入式 Agent

interface.jsonagent 字段中设置 embedded: true,系统会自动将 agent 转换为 custom 加载方式。这种方式使用 UI 内部环境运行,无需独立进程,资源占用更小、启动更快。

示例 interface.json 片段:

{
 "agent": {
 "embedded": true,
 "child_args": ["{PROJECT_DIR}/agent/main.py"]
 }
}

启用内置模式后,系统会自动:

  1. 复制 agent 入口目录
  2. 自动生成对应的 custom.json 配置
  3. 保留 agent 字段,并额外注入 custom 字段用于加载生成产物

使用 GitHub Action 自动构建

  1. 注意:此方案只适用于使用maafw模板构建的项目
  2. deploy/install.yml 中的 MaaXXX 替换为你的项目名。
  3. 提交并推送到 GitHub 仓库的 .github/workflows 目录。
  4. 推送新版本后,GitHub Action 会自动构建发布。

自行打包

  1. 根据自身需求下载对应系统和架构的项目资产
  2. interface.json,maafw资源等代码或者描述文件放入资产根目录(MFW执行方式同级)
  3. 运行

许可证

MFW-PyQt6 使用 GPL-3.0 许可证 开源。

致谢

开源项目

  • PyQt-Fluent-Widgets
    A fluent design widgets library based on C++ Qt/PyQt/PySide. Make Qt Great Again.
  • MaaFramework
    基于图像识别的自动化黑盒测试框架。
  • MaaDebugger
    基于 MaaFramework 的调试器,用于查看和分析 MaaFramework 运行时的状态。
  • AutoMAA
    明日方舟 MAA 插件,多账号管理与自动化工具。

思路灵感

  • MFAAvalonia
    基于 Avalonia 的 MAAFramework 通用 GUI 项目 | A universal GUI project for MAAFramework based on Avalonia
    MFW-ChainFlow Assistant 参考了 MFAAvalonia 的布局,但未使用其任何源代码。

  • MFWPH
    基于 MaaFramework 的 UI 启动器,可加载与管理多种自动化资源脚本
    MFW-ChainFlow Assistant 参考了 MFWPH 的布局,但未使用其任何源代码。

其他支持

  • MirrorChyan
    Mirror酱更新服务
    MFW-ChainFlow Assistant 使用了 MirrorChyan 的更新服务。

开发者

感谢所有为 MFW-PyQt6 做出贡献的开发者。

Contributors to MFW-PyQt6

About

一个基于PySide6的MAAFramework图形化操作界面

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /