Skip to content

Commit

Permalink
v3.4.0 说明文档 同步更新
Browse files Browse the repository at this point in the history
  • Loading branch information
elecV2 committed Jun 19, 2021
1 parent 6baea56 commit 6757bcd
Show file tree
Hide file tree
Showing 7 changed files with 145 additions and 55 deletions.
22 changes: 12 additions & 10 deletions docs/01-overview.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
```
最近更新: 2021-04-18
最近更新: 2021-06-12
适用版本: 3.3.0
```

Expand Down Expand Up @@ -39,17 +39,19 @@ yarn start

# 如果要使用基础方式启动,执行命令
node index.js
# node.js 版本大于 12.0.0 (node -v)
# node.js 版本大于 14.0.0 (node -v)
# 假如提示 80 端口不可用,尝试命令
# PORT=8000 node index.js

# 调试模式webUI 端口为 12521,正常模式下端口为 80
# 调试模式(webUI 端口为 12521,正常模式下端口为 80)
yarn dev

# 升级 *【3.1.8 版本后,推荐使用自带的 [softupdate.js](https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/softupdate.js) 脚本进行软更新升级】*
# 升级
# - 先备份好个人数据,比如 根证书,以及 script/JSFile、Store、Lists、Shell 等文件夹,和 efss 文件夹等
# - 然后再从 Github 拉取最新的代码进行覆盖升级 git pull
# - 最后再把备份好的文件复制还原到之前的位置
#
# *【3.1.8 版本后,推荐使用自带的 [softupdate.js](https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/softupdate.js) 脚本进行软更新升级】*
```

其他 PM2 相关指令
Expand Down Expand Up @@ -113,7 +115,7 @@ curl -sL https://git.io/JLw7s > docker-compose.yaml
# curl -sL https://git.io/JOuQo > docker-compose.yaml
docker-compose up -d

# 注意:默认的 docker-compose.yaml 文件使用的是基础镜像,如果是 ARM 平台请使用下面的文件手动进行修改
# 注意:默认的 docker-compose.yaml 文件使用的是基础镜像,如果是 ARM 平台请使用注释中的对应命令,或者使用下面的文件手动进行修改
# 另外,默认把 80/8001/8002 端口分别映射成了 8100/8101/8102,以防出现端口占用的情况,访问时注意。
# 如果需要调整为其他端口,可以自行修改下面的内容然后手动保存。
```
Expand Down Expand Up @@ -169,12 +171,12 @@ docker logs elecv2p -f
- 8001: ANYPROXY HTTP代理端口。(*代理端口不是网页,不能通过浏览器直接访问*
- 8002: ANYPROXY 代理请求查看端口

**v3.3.5 版本后 ANYPROXY 端口默认关闭。在 webUI 首页双击 ANYPROXY 可临时开启,在 webUI->SETTING->初始化相关设置 中可选择启动时自动开启**
**v3.3.5 版本后 ANYPROXY 相关端口默认关闭。可在 webUI 首页双击 ANYPROXY 临时开启。如需在启动时自动开启,请前往 webUI->SETTING->初始化相关设置 中进行设置**

*80 端口可使用环境变量 **PORT** 进行修改(比如: PORT=8000 node index.js),也可以在 script/Lists/config.json 文件中更改其他所有端口。*
*如果是使用 Docker 相关的安装方式,修改对应的映射端口即可。*

*v3.3.0 版本后,可在 webUI->SETTING 界面修改(非必要情况不建议随意更改)*
*v3.3.0 版本后,所有端口可在 webUI->SETTING 界面进行修改(非必要情况不建议随意更改)*

## 根证书相关 - HTTPS 解密

Expand All @@ -184,7 +186,7 @@ docker logs elecv2p -f

### 安装证书

选择以下任一种方式下载证书,然后安装并信任
选择以下任意一种方式下载证书,然后安装并信任

- 直接打开 :80/crt
- :80 -> MITM -> 安装证书
Expand Down Expand Up @@ -263,11 +265,11 @@ IFTTT/BARK/自定义通知等相关设置参考: [07-feed&notify](https://github

## DOCUMENTS&EXAMPLES

说明文档及一些例程[https://github.com/elecV2/elecV2P-dei](https://github.com/elecV2/elecV2P-dei)
说明文档及一些例程: [https://github.com/elecV2/elecV2P-dei](https://github.com/elecV2/elecV2P-dei)

TG 交流群: https://t.me/elecV2G (主要为方便用户使用交流,开发者24小时不在线,也不负责解答任何问题。)

如果遇到问题或Bug 可以开一个 [issue](https://github.com/elecV2/elecV2P/issues)说明使用平台,版本,以及附上相关的错误日志(提供的信息越详细,越有助于解决问题)。
如果遇到问题或 Bug 可以开一个 [issue](https://github.com/elecV2/elecV2P/issues)说明使用平台,版本,以及附上相关的错误日志(提供的信息越详细,越有助于解决问题)。

## 贡献参考

Expand Down
80 changes: 57 additions & 23 deletions docs/04-JS.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
```
最近更新: 2021-04-28
适用版本: 3.3.3
最近更新: 2021-06-19
适用版本: 3.4.0
文档地址: https://github.com/elecV2/elecV2P-dei/tree/master/docs/04-JS.md
```

## 保存目录

本地 JS 物理存储目录位于 **./script/JSFile**,在 RULS/REWRITE/TASK/WEBHOOK 中调用时,直接使用对应的文件名即可。
支持多级目录(v3.3.0),比如在 JSFile 下有文件夹 test,放置文件 exam.js,在引用时对应的文件名为 test/exam.js。
支持多级目录(>=v3.3.0),比如在 JSFile 下有文件夹 test,放置文件 exam.js,在引用时对应的文件名为 test/exam.js。

所有文件名称和内容可在 webUI->JSMANAGE 中查看和修改。

Expand Down Expand Up @@ -42,14 +42,14 @@
- __efss // efss 目录。 可在 webUI/efss 页面设置
- __name // 脚本名称。 v3.3.0 添加
// 测试 JS: console.log(__dirname, __version, __home, __efss, __name)
// 测试 JS: console.log('dirname:', __dirname, 'version:', __version, 'homepage:', __home, '当前 efss 目录:', __efss, '当前脚本名称:', __name)
```

#### 特殊变量函数

```
- require // 直接引用其他 nodejs 模块
- @grant // 在单个脚本开启增强功能
- require() // 直接引用其他 nodejs 模块
- // @grant // 在单个脚本开启增强功能
```

### @grant
Expand All @@ -69,10 +69,11 @@ const axios = require('axios')
* **// @grant surge** ;强制开启 surge 脚本调试模式
* **// @grant quanx** ;强制开启 quanx 脚本调试模式

*如果没有 **@grant** 声明,脚本会根据执行代码自动进行判断。如同时开启,使用 surge 调试模式。*
*如果没有 **@grant** 声明,脚本会根据执行代码内容自动进行兼容性判断。如同时开启,则使用 surge 调试模式。*
* **// @grant nodejs** ;跳过以上兼容性判断,同时脚本中引入 node 默认参数 **module****process** (v3.4.0)

* **// @grant calm** ;不打印日志,但保留到文件中,也不影响通知console.error 错误日志还是会正常打印
* **// @grant still** ;不输出日志,有通知即 console 函数无效
* **// @grant calm** ;不打印日志,但保留到日志文件中,也不影响通知(console.error 错误日志还是会正常打印)
* **// @grant still** ;不输出日志,有通知(即 console 函数无效)
* **// @grant quiet** ;输出日志,但不通知
* **// @grant silent** ;不输出日志,也不通知

Expand Down Expand Up @@ -115,7 +116,7 @@ $axios(request, {
}
}).then(res=>console.log(res.data)).catch(e=>console.log(e.message))

// 当 proxy 直接设置为 true 时使用内部默认代理,false强制跳过使用代理,省略则使用默认设置
// 当 proxy 为 {} 时使用内部 ANYPROXY 代理,为 false 时: 强制跳过使用代理,如省略则使用 webUI->SETTING 网络请求相关设置
// 其他设置参考 [axios](https://github.com/axios/axios) request/proxy 部分
```

Expand Down Expand Up @@ -152,7 +153,7 @@ $store 保存时会对数据类型进行简单的判断,当数据类型为 **n
$store.put(123, 'number')
typeof $store.get('number') // 返回数字 123

$store.get('number', 'raw') // 返回 { "type": "number", "value": 123}
$store.get('number', 'raw') // 返回 { "type": "number", "value": 123 }

$store.put([2,3,4], 'newarr') // 存储为数组。保存成功返回 true,失败返回 false
$store.get('newarr') // 返回数组:[2,3,4]
Expand All @@ -167,8 +168,7 @@ $store.put('a string', 'keystr') // 不指定类型时 直接保存为 string
$store.put('add new line', 'keystr', 'a') // 在原 keystr 的值后面添加新行
$store.get('keystr', 'raw')
// 返回:
// a string
// add new line
// {"type":"string","value":"a string\nadd new line"}

$store.put({a: 334, b: 'abc'}, 'keyobj') // 存储类型为 object。
$store.get('keyobj') // 返回:{"a":334,"b":"abc"}
Expand Down Expand Up @@ -377,13 +377,15 @@ $download('https://raw.githubusercontent.com/elecV2/elecV2P-dei/master/examples/

### $evui - 生成一个 UI 界面

*使用前需保证至少有一个 websocket 客户端*
*$evui 的参数传递基于 websocket*

可接收两个参数:$evui(option, callback)
- option: UI 界面相关参数
- callback: 用于接收处理 UI 界面提交返回的数据。(可省略)

$evui 返回的是一个 Promise 函数
- resolve 条件: 当 cbable 为 true 时,直到前端关闭窗口。否则,直接 resolve
- reject 条件: 传递参数有误或者 websocket 尚未连接

``` JS
const ui = {
Expand Down Expand Up @@ -424,6 +426,11 @@ $evui(ui, data=>{
console.log('data from client:', data)
}
}).then(data=>console.log(data)).catch(e=>console.error(e))

// 发送关闭前端 evui 界面的指令 (v3.4.0 增加)
$ws.send({ type: 'evui', data: { id: 'ebcaa4ff', type: 'close' }})

// * $ws.send 函数可临时用于服务器通过 websocket 向前端发送数据
```

效果:
Expand All @@ -440,17 +447,22 @@ $evui(ui, data=>{
- loading 加载中

``` JS
// 基础使用
$message.success('一条来自脚本的消息')
// 最基础的消息类型
// $message 仅接受两个参数
// 第一个参数表示显示的消息
// 第二个参数表示消息显示时间,单位:秒。
// $message 可接受任意个参数(v3.4.0)
// 当最后一个参数为数字时,表示消息显示时间,单位:秒。
// 最后参数为 object 且包含 secd 或 url 参数时:
// - secd 消息显示时间,单位:秒
// - url 点击消息后跳转 url

$message.error('some wrong is happen', 10)
// 一条错误提醒消息,10 秒后自动关闭(默认是 5 秒)
// 第二个参数如果是 0: 表示消息不自动关闭

$message.loading('等待中...', 0)

// 最后一个参数为 object 且传递 secd 和 url
$message.success(23, '参数类型和数量不限', true, { hello: 'elecV2P' }, '点击消息\n可打开 elecV2P Github 主页', { secd: 0, url: "https://github.com/elecV2/elecV2P" })
```

### $request/$response
Expand Down Expand Up @@ -534,20 +546,42 @@ promise
```

- JS 默认 timeout 为 5000 ms (5 秒),该值可在 webUI->SETTING 界面修改。0 表示无限制,没有超时时间
- JS 测试运行 和 webhook 运行 timeout 固定为 5000ms (以防长时间无返回结果而出现的错误),超时后后面的代码会继续执行(v3.4.0)
- 如果是异步函数,超时后代码会继续执行,如果是同步函数,会返回一个超时的错误信息

## 远程 JS

远程 JS 可直接用于 rules/rewrite/task/webhook 等模块

```
``` JSON
// default.list
[elecV2P rules]
host,httpbin.org,js,https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/0body.js,res
{
"rules": {
"list": [
{
"mtype": "host",
"match": "httpdbin.org",
"ctype": "js",
"target": "https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/0body.js",
"stage": "res",
"enable": true
}
]
}
}

// rewrite.list
[elecV2P rewrite.list]
^https?:\/\/httpbin\.org/get\?/hello https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/0body.js
{
"rewrite": {
"list": [
{
"match": "^https?://httpbin\\.org/get\\?rewrite=elecV2P",
"target": "https://raw.githubusercontent.com/elecV2/elecV2P/master/script/JSFile/0body.js",
"enable": true
}
]
}
}

// task
"taskuid": {
Expand Down
13 changes: 7 additions & 6 deletions docs/06-task.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
```
最近更新: 2021-05-22
适用版本: 3.3.8
最近更新: 2021-06-19
适用版本: 3.4.0
文档地址: https://github.com/elecV2/elecV2P-dei/tree/master/docs/06-task.md
```

Expand Down Expand Up @@ -198,10 +198,10 @@ python3 -u https://raw.githubusercontent.com/elecV2/elecV2P/master/script/Shell/
``` JSON
{
"name": "elecV2P 定时任务订阅", // 订阅名称
"author": "https://t.me/elecV2", // 订阅制作者,可省略
"date": "2021-02-26 23:32:04", // 订阅生成时间,可省略
"surl": "https://raw.githubusercontent.com/elecV2/elecV2P/master/efss/tasksub.json", // 原始订阅链接,可省略
"desc": "订阅描述,可省略。该订阅仅可用于 elecV2P, 与其他软件并不兼容。",
"date": "2021-02-26 23:32:04", // 订阅生成时间,可省略
"author": "https://t.me/elecV2", // 订阅制作者,可省略
"resource": "https://raw.githubusercontent.com/elecV2/elecV2P/master/efss/tasksub.json", // 原始订阅链接,可省略
"list": [ // 任务列表。任务格式参考上面的 task.list 部分
{
"name": "软更新",
Expand Down Expand Up @@ -257,7 +257,8 @@ python3 -u https://raw.githubusercontent.com/elecV2/elecV2P/master/script/Shell/

- 本地订阅文件导入

http://127.0.0.1/efss 界面上传订阅文件,然后添加一个本地订阅,例如: http://127.0.0.1/efss/tasksub文件名.json
在 TASK 界面直接选择 **导入本地文件**
或者在 EFSS 界面上传订阅文件,然后添加一个本地订阅,例如: efss/tasksub文件名.json
或者远程 https://xxx/efss/tasksub.json

*如果在确认网络通畅的情况下(订阅链接可以直接通过浏览器访问),但在获取订阅内容时出现了 Network Error 的错误提醒,可能是浏览器 CORS 导致的问题,尝试直接下载文件,然后上传到 EFSS 目录,再使用本地订阅(比如: efss/tasksub.json)*
Expand Down
Loading

0 comments on commit 6757bcd

Please sign in to comment.