零基础开发指南
NOTE
只有当您想要开发MaaYuan时才需要看当前页面! 用户请转到 说明文档 开发 MaaFramework 或开发自己的项目请到 MaaXYZ/MaaFramework
本篇文档参考:MaaFW、MAA、M9A开发指南编写!
Github Pull Request 代码提交流程简述
我不懂编程,只是想改一点点 JSON 文件/文档等,要怎么操作?
欢迎收看 牛牛也能看懂的 GitHub Pull Request 使用指南
简单来说,就是整个文件夹用VScode打开,找到想编辑的代码在VScode里编辑好,然后把改好的代码粘贴到github网站上进行PR。
我有编程经验,想在本地进行较为完整的项目开发,应该怎么操作?
TIP
- fork一份MaaYuan主仓库的代码,并把代码下载到本地;
- 在本地写
pipeline、interface、custom文件,利用VSCode插件/小工具/MPE等进行截图、取ROI等操作,并利用VSCode插件/MaaDebugger/MPE等调试工具进行调试; - 利用git,实现本地(电脑硬盘里你的文件夹)-- 个人远程仓库(你fork的MaaYuan仓库)的交互;
- 再利用PR,实现个人远程仓库(你fork的MaaYuan仓库)-- 上游原始仓库(MaaYuan项目仓库)的交互。
1、前置准备
下载、安装VSCode并安装对应插件
官网:https://code.visualstudio.com
推荐下载好后,在扩展里找到
Maa Pipeline Support,进行下载安装。可以进行调试,截图、取ROI等操作,不对的会进行报错提醒。TIP
- 可以下个代码补全的插件,一键补全,好用!
- 代码格式化插件推荐:
Prettier,作者Prettier蓝标
下载并安装git(官网:https://git-scm.com/ )
下载并安装Python(≥3.11)
TIP
安装教程:
79 fastinstall发布了一篇小红书笔记,快来看吧! 😆 q16mTm9mycRvoaa 😆 http://xhslink.com/a/2lRUfHM42bt6,复制本条信息,打开【小红书】App查看精彩内容!
2、代码配置
如果很久以前 fork 过,先在自己仓库的
Settings里,翻到最下面,删除。打开 MaaYuan主仓库,点击
Fork,继续点击Create fork按照提示fork好之后,接下来就会来到你的个人仓库,可以看到标题是 “你的用户名/MaaYuan”,下面一行小字 forked from syoius/MaaYuan(复制自 MaaYuan主仓库)
克隆你自己的仓库到本地,并拉取子模块
下了git后,在命令行cmd/powershell中运行
bashgit clone --recursive https://github.com/<你的用户名>/MaaYuan.git git clone --recursive https://github.com/<你的用户名>/MaaYuan.git "F:\你的文件夹" #安装到指定文件夹WARNING
请注意,一定要完整克隆子项目,不要漏了
--recursive,也不要下载 zip 包!这步未正确操作会导致所有 OCR(文字识别)失败!
*MaaCommonAssets子模块:路径为
assets\MaaCommonAssets这是一些OCR模型
如已克隆但发现资源缺失?
在项目根目录运行以下命令更新子模块:
git submodule update --init --recursive想要在指定文件夹下载?
在你心仪的文件夹右键——在终端中打开/Open git bash here输入git命令。
或 win+R,输入 cmd后,输入
cd /d "F:\你的文件夹" #转换默认cmd路径至指定文件夹,powershell和bash的指令可能有所不同我没有下git/git下载不下来/git clone总是失败,怎么办?
这是因为git clone需要本地代理,没有代理的需要搜索镜像源/在github的镜像网站上下载code的压缩包。
配置OCR文件
WARNING
只有配置好OCR文件,才能正常使用调试功能!否则会一直识别不到文字
方法一:将OCR文件解压到
assets/resource/base/model/ocr/目录下。确保路径如下:
shassets/resource/base/model/ocr/ ├── det.onnx ├── keys.txt └── rec.onnxNOTE
OCR文件怎么找:
如果之前成功下载了子模块:在
assets\MaaCommonAssets\OCR\目录下有OCR文件无法成功下载,只下了本体:下载 OCR(文字识别)资源文件 ppocr_v5.zip
方法二:成功下载了子模块,也可直接在根目录下面运行
shpython tools/configure.py如果成功,提示如下:
OCR model configured.
同时在
assets/resource/base/model下可以看到建好的ocr文件夹,里面有装好的ocr文件。下载 MaaFramework 的 Release 包,解压到
deps文件夹中。配置编程环境
- 编程环境:下载好 Python、VS Code,环境就基本配置好啦,接下来就需要选一个 Maa 的开发工具
- Maa 调试/开发工具列表
工具总览:MaaFramework社区项目
| 工具 | 简介 |
|---|---|
| MaaDebugger | 独立调试工具 |
| Maa Pipeline Support | VSCode 插件,提供调试、截图、获取 ROI、取色等功能 |
| MFA Tools Plus | 独立截图、获取 ROI、滑动、文字及取色工具 |
| MaaLogAnalyzer | 可视化分析基于 MaaFramework 开发应用的日志 |
| MaaPipelineExtremer - Editor | MPE 网站,可视化编辑和分析 MaaYuan 的流程代码 |
开始开发
使用上一个步骤中安装的开发工具开发MaaYuan,虚拟环境会自动创建在
.venv目录中。开始愉快的MaaYuan代码之旅,可以官方文档的使用参考。
TIP
推荐使用 VSCode 插件进行开发调试、MaaLogAnalyzer 进行用户日志分析、MPE进行流程查看梳理思路
安装插件后,如果写的时候哪里不对都会标红。等vscode里都不红了之后再用Maa Debugger/Maa Pipeline support调试看运行流程有没有问题。
参考文档:
任务流水线(Pipeline)协议 | MaaFramework
Project Interface V2 协议 | MaaFramework
IMPORTANT
主要要编的代码:
1、每个任务的代码(pipeline):在
resource/pipeline下面的.json文件里(每个任务的单独代码,就是识别到xx点击,接下来再识别xx,编写的规则参照任务流水线(Pipeline)协议2、显示在gui上的页面(Interface):在
interface.json中(任务写好了,想让它显示在gui中,并且能够显示任务说明、选项内容,参照Project Interface V2 协议3、选项的实现:在
interface.json中写每个选项对应的pipeline_override。4、日志中消息提醒(focus):在每个
node中编写focus信息实现,具体参照节点信息输出和官方文档回调协议话不多说,自行看代码更好理解!可参考MaaYuan、M9A的已有代码进行理解
程序测试
利用
7. 编程环境中的小工具进行开发,推荐使用VSCode插件,也可使用MaaDebugger调试工具进行测试。选择你编写的代码,进行执行。git 操作(命令行版)
通常用的最多的基本命令有:
git add <file>:添加文件到暂存区,*代表全部文件git commit -m "message":提交暂存区到本地仓库。message请遵循 约定式提交规范,让你的 commit 信息更加清晰git pull origin <branch>:拉取远程仓库到本地仓库git push origin <branch>:推送本地仓库到远程仓库
bashgit checkout -b <branch-name> # 创建并切换到新的分支完成开发后,推送你修改的本地分支到远程仓库(fork 的仓库,地址中是你的用户名)
bashgit push origin <branch-name>- 当 MaaYuan仓库出现更改(如其他人的commit),你可能需要把这些更改同步到你的分支
(1)关联 MaaYuan 原仓库:
shgit remote add upstream https://github.com/syoius/MaaYuan.git(2)拉取远程仓库更新:
shgit fetch upstream(3)变基(推荐)或者合并修改:
shgit rebase upstream/main # 变基,使commit历史更清晰,完成你的个人pr时建议使 用rebase而不是merge来合并修改git 参考资料:
不会用命令行?在VSCode里也可以提交!
ctrl+s进行保存。
源代码管理处可以进行拉取(git pull)、暂存(git add)、提交(git commit)、推送(git push)等操作,同命令行操作差不多。
提交 Pull Request
你修改的代码已经提交到你的仓库(github网站上[你的个人远程仓库](
https://github.com/<你的用户名>/MaaYuan),为origin/<分支名>)。现在你需要提交一个 Pull Request 到 MaaYuan的仓库(github上面MaaYuan的总仓库,
upstream/<分支名>),等待维护者审核。
CAUTION
开发过程中,每一定数量,记得提交一个 commit, 别忘了写上 message
推荐自动生成提交信息工具:OpenCommit
假如你不熟悉 git 的使用,你可能需要创建并切换到一个新的分支,而不是直接提交在 main 上。这样你的提交就能在新的分支上生长,不会受到 main 更新的打扰。