Skip to content

feat(MaaPiCli): 重构为基于子命令的 CLI,新增任务配置文件支持与运行进度输出 - #1346

Open
srdr0p wants to merge 1 commit into
MaaXYZ:mainfrom
srdr0p:main
Open

feat(MaaPiCli): 重构为基于子命令的 CLI,新增任务配置文件支持与运行进度输出#1346
srdr0p wants to merge 1 commit into
MaaXYZ:mainfrom
srdr0p:main

Conversation

@srdr0p

@srdr0p srdr0p commented May 27, 2026

Copy link
Copy Markdown
Contributor

feat(MaaPiCli): 重构 CLI 接口,支持非交互式/脚本化运行

原版 MaaPiCli 只能通过交互式菜单逐步操作,无法用于 CI/CD、
定时任务或脚本自动化场景。本次重构将其改造为标准子命令式 CLI。

新增子命令:

  • generate-config pi:非交互式生成 maa_pi_config.json,
  • run [--task-config <file>]:运行任务,可通过 TOML/JSON
    配置文件指定本次运行的任务列表与选项覆盖,无需重走交互流程
    不带参数时与原来的-d等价。
    --task-config用于临时指定任务,比如临时跑单个任务。此时会复用maa_pi_config.json中的选项
  • list:列出所有可用控制器、任务和选项
    支持 --controller / --resource / --adb-controller 参数
  • generate-config task:生成含默认值的示例任务配置文件(TOML)

其他改进:

  • 新增 ProgressSink,支持三级进度输出(静默/任务/任务+节点)
  • load() 新增 interactive 参数,非交互模式跳过阻塞式 mpause()
  • 引入 CLI11、tomlplusplus 作为参数解析与配置文件依赖

Sourcery 摘要

改进 Android 虚拟显示屏的发现和几何信息处理,以实现更可靠的控制器初始化。

Bug 修复:

  • 改进 Android 虚拟显示屏检测:读取视口尺寸和方向;如果失败,再回退到窗口管理器的尺寸信息。
  • 当应用程序包无法识别显示屏时,使用当前已恢复活动所在的显示屏作为回退方案。

增强功能:

  • 强化显示视口和分辨率解析,并在诊断信息中包含方向详情。
Original summary in English

Summary by Sourcery

Improve Android virtual-display discovery and geometry handling for more reliable controller initialization.

Bug Fixes:

  • Improve Android virtual-display detection by reading viewport dimensions and orientation before falling back to window-manager sizing.
  • Use the resumed activity display as a fallback when the application package cannot identify a display.

Enhancements:

  • Harden display viewport and resolution parsing and include orientation details in diagnostics.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @srdr0p, your pull request is larger than the review limit of 150000 diff characters

@srdr0p

srdr0p commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@wicast 麻烦看看,主要是增强cli的自动化能力

@wicast

wicast commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

@wicast 麻烦看看,主要是增强cli的自动化能力

布什,这玩意和我有啥关系?at错人了吧

@srdr0p

srdr0p commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@wicast 麻烦看看,主要是增强cli的自动化能力

布什,这玩意和我有啥关系?at错人了吧
不好意思 @错了

@srdr0p

srdr0p commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@MistEO 麻烦看看,有哪里需要改的

@MistEO

MistEO commented Jun 15, 2026

Copy link
Copy Markdown
Member

这种大规模重构考虑作为一个独立的社区项目吗?

@srdr0p

srdr0p commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

这种大规模重构考虑作为一个独立的社区项目吗?

暂时还没有,这个规模也不大(主要是库代码),实际实现的功能也不多。只是为了更方便AI使用。

@MistEO

MistEO commented Sep 2, 2026

Copy link
Copy Markdown
Member

是不是提交错了,把应用宝的修改提上来了? @srdr0p

@MistEO

MistEO commented Sep 2, 2026

Copy link
Copy Markdown
Member

这种大规模重构考虑作为一个独立的社区项目吗?

暂时还没有,这个规模也不大(主要是库代码),实际实现的功能也不多。只是为了更方便AI使用。

因为 MaaPiCli 本质上只是一个 maafw 附带的 PI 协议最小实现,我并不希望给他引入太多额外的功能。现在准备拆一个单独的仓库出去( #1466 ),可以考虑在 fork 的基础上直接改成一个独立项目

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants