ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MoneyPrinterV2 仓库协作规范完全指南:从项目结构到 Agent 开发流程

MoneyPrinterV2 仓库协作规范完全指南:从项目结构到 Agent 开发流程 MoneyPrinterV2 仓库协作规范完全指南从项目结构到 Agent 开发流程【免费下载链接】MoneyPrinterV2Automate the process of making money online.项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyPrinterV2导读AGENTS.md 是 MoneyPrinterV2 仓库面向开发者与 AI Agent 的协作规范文档它定义了项目目录的组织逻辑、本地开发命令、编码与命名约定、测试验证流程、Commit/PR 规范以及配置安全要点。本文将以此文档为骨架结合仓库真实源码scripts/setup_local.sh、scripts/preflight_local.py、src/config.py、src/main.py 等逐条展开帮助读者快速上手本地开发、写出符合仓库风格的代码并建立一套开发 → 预检 → 冒烟测试 → 提交的完整工作流。一、项目结构与模块组织AGENTS.md 首先给出了仓库的顶层组织原则src/存放应用代码scripts/存放辅助工作流docs/存放功能文档assets/与fonts/存放静态资源。对照仓库实际目录这一结构完全成立MoneyPrinterV2/ ├── src/ # 应用代码 │ ├── main.py # 交互式 CLI 入口 │ ├── classes/ # 各平台/供应商专属组件 │ ├── config.py # 配置读取 │ ├── utils.py # 通用工具 │ ├── cache.py # 缓存 │ ├── constants.py # 常量 │ ├── cron.py # 定时任务 │ ├── llm_provider.py # LLM 提供商封装 │ └── post_bridge_integration.py # PostBridge 集成 ├── scripts/ # setup、preflight、upload 等辅助脚本 ├── docs/ # 功能文档 ├── tests/ # 顶层测试目录 ├── assets/ # 静态资源如 banner.txt ├── fonts/ # 字体资源如 bold_font.ttf ├── config.example.json # 配置模板 └── requirements.txt # 依赖清单各模块职责如下src/classes/provider 专属组件存放与特定平台或服务强绑定的实现包括YouTube.pyYouTube Shorts 自动化、Twitter.pyTwitter 机器人、Tts.py语音合成、AFM.pyAffiliate Marketing 联盟营销、Outreach.py本地商家冷触达、PostBridge.py多平台分发。从命名可以看出仓库刻意将平台差异隔离在 classes 目录内便于后续横向扩展新平台。共享工具与配置模块config.py提供统一的配置读取入口utils.py、cache.py、constants.py提供通用能力。例如 src/config.py 中的get_post_bridge_config()就集中处理 PostBridge 配置的读取、平台白名单校验supported_platforms {tiktok, instagram}、account_ids 的整数化归一化以及POST_BRIDGE_API_KEY环境变量兜底属于配置逻辑集中在src/共享模块的典型体现。scripts/辅助工作流setup_local.sh引导本地环境preflight_local.py做运行前检查upload_video.sh提供免交互的视频直传流程。二、构建、测试与开发命令详解AGENTS.md 列出了五条核心命令下面逐一结合源码说明其行为与适用场景。2.1bash scripts/setup_local.sh一键引导本地开发环境这是最推荐的初始化入口。查看 scripts/setup_local.sh其执行序列为创建config.json若根目录不存在config.json则从config.example.json复制生成创建虚拟环境若venv/bin/python不存在则执行python3 -m venv venv升级工具链并安装依赖ensurepip --upgrade、pip install --upgrade pip setuptools wheel随后pip install -r requirements.txt探测系统依赖通过command -v magick/command -v convert探测 ImageMagick 路径在 macOS 上自动查找 Firefox 默认 release profile回填配置默认值脚本内嵌 Python 片段以cfg.setdefault(...)方式为llm_provider默认local_ollama、image_provider默认local_automatic1111、stt_provider默认local_whisper、ollama_base_url、whisper_model等设置默认值不会覆盖用户已有的显式配置自动挑选 Ollama 模型调用http://127.0.0.1:11434/api/tags获取已安装模型按glm-4.7-flash:latest→qwen3:14b→phi4:latest→phi4:14b→gpt-oss:20b→deepseek-r1:32b的优先级选择若均未安装则取第一个可用模型运行预检调用scripts/preflight_local.py|| true保证预检失败不中断 setup最后提示启动命令。注意脚本使用set -euo pipefail任一关键步骤失败都会立即退出所有路径均基于仓库根目录解析ROOT_DIR因此必须从仓库根目录执行。2.2 手动安装依赖source venv/bin/activate pip install -r requirements.txt这条命令适用于虚拟环境已存在、仅需同步依赖的场景。项目要求 Python 3.12README 明确说明 MPV2 needs Python 3.12 to function effectively因此建议用python3.12 -m venv venv创建环境。2.3python3 scripts/preflight_local.py运行前预检预检脚本是提交前最小验证的第一道关卡。其检查项与判定逻辑如下检查项判定规则失败影响config.json存在文件不存在即 FAIL直接返回退出码 1imagemagick_path路径无效仅 WARNMoviePy 字幕渲染可能失败firefox_profile为空或目录不存在仅 WARNTwitter/YouTube 浏览器自动化需要Ollama 服务{base}/api/tags不可达即 FAILLLM 功能不可用Ollama 模型列表无模型仅 WARN提示先ollama pull llama3.2:3bnanobanana2_api_key为空且无GEMINI_API_KEY即 FAIL图片生成不可用faster-whisper 依赖import faster_whisper失败即 FAIL本地语音转写不可用注意nanobanana2_api_key同时支持从环境变量GEMINI_API_KEY兜底读取与 src/config.py 中get_nanobanana2_api_key()的逻辑一致。预检存在 FAIL 项时最终退出码为 1仅有 WARN 时判定通过。2.4python3 src/main.py启动 CLI 应用这是交互式入口见 src/main.py启动后打印OPTIONS菜单YouTube Shorts 自动化、Twitter Bot、Affiliate Marketing、Outreach 等等待用户输入数字选项进入对应流程。首次运行时 src/config.py 的assert_folder_structure()会自动创建.mp工作目录。2.5bash scripts/upload_video.sh免交互直传 YouTube Shorts该脚本面向不经过菜单交互的场景先从.mp/youtube.json读取已配置账号 ID 列表并打印提示用户输入目标账号 ID 做合法性校验最后执行python3 src/cron.py youtube id完成生成与上传。README 强调所有 scripts 必须从仓库根目录执行例如bash scripts/upload_video.sh因为脚本内部依赖相对根目录解析的路径。三、编码风格与命名约定AGENTS.md 明确了本仓库的代码风格基线Python 3.12项目硬性要求见 README.md4 空格缩进遵循既有 Python 惯例命名规范函数/变量用snake_case类用PascalCase常量用UPPER_SNAKE_CASE职责边界新业务逻辑放在src/下的聚焦模块provider/集成代码放在src/classes/代码形态偏好小而明确的函数保持 CLI-first 的交互行为。这些约定在源码中有充分体现如 src/config.py 中所有读取函数均为get_xxx()形式的snake_case小函数每个函数只做打开 config.json → 读取某个键一件事src/main.py 的main()函数 docstring 则详细描述了五大功能入口。四、测试指南AGENTS.md 明确说明当前仓库没有强制性的自动化测试套件或覆盖率阈值这是理解仓库测试策略的前提。最低验证要求为两步运行python3 scripts/preflight_local.py通过python3 src/main.py冒烟测试受影响的流程。新增测试的统一约定是放在顶层tests/目录命名遵循test_module.py。仓库现有的 tests/ 目录恰好符合该约定test_config.py— 配置读取逻辑test_cron_post_bridge.py— 定时任务与 PostBridge 联动test_post_bridge_client.py— PostBridge 客户端test_post_bridge_integration.py— PostBridge 集成层对于改动src/config.py的开发者编写tests/test_config.py风格的用例即是符合仓库规范的做法对于改动src/classes/下 provider 的开发者AGENTS.md 要求保持 CLI-first 行为因此用python3 src/main.py走一遍对应菜单路径做冒烟测试即可。五、Commit 与 Pull Request 指南仓库对协作流程有明确要求Commit 风格祈使句摘要例如Fix ...、Update ...可选附带 issue 引用如(#128)PR 目标分支一律提交到mainPR 规范每个 PR 关联一个 issue、范围限定在单一功能/修复、使用清晰的标题与描述WIP 标记未就绪的 PR 打上WIP前缀就绪后移除。这套规范与 CONTRIBUTING.md 共同构成贡献者流程。特别地scope to one feature/fix原则与仓库的模块化结构相辅相成——src/classes/各文件相互独立天然适合小步提交。六、安全与配置要点AGENTS.md 给出了两条硬性安全要求结合 config.example.json 可以落地为可操作清单config.json属于环境专属文件禁止提交真实 API Key 与私有 profile 路径。config.json位于仓库根目录且不进入版本库由 setup 脚本生成其中email段的 SMTP 密码、nanobanana2_api_key、post_bridge.api_key等都属于敏感字段从config.example.json起步并优先使用支持的环境变量。仓库实际支持的环境变量兜底机制包括GEMINI_API_KEY→ 图片生成 API Keysrc/config.pyPOST_BRIDGE_API_KEY→ PostBridge 分发 API Keysrc/config.py这意味着即使config.json中留空只要环境变量配置正确对应功能仍可工作。此外scripts/setup_local.sh 会自动探测并回填firefox_profileFirefox 自动化 profile与imagemagick_path这两项同样属于环境相关、不应手工硬编码提交的配置。七、给 AI Agent 与贡献者的实践清单将 AGENTS.md 的规范压缩成一份可执行的开发流程清单初始化从根目录运行bash scripts/setup_local.sh自动完成 venv 创建、依赖安装、config.json 生成与默认值回填定位代码新功能属于平台集成则放src/classes/Provider.py属于通用配置/工具则放src/config.py/src/utils.py/src/constants.py写代码Python 3.12 4 空格缩进 snake_case 函数 PascalCase 类 UPPER_SNAKE_CASE 常量保持小函数与 CLI-first 行为验证先python3 scripts/preflight_local.py通过预检再python3 src/main.py冒烟测试受影响的菜单流程新增测试放入tests/test_module.py提交祈使句 commit message如Fix ... (#128)PR 指向main、关联 issue、单一范围、未就绪加WIP安全config.json不入库真实密钥走环境变量GEMINI_API_KEY、POST_BRIDGE_API_KEY一切以config.example.json为模板。遵循以上流程无论是人类开发者还是 AI Agent都能以仓库维护者期望的方式高效、安全地参与 MoneyPrinterV2 的开发迭代。【免费下载链接】MoneyPrinterV2Automate the process of making money online.项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyPrinterV2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表