forked from erdongchanyo/Rules
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EDC_Surge-Panel.js
84 lines (72 loc) · 2.63 KB
/
EDC_Surge-Panel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* 参考 */
/* https://raw.githubusercontent.com/fishingworld/something/main/PanelScripts/surgepro_reloadprofile.js */
/* https://raw.githubusercontent.com/smartmimi/conf/master/surge/functionstatus.js */
!(async () => {
/* 定义图标 */
let params = getParams($argument)
/* 时间获取 */
let traffic = (await httpAPI("/v1/traffic","GET"))
let dateNow = new Date()
let dateTime = Math.floor(traffic.startTime*1000)
let startTime = timeTransform(dateNow,dateTime)
/* MitM+Rewrite+Scripting状态获取 */
let mitm_status = (await httpAPI("/v1/features/mitm","GET"));
let rewrite_status = (await httpAPI("/v1/features/rewrite","GET"));
let scripting_status = (await httpAPI("/v1/features/scripting","GET"));
if ($trigger == "button") await httpAPI("/v1/profiles/reload");
$done({
title:"𝗦𝗨𝗥𝗚𝗘 𝗣𝗥𝗢",
content:`©️𝗘𝗿𝗱𝗼𝗻𝗴𝗖𝗵𝗮𝗻 𝗟𝗮𝘇𝘆 𝗖𝗢𝗡𝗙\n`+
`--------------\n`+
`@𝘁.𝗺𝗲/𝗲𝗿𝗱𝗼𝗻𝗴𝗰𝗵𝗮𝗻\n`+
`--------------\n`+
`𝗦𝘂𝗿𝗴𝗲启动时长: ${startTime}\n`+
`--------------\n`+
`𝗠𝗶𝘁𝗠:`+icon_status(mitm_status.enabled)+` 𝗥𝗲𝘄𝗿𝗶𝘁𝗲:`+icon_status(rewrite_status.enabled)+` 𝗦𝗰𝗿𝗶𝗽𝘁𝗶𝗻𝗴:`+icon_status(scripting_status.enabled),
icon: params.icon,
"icon-color":params.color
});
})();
function timeTransform(dateNow,dateTime) {
let dateDiff = dateNow - dateTime;
let days = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
let leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
let hours=Math.floor(leave1/(3600*1000))//计算出小时数
//计算相差分钟数
let leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数
let minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
//计算相差秒数
let leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数
let seconds=Math.round(leave3/1000)
if(days==0){
if(hours==0){
if(minutes==0)return(`${seconds}秒`);
return(`${minutes}分${seconds}秒`)
}
return(`${hours}时${minutes}分${seconds}秒`)
}else {
return(`${days}天${hours}时${minutes}分`)
}
}
function icon_status(status){
if (status){
return "\u2611";
} else {
return "\u2612"
}
}
function httpAPI(path = "", method = "POST", body = null) {
return new Promise((resolve) => {
$httpAPI(method, path, body, (result) => {
resolve(result);
});
});
}
function getParams(param) {
return Object.fromEntries(
$argument
.split("&")
.map((item) => item.split("="))
.map(([k, v]) => [k, decodeURIComponent(v)])
);
}