简洁、强大的青龙面板脚本库,让自动化成为您的自动驾驶仪。
- 模块化设计 - 清晰的代码组织,易于维护和扩展
- 多账号支持 - 统一的多账号管理机制
- 智能通知 - 支持20+种通知渠道,智能通知策略
- 错误处理 - 完善的错误处理和日志记录
- 易于扩展 - 标准化的脚本模板,快速添加新脚本
- 类型安全 - TypeScript支持,提供更好的开发体验
- 泛用性强 - 支持多种平台和配置方式
- 自动化测试 - 完整的测试覆盖,确保代码质量
autopilot/
├── scripts/ # 主脚本目录(102个脚本)
│ ├── utils/ # 核心工具模块
│ │ ├── Env.ts # 环境管理类
│ │ ├── common.ts # 通用工具函数
│ │ ├── sendNotify.js # 统一通知模块
│ │ └── ql.ts # 青龙API封装
│ ├── js/ # JavaScript脚本(61个)
│ ├── python/ # Python脚本(14个)
│ ├── shell/ # Shell脚本(0个)
│ ├── ts/ # TypeScript脚本(23个)
│ └── storage/ # 持久化存储
├── configs/ # 配置文件
│ ├── env.example # 环境变量示例
│ └── crontab.example # 定时任务示例
├── dependencies/ # 依赖管理
│ ├── package.json # Node.js依赖
│ └── requirements.txt # Python依赖
├── tests/ # 测试文件
├── docs/ # 文档
│ ├── USAGE.md # 使用指南
│ ├── DEVELOPMENT.md # 开发指南
│ └── SCRIPTS.md # 脚本说明
├── install.sh # 一键安装脚本
├── repository.json # 仓库信息
└── README.md # 项目说明
| 语言 | 数量 |
|---|---|
| JavaScript | 61 |
| Python | 14 |
| TypeScript | 23 |
| 总计 | 102 |
详细的脚本使用说明请查看 SCRIPTS.md
在青龙面板中执行:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/astralwaveorg/autopilot/main/install.sh)"在青龙面板"订阅管理"中添加:
ql repo https://github.com/astralwaveorg/autopilot.git "scripts" "" "" "main"参考 configs/env.example 文件,在青龙面板"环境变量"页面配置:
# 通知配置
PUSH_PLUS_TOKEN=your_token_here
TG_BOT_TOKEN=your_bot_token
TG_USER_ID=your_user_id
# 通知策略(0-禁用, 1-仅异常, 2-全通知)
NOTIFY_TYPE=1在青龙面板"依赖管理"中安装:
- Node.js: 复制
dependencies/package.json中的依赖 - Python3: 复制
dependencies/requirements.txt中的依赖
参考 configs/crontab.example 文件,在青龙面板"定时任务"中设置执行时间。
-
选择脚本类型:
checkin/- 签到类脚本info/- 信息推送类脚本tools/- 工具类脚本
-
使用标准模板: 参考
scripts/templates/目录下的模板文件 -
遵循命名规范:
- JavaScript/TypeScript:
功能名称.js或功能名称.ts - Python:
功能名称.py
- JavaScript/TypeScript:
-
添加环境变量: 在
configs/env.example中添加所需的环境变量说明
/*
* @Author: Astral
* @Date: 2025-01-27
* @LastEditors: Astral
* @LastEditTime: 2025-01-27
* @Description: 脚本功能描述
* @cron: 30 7 * * *
* @new Env('脚本名称')
* @环境变量: ENV_VAR_NAME 变量说明
*/
import { Env } from './utils';
const $ = new Env('脚本名称', { sep: ['@', '\n'] });
class Task {
constructor(private config: string, private index: number) {}
async start() {
try {
$.log(`开始执行账号 ${this.index + 1}`);
// 业务逻辑
await this.signIn();
$.log(`账号 ${this.index + 1} 执行完成`);
} catch (error) {
$.log(`账号 ${this.index + 1} 执行失败: ${(error as Error).message}`, 'error');
}
}
async signIn() {
// 签到逻辑
}
}
$.init(Task, 'ENV_VAR_NAME').then(() => $.done());支持以下通知方式:
- PushPlus
- Telegram
- Bark
- Server酱
- 钉钉
- 企业微信
- 飞书
- SMTP邮件
- Go-cqhttp
- Gotify
- PushDeer
- IGot
- Chat
- 微加机器人
- 智能微秘书
- PushMe
- Chronocat
- WxPusher
- Ntfy
- 自定义Webhook
详细配置请参考 configs/env.example 文件。
运行测试:
# 安装测试依赖
npm install
# 运行所有测试
npm test
# 运行特定测试
npm test -- --grep "test-name"欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 遵循 ESLint 和 Prettier 配置
- 添加必要的注释和文档
- 编写单元测试
- 确保通过所有测试
本项目采用 MIT 许可证 - 详见 LICENSE 文件
Astral - GitHub
感谢以下项目提供的灵感和代码参考:
- 提交 Issue: GitHub Issues
如果这个项目对你有帮助,请给它一个 Star!