
## 一、快速开始 🚀

### 1. 订阅配置
```markdown
仓库地址：https://github.com/qitoqito/psyduck.git
定时类型: crontab
定时规则：23 */3 * * *
白名单：psyduck
执行后: cp -a /ql/data/repo/qitoqito_psyduck/. /ql/data/scripts/qitoqito_psyduck
不勾选: 自动添加任务 自动删除任务
```

### 2. 初始化步骤
1. 配置文件设置
   - 打开`qitoqito_psyduck/config`目录
   - 重命名 `demo.ini` 为 `config.ini`
   - 填写必要参数,需要删除配置项前的分号 `;`

2. 必填参数配置
   ```ini
   [env]
   QINGLONG_ClientId=your_client_id
   QINGLONG_ClientSecret=your_client_secret
   ```
   > 获取路径：青龙面板 → 系统设置 → 应用设置 → 创建应用 → 权限 → 环境变量,定时任务
   ```ini
   [cache]
   type=缓存类型
   ```
   > 开启缓存: 开启后自动跳过已执行账户 
   >
   > 选择json缓存,请定期清理`qitoqito_psyduck/temp`目录
   >
   > 选择redis缓存,请正确填写`host,port,password,db`选项

3. 安装项目依赖
   > 打开Bug龙终端: docker exec -it qinglong bash
   ```bash
   cd /ql/data/scripts/qitoqito_psyduck/
   npm install
   ```
4. 安装LibreSSL
    ```bash
    cd /ql/data/scripts/qitoqito_psyduck/sh && chmod +x libressl.sh && ./libressl.sh && node ./libressl.js
    ```
    > 安装完成,在config.ini添加curlPath=/opt/psyduck/curl/bin/psyduck-curl
4. 将Bug龙订阅的执行后改为
   ```
   cp -a /ql/data/repo/qitoqito_psyduck/. /ql/data/scripts/qitoqito_psyduck &&  task qitoqito_psyduck/qlCreate.js now
   ```


## 二、配置详解
### 1. Sign 服务配置
```bash
# 部署 Sign 服务

自选一个安装
https://hub.docker.com/r/qninq/signapi (框架兼容性最好)
https://hub.docker.com/r/zhx47/jd_sign
https://hub.docker.com/r/seansuny/jd-sign

注意: N1盒子只能安装:https://hub.docker.com/r/seansuny/signapi

docker run -dit \
  --name official \
  --restart always \
  --hostname official \
  -p 9527:80 \
  qninq/signapi:latest

# 配置文件添加
jdSign=http://ip:9527/jd/sign
```
### 2. Redis 服务配置
```bash
# 部署 Redis 服务
docker run -itd --name redis -p 6379:6379 --restart=always redis --requirepass 你的密码

# 配置文件修改
host=                            # Redis地址,只需ip地址
port=                            # Redis端口
password=                        # Redis密码,如无设置请留空
db=                              # Redis Db,0-15随意选一个
```
### 3. 通知配置
```ini
# telegram
TELEGRAM_TOKEN=
TELEGRAM_ID=
TELEGRAM_URL=自定义TG代理链接
TELEGRAM_PROXY=代理服务器
# bark
BARK_TOKEN=
BARK_URL=自定义url
BARK_SOUND=自定义铃声

# 钉钉
DINGTALK_TOKEN=
DINGTALK_SECRET=密钥

# igot
IGOT_TOKEN=

# server酱
FTQQ_TOKEN=

# pushplus
PUSHPLUS_TOKEN=
PUSHPLUS_TOPIC=群组

# 企业微信
WEIXIN_TOKEN=

# 企业微信AM
WXAM_TOKEN=
```
### 4. INI 文件配置
> 在iniPath目录(默认qitoqito_psyduck/config)自行创建分类配置文件,如jd.ini
```ini
# 脚本配置示例
[jd_task_test]
abc=234
```
> 本框架不支持环境变量,此设置相当于其他脚本使用的环境变量: export jd_task_test_abc=123
>
> 脚本日志头如带有[Field]标识,请按要求修改添加到配置文件中
## 三、项目结构
```
项目目录
├── util/          # 工具函数
├── parse/         # 解析脚本
├── temp/          # 缓存文件
├── static/        # 静态资源
├── cookie/        # 数据存储
├── config/        # 配置文件
├── log/           # 日志文件
├── template.js    # 核心模板
├── main.js       # 入口文件
└── qlCreate.js    # 青龙配置
```

## 四、使用说明

### 1. 基本用法
```bash
node main.js filename [-help n -custom x -thread x]
```
### 2. 脚本配置 Profile 📝

 
| 参数 | 用法 | 说明 |
|:--|:--|:--|
| 🎯 **任务相关** |||
| `task` | `n`, `n\|m`, `n:m`, `tn`, `pin`, `pin1\|pin2` | 指定执行账户，例如 `t5` 表示执行前 5 个账户 |
| `help` | 同 task | 指定被助力的账户 |
| `exclude` | 同 task | 指定需要排除的账户 |
| `thread` | `n` | 并发执行任务数量 |
| 🕒 **时间控制** |||
| `startTime` | `2025-02-05 16:03:35` 或时间戳 | 任务开始时间 |
| `endTime` | `2025-02-05 16:03:35` 或时间戳 | 任务结束时间 |
| `interval` | 毫秒数，如 `1000` | 账户间执行间隔时间 |
| `delay` | 毫秒数，如 `1000` | API 调用等待时间 |
| 🌐 **代理设置** |||
| `proxy` | `http://ip:port` | 指定代理服务器地址 |
| `proxyUrl` | 代理 API 地址 | 可设为全局变量或脚本变量 |
| `pool` | 参考 `config.proxy` | 代理池配置，可全局或单独设置 |
| `seconds` | 数字 | 代理 IP 更换间隔(秒) |
| 🔄 **运行模式** |||
| `model` | `user`, `share`, `team`, `shuffle` | 框架运行方式选择 |

 
```ini
[示例脚本]
# 基础配置
task=1             # 执行1号账户
thread=3           # 3个任务并发执行
interval=1000      # 每个账户执行间隔1秒

# 时间控制
startTime=2025-02-05 08:00:00  # 指定开始时间
endTime=2025-02-05 20:00:00    # 指定结束时间

# 代理设置
proxy=http://127.0.0.1:7890    # 使用本地代理
```

### 3. 缓存说明
- 位置：`[cache]` 节点
- 功能：开启后自动跳过已执行账户
### 4. 代理设置
```bash
proxyGroup=                      # 静态代理池,适用长期有效ip,需要自行创建proxy.ini
proxyUrl=                        # 代理ip请求地址
pool=                            # 代理池缓存数量,为正整数时候,框架向proxyUrl获取n个ip存储在代理池,运行账号依次取出ip,数量小于n时,自动补充ip. n为-1时,取一个ip,运行账户共用此ip
seconds=                         # 代理ip每隔几秒换新一个
proxy=                           # 代理ip
```

> proxyUrl,proxyGroup,proxy自选一个使用,无需同时设置
> 
> 使用proxyUrl模式,pool,seconds参数必须同时设置
> 
> 在config.ini设置为全局参数,如只想作用于某个脚本,可在脚本节点单独设置
### 5. 注意事项
- 订阅时禁用自动任务管理
- 确保配置文件格式正确
- 注意权限设置
- 不支持旧版本bug龙安装使用

## 五、常见问题
1. 配置解析失败
   - 检查分号是否删除
   - 确认格式是否正确

2. 运行异常
   - 检查依赖安装
   - 确认权限配置

3. 推送失败
   - 验证通知配置
   - 检查网络连接
4. 活动火爆
   - Docker容器网络选择host
   - 安装libressl

 
