@whyour/qinglong 2.18.3-3 → 2.19.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +7 -9
- package/docker/310.Dockerfile +18 -9
- package/docker/Dockerfile +18 -9
- package/docker/docker-entrypoint.sh +14 -15
- package/docker/front.conf +0 -32
- package/ecosystem.config.js +5 -25
- package/package.json +9 -11
- package/sample/notify.js +5 -3
- package/shell/check.sh +0 -2
- package/shell/preload/sitecustomize.js +38 -15
- package/shell/preload/sitecustomize.py +42 -18
- package/shell/share.sh +23 -75
- package/shell/update.sh +21 -20
- package/static/build/api/health.js +32 -0
- package/static/build/api/index.js +4 -0
- package/static/build/api/log.js +1 -1
- package/static/build/api/script.js +2 -3
- package/static/build/api/system.js +1 -0
- package/static/build/api/update.js +47 -0
- package/static/build/api/user.js +2 -2
- package/static/build/app.js +70 -21
- package/static/build/config/const.js +2 -1
- package/static/build/config/index.js +32 -25
- package/static/build/config/util.js +72 -89
- package/static/build/data/dependence.js +1 -13
- package/static/build/data/notify.js +1 -0
- package/static/build/loaders/app.js +7 -9
- package/static/build/loaders/db.js +1 -3
- package/static/build/loaders/express.js +1 -9
- package/static/build/loaders/initData.js +7 -8
- package/static/build/loaders/initFile.js +0 -1
- package/static/build/loaders/logger.js +34 -15
- package/static/build/middlewares/monitoring.js +56 -0
- package/static/build/schedule/api.js +47 -8
- package/static/build/schedule/client.js +1 -1
- package/static/build/services/cron.js +12 -6
- package/static/build/services/dependence.js +10 -9
- package/static/build/services/grpc.js +97 -0
- package/static/build/services/health.js +74 -0
- package/static/build/services/http.js +68 -0
- package/static/build/services/metrics.js +82 -0
- package/static/build/services/notify.js +3 -3
- package/static/build/services/system.js +8 -1
- package/static/build/services/user.js +21 -5
- package/static/build/shared/pLimit.js +13 -1
- package/static/dist/{2208.03c2cf4a.async.js → 2208.98ccac5f.async.js} +1 -1
- package/static/dist/8826.faecf076.async.js +1 -0
- package/static/dist/8851.cf7e0ebc.async.js +1 -0
- package/static/dist/index.html +2 -2
- package/static/dist/layouts__index.6e23431c.async.js +1 -0
- package/static/dist/{preload_helper.1b1a7a9f.js → preload_helper.67e88ed6.js} +1 -1
- package/static/dist/{src__pages__crontab__index.5eb33581.async.js → src__pages__crontab__index.d6d37f6a.async.js} +1 -1
- package/static/dist/{src__pages__crontab__modal.b20074c2.async.js → src__pages__crontab__modal.dcd053b5.async.js} +1 -1
- package/static/dist/src__pages__dependence__modal.7f588c0b.async.js +1 -0
- package/static/dist/src__pages__env__editNameModal.411043e2.async.js +1 -0
- package/static/dist/{src__pages__env__modal.d923acdb.async.js → src__pages__env__modal.7d952f26.async.js} +1 -1
- package/static/dist/src__pages__error__index.837f4753.async.js +1 -0
- package/static/dist/{src__pages__initialization__index.684197ee.async.js → src__pages__initialization__index.5bd471c5.async.js} +1 -1
- package/static/dist/src__pages__script__editNameModal.32bb2f80.async.js +1 -0
- package/static/dist/src__pages__script__index.53f99bee.async.js +1 -0
- package/static/dist/{src__pages__script__renameModal.09dfb133.async.js → src__pages__script__renameModal.8232c924.async.js} +1 -1
- package/static/dist/{src__pages__script__saveModal.21b81bcc.async.js → src__pages__script__saveModal.8e358e84.async.js} +1 -1
- package/static/dist/{src__pages__script__setting.c6503aaf.async.js → src__pages__script__setting.dcdd7253.async.js} +1 -1
- package/static/dist/{src__pages__setting__appModal.b115baf8.async.js → src__pages__setting__appModal.25adf30e.async.js} +1 -1
- package/static/dist/src__pages__setting__dependence.95dd01e7.async.js +1 -0
- package/static/dist/src__pages__setting__index.3b426f9f.async.js +1 -0
- package/static/dist/src__pages__setting__notification.989e57d6.async.js +1 -0
- package/static/dist/src__pages__setting__security.7623a492.async.js +1 -0
- package/static/dist/src__pages__setting__systemLog.2e8cc7a0.async.js +1 -0
- package/static/dist/src__pages__subscription__modal.46a69195.async.js +1 -0
- package/static/dist/{umi.32588872.js → umi.b7656bb3.js} +1 -1
- package/version.yaml +12 -6
- package/back.d.ts +0 -9
- package/other.config.js +0 -13
- package/static/build/loaders/update.js +0 -79
- package/static/build/public.js +0 -34
- package/static/build/schedule/index.js +0 -52
- package/static/build/update.js +0 -29
- package/static/dist/8826.b3f9fa78.async.js +0 -1
- package/static/dist/8851.a57942be.async.js +0 -1
- package/static/dist/layouts__index.623b87d2.async.js +0 -1
- package/static/dist/src__pages__dependence__modal.1bb8572d.async.js +0 -1
- package/static/dist/src__pages__env__editNameModal.115bb8ea.async.js +0 -1
- package/static/dist/src__pages__error__index.a17578c5.async.js +0 -1
- package/static/dist/src__pages__script__editNameModal.7d1cc6b4.async.js +0 -1
- package/static/dist/src__pages__script__index.0cd08dcd.async.js +0 -1
- package/static/dist/src__pages__setting__dependence.f3afc194.async.js +0 -1
- package/static/dist/src__pages__setting__index.34ed674c.async.js +0 -1
- package/static/dist/src__pages__setting__notification.b7722a0b.async.js +0 -1
- package/static/dist/src__pages__setting__security.534a5e67.async.js +0 -1
- package/static/dist/src__pages__setting__systemLog.cb8a2174.async.js +0 -1
- package/static/dist/src__pages__subscription__modal.10cd630d.async.js +0 -1
package/version.yaml
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
version: 2.
|
|
2
|
-
changeLogLink: https://t.me/jiao_long/
|
|
3
|
-
publishTime: 2025-
|
|
1
|
+
version: 2.19.0
|
|
2
|
+
changeLogLink: https://t.me/jiao_long/429
|
|
3
|
+
publishTime: 2025-05-11 08:00
|
|
4
4
|
changeLog: |
|
|
5
|
-
1.
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
5
|
+
1. 缓存 node 和 python 依赖,linux 依赖需要增加映射目录
|
|
6
|
+
2. 减少启动服务数,节约启动内存约 50%
|
|
7
|
+
3. 邮箱通知支持多个收件人
|
|
8
|
+
4. boot 任务改为在依赖安装完成后执行
|
|
9
|
+
5. 修复脚本管理查询子目录逻辑
|
|
10
|
+
6. 修复脚本管理增加文件夹
|
|
11
|
+
7. 修复 QLAPI 修复环境变量 remarks
|
|
12
|
+
8. 修复 mjs 依赖查不到
|
|
13
|
+
9. 修复无法删除日志文件
|
package/back.d.ts
DELETED
package/other.config.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const body_parser_1 = __importDefault(require("body-parser"));
|
|
7
|
-
const celebrate_1 = require("celebrate");
|
|
8
|
-
const cors_1 = __importDefault(require("cors"));
|
|
9
|
-
const express_jwt_1 = require("express-jwt");
|
|
10
|
-
const typedi_1 = __importDefault(require("typedi"));
|
|
11
|
-
const config_1 = __importDefault(require("../config"));
|
|
12
|
-
const system_1 = __importDefault(require("../services/system"));
|
|
13
|
-
const logger_1 = __importDefault(require("./logger"));
|
|
14
|
-
exports.default = ({ app }) => {
|
|
15
|
-
app.set('trust proxy', 'loopback');
|
|
16
|
-
app.use((0, cors_1.default)());
|
|
17
|
-
app.use(body_parser_1.default.json({ limit: '50mb' }));
|
|
18
|
-
app.use(body_parser_1.default.urlencoded({ limit: '50mb', extended: true }));
|
|
19
|
-
app.use((0, express_jwt_1.expressjwt)({
|
|
20
|
-
secret: config_1.default.secret,
|
|
21
|
-
algorithms: ['HS384'],
|
|
22
|
-
}));
|
|
23
|
-
app.put('/api/reload', async (req, res, next) => {
|
|
24
|
-
try {
|
|
25
|
-
const systemService = typedi_1.default.get(system_1.default);
|
|
26
|
-
const result = await systemService.reloadSystem();
|
|
27
|
-
res.send(result);
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
logger_1.default.error('🔥 error: %o', e);
|
|
31
|
-
return next(e);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
app.put('/api/system', async (req, res, next) => {
|
|
35
|
-
try {
|
|
36
|
-
const systemService = typedi_1.default.get(system_1.default);
|
|
37
|
-
const result = await systemService.reloadSystem('system');
|
|
38
|
-
res.send(result);
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
logger_1.default.error('🔥 error: %o', e);
|
|
42
|
-
return next(e);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
app.put('/api/data', async (req, res, next) => {
|
|
46
|
-
try {
|
|
47
|
-
const systemService = typedi_1.default.get(system_1.default);
|
|
48
|
-
const result = await systemService.reloadSystem('data');
|
|
49
|
-
res.send(result);
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
logger_1.default.error('🔥 error: %o', e);
|
|
53
|
-
return next(e);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
app.use((req, res, next) => {
|
|
57
|
-
const err = new Error('Not Found');
|
|
58
|
-
err['status'] = 404;
|
|
59
|
-
next(err);
|
|
60
|
-
});
|
|
61
|
-
app.use((0, celebrate_1.errors)());
|
|
62
|
-
app.use((err, req, res, next) => {
|
|
63
|
-
if (err.name === 'UnauthorizedError') {
|
|
64
|
-
return res
|
|
65
|
-
.status(err.status)
|
|
66
|
-
.send({ code: 401, message: err.message })
|
|
67
|
-
.end();
|
|
68
|
-
}
|
|
69
|
-
return next(err);
|
|
70
|
-
});
|
|
71
|
-
app.use((err, req, res, next) => {
|
|
72
|
-
res.status(err.status || 500);
|
|
73
|
-
res.json({
|
|
74
|
-
code: err.status || 500,
|
|
75
|
-
message: err.message,
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=update.js.map
|
package/static/build/public.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = __importDefault(require("express"));
|
|
7
|
-
const logger_1 = __importDefault(require("./loaders/logger"));
|
|
8
|
-
const config_1 = __importDefault(require("./config"));
|
|
9
|
-
const health_1 = require("./protos/health");
|
|
10
|
-
const grpc_js_1 = require("@grpc/grpc-js");
|
|
11
|
-
const app = (0, express_1.default)();
|
|
12
|
-
const client = new health_1.HealthClient(`0.0.0.0:${config_1.default.cronPort}`, grpc_js_1.credentials.createInsecure(), { 'grpc.enable_http_proxy': 0 });
|
|
13
|
-
app.get('/api/health', (req, res) => {
|
|
14
|
-
client.check({ service: 'cron' }, (err, response) => {
|
|
15
|
-
if (err) {
|
|
16
|
-
return res.status(200).send({ code: 500, error: err });
|
|
17
|
-
}
|
|
18
|
-
return res.status(200).send({ code: 200, data: response });
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
app
|
|
22
|
-
.listen(config_1.default.publicPort, '0.0.0.0', async () => {
|
|
23
|
-
var _a;
|
|
24
|
-
await require('./loaders/db').default();
|
|
25
|
-
logger_1.default.debug(`✌️ 公共服务启动成功!`);
|
|
26
|
-
console.debug(`✌️ 公共服务启动成功!`);
|
|
27
|
-
(_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'ready');
|
|
28
|
-
})
|
|
29
|
-
.on('error', (err) => {
|
|
30
|
-
logger_1.default.error(err);
|
|
31
|
-
console.error(err);
|
|
32
|
-
process.exit(1);
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=public.js.map
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const grpc_js_1 = require("@grpc/grpc-js");
|
|
30
|
-
const cron_1 = require("../protos/cron");
|
|
31
|
-
const addCron_1 = require("./addCron");
|
|
32
|
-
const delCron_1 = require("./delCron");
|
|
33
|
-
const health_1 = require("../protos/health");
|
|
34
|
-
const health_2 = require("./health");
|
|
35
|
-
const config_1 = __importDefault(require("../config"));
|
|
36
|
-
const logger_1 = __importDefault(require("../loaders/logger"));
|
|
37
|
-
const api_1 = require("../protos/api");
|
|
38
|
-
const Api = __importStar(require("./api"));
|
|
39
|
-
const server = new grpc_js_1.Server({ 'grpc.enable_http_proxy': 0 });
|
|
40
|
-
server.addService(health_1.HealthService, { check: health_2.check });
|
|
41
|
-
server.addService(cron_1.CronService, { addCron: addCron_1.addCron, delCron: delCron_1.delCron });
|
|
42
|
-
server.addService(api_1.ApiService, Api);
|
|
43
|
-
server.bindAsync(`0.0.0.0:${config_1.default.cronPort}`, grpc_js_1.ServerCredentials.createInsecure(), (err, port) => {
|
|
44
|
-
var _a;
|
|
45
|
-
if (err) {
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
logger_1.default.debug(`✌️ 定时服务启动成功!`);
|
|
49
|
-
console.debug(`✌️ 定时服务启动成功!`);
|
|
50
|
-
(_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'ready');
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=index.js.map
|
package/static/build/update.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
require("reflect-metadata"); // We need this in order to use @Decorators
|
|
7
|
-
const config_1 = __importDefault(require("./config"));
|
|
8
|
-
const express_1 = __importDefault(require("express"));
|
|
9
|
-
const depInjector_1 = __importDefault(require("./loaders/depInjector"));
|
|
10
|
-
const logger_1 = __importDefault(require("./loaders/logger"));
|
|
11
|
-
async function startServer() {
|
|
12
|
-
const app = (0, express_1.default)();
|
|
13
|
-
(0, depInjector_1.default)();
|
|
14
|
-
await require('./loaders/update').default({ app });
|
|
15
|
-
app
|
|
16
|
-
.listen(config_1.default.updatePort, '0.0.0.0', () => {
|
|
17
|
-
var _a;
|
|
18
|
-
logger_1.default.debug(`✌️ 更新服务启动成功!`);
|
|
19
|
-
console.debug(`✌️ 更新服务启动成功!`);
|
|
20
|
-
(_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'ready');
|
|
21
|
-
})
|
|
22
|
-
.on('error', (err) => {
|
|
23
|
-
logger_1.default.error(err);
|
|
24
|
-
console.error(err);
|
|
25
|
-
process.exit(1);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
startServer();
|
|
29
|
-
//# sourceMappingURL=update.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[8826,7243],{8826:function(e,t,n){n.r(t);var a=n(48305),i=n.n(a),r=n(72317),o=n(75271),l=n(45520),s=n(93481),u=n(16314),c=n(3475),p=n(56958),g=n(44084),d=n(34014),h=n(78060),b=n.n(h),P=n(65814),v=n(57113),f=n(52676);t.default=function(e){var t=e.dependence,n=e.handleCancel,a=e.visible,h=(0,o.useState)(""),m=i()(h,2),Z=m[0],k=m[1],y=(0,o.useState)(!0),x=i()(y,2),w=x[0],q=x[1],B=(0,o.useState)(!1),S=i()(B,2),C=S[0],T=S[1],_=(0,o.useState)(!0),A=i()(_,2),I=A[0],E=A[1],U=(0,o.useState)(!1),H=i()(U,2),K=H[0],j=H[1],D=(0,o.useState)(!1),M=i()(D,2),R=M[0],Q=M[1],X=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];localStorage.removeItem("logDependence"),n(e)};(0,o.useEffect)((function(){t&&(E(!0),u.W.get("".concat(c.Z.apiPrefix,"dependencies/").concat(t.id)).then((function(e){var n=e.code,a=e.data;if(200===n&&localStorage.getItem("logDependence")===String(t.id)){var i=((null==a?void 0:a.log)||[]).join("");k(i),q(!i.includes("结束时间")),j(i.includes("删除失败"))}})).finally((function(){E(!1)})))}),[t]);var W=function(e){var n=e.message,a=e.references;a.length>0&&a.includes(t.id)&&[v.Status.删除中,v.Status.安装中].includes(t.status)&&(n.includes("结束时间")&&(q(!1),j(n.includes("删除失败"))),k((function(e){return"".concat(e).concat(n)})))};return(0,o.useEffect)((function(){var e=P.Z.getInstance();return e.subscribe("installDependence",W),e.subscribe("uninstallDependence",W),function(){e.unsubscribe("installDependence",W),e.unsubscribe("uninstallDependence",W)}}),[t]),(0,o.useEffect)((function(){T(document.body.clientWidth<768)}),[]),(0,f.jsx)(l.Z,{title:(0,f.jsxs)(f.Fragment,{children:[w&&(0,f.jsx)(p.Z,{spin:!0}),!w&&(0,f.jsx)(g.Z,{}),(0,f.jsxs)("span",{style:{marginLeft:5},children:[r.ZP.get("日志 -")," ",t&&t.name]})," "]}),open:a,centered:!0,className:"log-modal",forceRender:!0,onOk:function(){return X()},onCancel:function(){return X()},footer:[(0,f.jsx)(s.Z,{type:"primary",onClick:function(){K?(Q(!0),u.W.delete("".concat(c.Z.apiPrefix,"dependencies/force"),{data:[t.id]}).then((function(e){var t=e.code;e.data,200===t&&X(!0)})).finally((function(){Q(!1)}))):X()},loading:R,children:K?r.ZP.get("强制删除"):r.ZP.get("知道了")})],children:(0,f.jsx)("div",{className:"log-container",children:I?(0,f.jsx)(d.Z,{}):(0,f.jsx)("pre",{style:C?{fontFamily:"Source Code Pro",zoom:.83}:{},children:(0,f.jsx)(b(),{children:Z})})})})}},57113:function(e,t,n){n.r(t),n.d(t,{DependenceStatus:function(){return a},Status:function(){return i}});var a=function(e){return e[e.installing=0]="installing",e[e.installed=1]="installed",e[e.installFailed=2]="installFailed",e[e.removing=3]="removing",e[e.removed=4]="removed",e[e.removeFailed=5]="removeFailed",e[e.queued=6]="queued",e[e.cancelled=7]="cancelled",e}({}),i=function(e){return e[e["安装中"]=0]="安装中",e[e["已安装"]=1]="已安装",e[e["安装失败"]=2]="安装失败",e[e["删除中"]=3]="删除中",e[e["已删除"]=4]="已删除",e[e["删除失败"]=5]="删除失败",e[e["队列中"]=6]="队列中",e[e["已取消"]=7]="已取消",e}({})},3475:function(e,t,n){var a=n(72317),i=window.__ENV__QlBaseUrl||"/";t.Z={siteName:a.ZP.get("青龙"),baseUrl:i,apiPrefix:"".concat(i,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Português",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:a.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:a.ZP.get("定时任务"),value:"crons"},{name:a.ZP.get("环境变量"),value:"envs"},{name:a.ZP.get("订阅管理"),value:"subscriptions"},{name:a.ZP.get("配置文件"),value:"configs"},{name:a.ZP.get("脚本管理"),value:"scripts"},{name:a.ZP.get("日志管理"),value:"logs"},{name:a.ZP.get("依赖管理"),value:"dependencies"},{name:a.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:a.ZP.get("定时任务"),envs:a.ZP.get("环境变量"),subscriptions:a.ZP.get("订阅管理"),configs:a.ZP.get("配置文件"),scripts:a.ZP.get("脚本管理"),logs:a.ZP.get("日志管理"),dependencies:a.ZP.get("依赖管理"),system:a.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:a.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:a.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:a.ZP.get("钉钉机器人")},{value:"weWorkBot",label:a.ZP.get("企业微信机器人")},{value:"weWorkApp",label:a.ZP.get("企业微信应用")},{value:"aibotk",label:a.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:a.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:a.ZP.get("群晖chat")},{value:"email",label:a.ZP.get("邮箱")},{value:"lark",label:a.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:a.ZP.get("自定义通知")},{value:"closed",label:a.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:a.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:a.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:a.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:a.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:a.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:a.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:a.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:a.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:a.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:a.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:a.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:a.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:a.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:a.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:a.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:a.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:a.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:a.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:a.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:a.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:a.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:a.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:a.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:a.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:a.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:a.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:a.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:a.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:a.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:a.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:a.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:a.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:a.ZP.get("请输入要发送的目标"),items:[{value:"room",label:a.ZP.get("群聊")},{value:"contact",label:a.ZP.get("好友")}]},{label:"aibotkName",tip:a.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:a.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:a.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:a.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:a.ZP.get("发送模板")},{label:"pushplusChannel",tip:a.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:a.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:a.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:a.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:a.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:a.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:a.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:a.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:a.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:a.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:a.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:a.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:a.ZP.get("邮箱地址"),required:!0},{label:"emailPass",tip:a.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0}],pushMe:[{label:"pushMeKey",tip:a.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:a.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:a.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:a.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:a.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:a.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:a.ZP.get("请求头Content-Type"),required:!0,items:[{value:"text/plain"},{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:a.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:a.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:a.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":a.ZP.get("登录"),"/initialization":a.ZP.get("初始化"),"/crontab":a.ZP.get("定时任务"),"/env":a.ZP.get("环境变量"),"/subscription":a.ZP.get("订阅管理"),"/config":a.ZP.get("配置文件"),"/script":a.ZP.get("脚本管理"),"/diff":a.ZP.get("对比工具"),"/log":a.ZP.get("日志管理"),"/setting":a.ZP.get("系统设置"),"/error":a.ZP.get("错误日志"),"/dependence":a.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},16314:function(e,t,n){n.d(t,{W:function(){return v}});var a=n(90228),i=n.n(a),r=n(87999),o=n.n(r),l=n(72317),s=n(61508),u=n(33839),c=n(3475),p=n(98783),g=n(69313),d=n(52676);s.ZP.config({duration:2});var h=Date.now(),b=g.Z.create({timeout:6e4,params:{t:h}}),P=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];b.interceptors.request.use((function(e){var t=localStorage.getItem(c.Z.authKey);return t&&!P.includes(e.url)?(e.headers.Authorization="Bearer ".concat(t),e):e})),b.interceptors.response.use(function(){var e=o()(i()().mark((function e(t){var n,a,r;return i()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.status,![502,504].includes(n)){e.next=5;break}p.history.push("/error"),e.next=18;break;case 5:if(401!==n){e.next=9;break}"/login"!==p.history.location.pathname&&(localStorage.removeItem(c.Z.authKey),p.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(a=t.data).code&&(r=a.message||a.data)&&u.Z.error({message:r,description:null!=a&&a.errors?(0,d.jsx)(d.Fragment,{children:null==a?void 0:a.errors.map((function(e){return(0,d.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",a);case 15:e.prev=15,e.t0=e.catch(9);case 17:case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}}),e,null,[[9,15]])})));return function(t){return e.apply(this,arguments)}}(),(function(e){if(e.response){var t=e.response.data?e.response.data.message||e.message:e.response.statusText,n=e.response.status;if([502,504].includes(n))p.history.push("/error");else if(401===n)"/login"!==p.history.location.pathname&&(s.ZP.error(l.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(c.Z.authKey),p.history.push("/login"));else{var a,i,r,o;if("function"==typeof(null===(a=e.config)||void 0===a?void 0:a.onError))return null===(o=e.config)||void 0===o?void 0:o.onError(e.response);t&&u.Z.error({message:t,description:null!==(i=e.response)&&void 0!==i&&null!==(i=i.data)&&void 0!==i&&i.errors?(0,d.jsx)(d.Fragment,{children:null===(r=e.response)||void 0===r||null===(r=r.data)||void 0===r||null===(r=r.errors)||void 0===r?void 0:r.map((function(e){return(0,d.jsxs)("div",{children:[e.message," (",e.value,")"]})}))}):void 0})}}else console.log(e.message);return Promise.reject(e)}));var v=b},65814:function(e,t,n){var a=n(15558),i=n.n(a),r=n(67825),o=n.n(r),l=n(90228),s=n.n(l),u=n(87999),c=n.n(u),p=n(25298),g=n.n(p),d=n(17069),h=n.n(d),b=n(82092),P=n.n(b),v=n(78078),f=n.n(v),m=["type"],Z=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};g()(this,e),P()(this,"url",void 0),P()(this,"socket",null),P()(this,"subscriptions",new Map),P()(this,"options",void 0),P()(this,"reconnectAttempts",0),P()(this,"heartbeatTimeout",null),P()(this,"state","closed"),this.url=t,this.options={maxReconnectAttempts:n.maxReconnectAttempts||5,reconnectInterval:n.reconnectInterval||3e3,heartbeatInterval:n.heartbeatInterval||3e4},this.init()}var t,n;return h()(e,[{key:"init",value:(n=c()(s()().mark((function e(){var t=this;return s()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,this.state="connecting",this.emit("connecting");case 3:if(!(this.reconnectAttempts<this.options.maxReconnectAttempts)){e.next=16;break}return this.socket=new(f())(this.url),this.setupEventListeners(),this.startHeartbeat(),e.next=9,this.waitForClose();case 9:return this.stopHeartbeat(),this.socket=null,this.reconnectAttempts++,e.next=14,new Promise((function(e){return setTimeout(e,t.options.reconnectInterval)}));case 14:e.next=3;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(0),this.handleError(e.t0);case 21:case"end":return e.stop()}}),e,this,[[0,18]])}))),function(){return n.apply(this,arguments)})},{key:"setupEventListeners",value:function(){var e=this;this.socket&&(this.socket.onopen=function(){e.state="open",e.emit("open")},this.socket.onmessage=function(t){var n=JSON.parse(t.data);e.dispatchMessage(n)},this.socket.onclose=function(){e.state="closed",e.emit("close")})}},{key:"waitForClose",value:(t=c()(s()().mark((function e(){var t;return s()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((null===(t=this.socket)||void 0===t?void 0:t.readyState)===f().CLOSED){e.next=5;break}return e.next=3,new Promise((function(e){return setTimeout(e,100)}));case 3:e.next=0;break;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"subscribe",value:function(e,t){var n=this.subscriptions.get(e)||new Set;if(!n.has(t)){n.add(t),this.subscriptions.set(e,n);var a={action:"subscribe",topic:e};this.send(a)}}},{key:"unsubscribe",value:function(e,t){var n=this.subscriptions.get(e)||new Set;if(n.has(t)){n.delete(t);var a={action:"unsubscribe",topic:e};this.send(a)}}},{key:"send",value:function(e){var t;(null===(t=this.socket)||void 0===t?void 0:t.readyState)===f().OPEN&&this.socket.send(JSON.stringify(e))}},{key:"dispatchMessage",value:function(e){var t=e.type,n=o()(e,m),a=this.subscriptions.get(t)||new Set;i()(a).forEach((function(e){return e(n)}))}},{key:"startHeartbeat",value:function(){var e=this;this.heartbeatTimeout=setInterval((function(){var t;(null===(t=e.socket)||void 0===t?void 0:t.readyState)===f().OPEN&&e.socket.send(JSON.stringify({type:"heartbeat"}))}),this.options.heartbeatInterval)}},{key:"stopHeartbeat",value:function(){this.heartbeatTimeout&&clearInterval(this.heartbeatTimeout)}},{key:"close",value:function(){this.socket&&(this.state="closed",this.stopHeartbeat(),this.socket.close(),this.emit("close"))}},{key:"handleError",value:function(e){console.error("WebSocket错误:",e),this.emit("error",e)}},{key:"on",value:function(e,t){}},{key:"emit",value:function(e,t){}}],[{key:"getInstance",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0;return e.instance||(e.instance=new e(t,n)),e.instance}}]),e}();P()(Z,"instance",null),t.Z=Z}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[8851],{3475:function(e,a,i){"use strict";var r=i(72317),t=window.__ENV__QlBaseUrl||"/";a.Z={siteName:r.ZP.get("青龙"),baseUrl:t,apiPrefix:"".concat(t,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Português",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:r.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:r.ZP.get("定时任务"),value:"crons"},{name:r.ZP.get("环境变量"),value:"envs"},{name:r.ZP.get("订阅管理"),value:"subscriptions"},{name:r.ZP.get("配置文件"),value:"configs"},{name:r.ZP.get("脚本管理"),value:"scripts"},{name:r.ZP.get("日志管理"),value:"logs"},{name:r.ZP.get("依赖管理"),value:"dependencies"},{name:r.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:r.ZP.get("定时任务"),envs:r.ZP.get("环境变量"),subscriptions:r.ZP.get("订阅管理"),configs:r.ZP.get("配置文件"),scripts:r.ZP.get("脚本管理"),logs:r.ZP.get("日志管理"),dependencies:r.ZP.get("依赖管理"),system:r.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:r.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:r.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:r.ZP.get("钉钉机器人")},{value:"weWorkBot",label:r.ZP.get("企业微信机器人")},{value:"weWorkApp",label:r.ZP.get("企业微信应用")},{value:"aibotk",label:r.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:r.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:r.ZP.get("群晖chat")},{value:"email",label:r.ZP.get("邮箱")},{value:"lark",label:r.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:r.ZP.get("自定义通知")},{value:"closed",label:r.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:r.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:r.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:r.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:r.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:r.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:r.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:r.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:r.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:r.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:r.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:r.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:r.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:r.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:r.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:r.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:r.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:r.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:r.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:r.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:r.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:r.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:r.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:r.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:r.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:r.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:r.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:r.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:r.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:r.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:r.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:r.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:r.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:r.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:r.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:r.ZP.get("请输入要发送的目标"),items:[{value:"room",label:r.ZP.get("群聊")},{value:"contact",label:r.ZP.get("好友")}]},{label:"aibotkName",tip:r.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:r.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:r.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:r.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:r.ZP.get("发送模板")},{label:"pushplusChannel",tip:r.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:r.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:r.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:r.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:r.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:r.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:r.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:r.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:r.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:r.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:r.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:r.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:r.ZP.get("邮箱地址"),required:!0},{label:"emailPass",tip:r.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0}],pushMe:[{label:"pushMeKey",tip:r.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:r.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:r.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:r.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:r.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:r.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:r.ZP.get("请求头Content-Type"),required:!0,items:[{value:"text/plain"},{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:r.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:r.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:r.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":r.ZP.get("登录"),"/initialization":r.ZP.get("初始化"),"/crontab":r.ZP.get("定时任务"),"/env":r.ZP.get("环境变量"),"/subscription":r.ZP.get("订阅管理"),"/config":r.ZP.get("配置文件"),"/script":r.ZP.get("脚本管理"),"/diff":r.ZP.get("对比工具"),"/log":r.ZP.get("日志管理"),"/setting":r.ZP.get("系统设置"),"/error":r.ZP.get("错误日志"),"/dependence":r.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},97302:function(e,a,i){"use strict";i.d(a,{eY:function(){return r},um:function(){return t},z:function(){return o}});var r=" ",t={".py":"python",".js":"javascript",".mjs":"javascript",".sh":"shell",".ts":"typescript",".ini":"ini",".json":"json"},o=["UTC","Africa/Abidjan","Africa/Accra","Africa/Addis Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar es Salaam","Africa/Djibouti","Africa/Douala","Africa/El Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La Rioja","America/Argentina/Mendoza","America/Argentina/Rio Gallegos","America/Argentina/Salta","America/Argentina/San Juan","America/Argentina/San Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa Vista","America/Bogota","America/Boise","America/Cambridge Bay","America/Campo Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad Juarez","America/Costa Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El Salvador","America/Fort Nelson","America/Fortaleza","America/Glace Bay","America/Goose Bay","America/Grand Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La Paz","America/Lima","America/Los Angeles","America/Lower Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New York","America/Nome","America/Noronha","America/North Dakota/Beulah","America/North Dakota/Center","America/North Dakota/New Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port of Spain","America/Port-au-Prince","America/Porto Velho","America/Puerto Rico","America/Punta Arenas","America/Rankin Inlet","America/Recife","America/Regina","America/Resolute","America/Rio Branco","America/Santarem","America/Santiago","America/Santo Domingo","America/Sao Paulo","America/Scoresbysund","America/Sitka","America/St Barthelemy","America/St Johns","America/St Kitts","America/St Lucia","America/St Thomas","America/St Vincent","America/Swift Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho Chi Minh","Asia/Hong Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South Georgia","Atlantic/St Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Etc/GMT","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle of Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"]},16314:function(e,a,i){"use strict";i.d(a,{W:function(){return P}});var r=i(90228),t=i.n(r),o=i(87999),n=i.n(o),c=i(72317),s=i(61508),l=i(33839),u=i(3475),p=i(98783),g=i(69313),A=i(52676);s.ZP.config({duration:2});var d=Date.now(),m=g.Z.create({timeout:6e4,params:{t:d}}),h=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];m.interceptors.request.use((function(e){var a=localStorage.getItem(u.Z.authKey);return a&&!h.includes(e.url)?(e.headers.Authorization="Bearer ".concat(a),e):e})),m.interceptors.response.use(function(){var e=n()(t()().mark((function e(a){var i,r,o;return t()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=a.status,![502,504].includes(i)){e.next=5;break}p.history.push("/error"),e.next=18;break;case 5:if(401!==i){e.next=9;break}"/login"!==p.history.location.pathname&&(localStorage.removeItem(u.Z.authKey),p.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(r=a.data).code&&(o=r.message||r.data)&&l.Z.error({message:o,description:null!=r&&r.errors?(0,A.jsx)(A.Fragment,{children:null==r?void 0:r.errors.map((function(e){return(0,A.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",r);case 15:e.prev=15,e.t0=e.catch(9);case 17:case 18:return e.abrupt("return",a);case 19:case"end":return e.stop()}}),e,null,[[9,15]])})));return function(a){return e.apply(this,arguments)}}(),(function(e){if(e.response){var a=e.response.data?e.response.data.message||e.message:e.response.statusText,i=e.response.status;if([502,504].includes(i))p.history.push("/error");else if(401===i)"/login"!==p.history.location.pathname&&(s.ZP.error(c.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(u.Z.authKey),p.history.push("/login"));else{var r,t,o,n;if("function"==typeof(null===(r=e.config)||void 0===r?void 0:r.onError))return null===(n=e.config)||void 0===n?void 0:n.onError(e.response);a&&l.Z.error({message:a,description:null!==(t=e.response)&&void 0!==t&&null!==(t=t.data)&&void 0!==t&&t.errors?(0,A.jsx)(A.Fragment,{children:null===(o=e.response)||void 0===o||null===(o=o.data)||void 0===o||null===(o=o.errors)||void 0===o?void 0:o.map((function(e){return(0,A.jsxs)("div",{children:[e.message," (",e.value,")"]})}))}):void 0})}}else console.log(e.message);return Promise.reject(e)}));var P=m},48916:function(e,a,i){"use strict";i.d(a,{DY:function(){return A},FA:function(){return m},H$:function(){return f},I1:function(){return g},W9:function(){return u},ZP:function(){return l},o4:function(){return b},rS:function(){return P},w7:function(){return p},x$:function(){return d}});var r=i(15558),t=i.n(r),o=i(72317),n=i(97302),c=i(94046),s=i.n(c);function l(){var e=navigator.userAgent.toLowerCase(),a=function(a){return a.test(e)},i=function(a){return(e.match(a)||[]).toString().replace(/[^0-9|_.]/g,"").replace(/_/g,".")},r="unknow";a(/windows|win32|win64|wow32|wow64/g)?r="windows":a(/macintosh|macintel/g)?r="macos":a(/x11/g)?r="linux":a(/android|adr/g)?r="android":a(/ios|iphone|ipad|ipod|iwatch/g)&&(r="ios");var t="unknow";"windows"===r?a(/windows nt 5.0|windows 2000/g)?t="2000":a(/windows nt 5.1|windows xp/g)?t="xp":a(/windows nt 5.2|windows 2003/g)?t="2003":a(/windows nt 6.0|windows vista/g)?t="vista":a(/windows nt 6.1|windows 7/g)?t="7":a(/windows nt 6.2|windows 8/g)?t="8":a(/windows nt 6.3|windows 8.1/g)?t="8.1":a(/windows nt 10.0|windows 10/g)&&(t="10"):"macos"===r?t=i(/os x [\d._]+/g):"android"===r?t=i(/android [\d._]+/g):"ios"===r&&(t=i(/os [\d._]+/g));var o="unknow";"windows"===r||"macos"===r||"linux"===r?o="desktop":("android"===r||"ios"===r||a(/mobile/g))&&(o="mobile");var n="unknow",c="unknow";a(/applewebkit/g)?(n="webkit",a(/edge/g)?c="edge":a(/opr/g)?c="opera":a(/chrome/g)?c="chrome":a(/safari/g)&&(c="safari")):a(/gecko/g)&&a(/firefox/g)?(n="gecko",c="firefox"):a(/presto/g)?(n="presto",c="opera"):a(/trident|compatible|msie/g)&&(n="trident",c="iexplore");var s="unknow";"webkit"===n?s=i(/applewebkit\/[\d._]+/g):"gecko"===n?s=i(/gecko\/[\d._]+/g):"presto"===n?s=i(/presto\/[\d._]+/g):"trident"===n&&(s=i(/trident\/[\d._]+/g));var l="unknow";"chrome"===c?l=i(/chrome\/[\d._]+/g):"safari"===c?l=i(/version\/[\d._]+/g):"firefox"===c?l=i(/firefox\/[\d._]+/g):"opera"===c?l=i(/opr\/[\d._]+/g):"iexplore"===c?l=i(/(msie [\d._]+)|(rv:[\d._]+)/g):"edge"===c&&(l=i(/edge\/[\d._]+/g));var u="none",p="unknow";a(/micromessenger/g)?(u="wechat",p=i(/micromessenger\/[\d._]+/g)):a(/qqbrowser/g)?(u="qq",p=i(/qqbrowser\/[\d._]+/g)):a(/ucbrowser/g)?(u="uc",p=i(/ucbrowser\/[\d._]+/g)):a(/qihu 360se/g)?u="360":a(/2345explorer/g)?(u="2345",p=i(/2345explorer\/[\d._]+/g)):a(/metasr/g)?u="sougou":a(/lbbrowser/g)?u="liebao":a(/maxthon/g)&&(u="maxthon",p=i(/maxthon\/[\d._]+/g));var g=Object.assign({engine:n,engineVs:s,platform:o,supporter:c,supporterVs:l,system:r,systemVs:t},"none"===u?{}:{shell:u,shellVs:p});return console.log("%c\n .d88b. d888888b d8b db d888b db .d88b. d8b db d888b \n.8P Y8. `88' 888o 88 88' Y8b 88 .8P Y8. 888o 88 88' Y8b \n88 88 88 88V8o 88 88 88 88 88 88V8o 88 88 \n88 88 88 88 V8o88 88 ooo 88 88 88 88 V8o88 88 ooo \n`8P d8' .88. 88 V888 88. ~8~ 88booo. `8b d8' 88 V888 88. ~8~ \n `Y88'Y8 Y888888P VP V8P Y888P Y88888P `Y88P' VP V8P Y888P \n \n \n","color: blue;font-size: 14px;"),console.log("%c忘形雨笠烟蓑,知心牧唱樵歌。明月清风共我,闲人三个,从他今古消磨。\n","color: yellow;font-size: 18px;"),console.log("%c青龙运行环境:\n\n系统:".concat(g.system,"/").concat(g.systemVs,"\n浏览器:").concat(g.supporter,"/").concat(g.supporterVs,"\n内核:").concat(g.engine,"/").concat(g.engineVs),"color: green;font-size: 14px;font-weight: bold;"),g}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.extraHeight,i=e.target;void 0===a&&(a=99);var r=null,t=0;(r=i||document.querySelector(".ant-table-wrapper"))&&(t=r.getBoundingClientRect().top);var o=document.body.clientHeight-t-a;return o}function p(e,a){var i,r,t=window.URL||window.webkitURL||window,o=new Blob([a]),n=document.createElementNS("http://www.w3.org/1999/xhtml","a");n.href=t.createObjectURL(o),n.download=e,i=n,(r=document.createEvent("MouseEvents")).initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),i.dispatchEvent(r)}function g(e,a,i){var r=t()(e),o=[];return function e(r){if(r)for(var t=0;t<(null==r?void 0:r.length);t++){if(a(r[t]))return i?void(r[t].children?r[t].children.unshift(i):r[t].children=[i]):void r.splice(t,1);r[t].children&&(o.push(r[t].key),e(r[t].children))}}(r),r}function A(e,a){var i;return function e(r){if(r)for(var t=0;t<(null==r?void 0:r.length);t++)a(r[t])?i=r[t]:r[t].children&&e(r[t].children)}(t()(e)),i}function d(e){return[n.eY,o.ZP.get("执行结束")].some((function(a){return e.includes(a)}))}function m(e){var a=e.split(" ");if("repo"===a[1]||"raw"===a[1])return a[2];var i=a.find((function(e){return[".js",".ts",".sh",".py"].some((function(a){return e.endsWith(a)}))}));if(i){var r,t,o="".concat(window.__ENV__QL_DIR,"/data/scripts");i.startsWith(o)&&(i=i.replace(o,""));var n=i.lastIndexOf("/");return n>=0?(t=i.slice(n+1),r=i.slice(0,n)):(t=i,r=""),[t,r]}}function h(e){try{var a=s().parseExpression(e);if(a)return a.next().toDate()}catch(e){}return null}function P(e,a){var i=h(e);return null!=a&&a.length&&a.forEach((function(e){var a=h(e.schedule);a&&(!i||a<i)&&(i=a)})),i}function f(e){var a=function(e){if(!e)return"";var a=e.split(".");return".".concat(a[a.length-1])}(e);return n.um[a]}function b(){var e=document.createElement("div");e.style.position="fixed",e.style.top="0px",e.style.left="0px",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="transparent",e.style.zIndex="9999",document.body.appendChild(e),e.addEventListener("click",(function(e){e.stopPropagation(),e.preventDefault()})),document.body.style.overflow="hidden"}},50810:function(){}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[1717],{44224:function(e,t,n){var i=(0,n(19919).Z)({scriptUrl:["//at.alicdn.com/t/c/font_3354854_lc939gab1iq.js"]});t.Z=i},84903:function(e,t,n){n.r(t),n.d(t,{default:function(){return A}});var i=n(26068),a=n.n(i),o=n(48305),s=n.n(o),r=n(3475),c=n(9364),u=n(16314),l=n(81379),d=n(1371),h=n(5323),p=n(41206),f=n(34014),m=n(99192),g=n(98783),v=n(71571),x=n(65823),k=n(59816),b=n(87893),y=n(85950),Z=n(70892),w=n(75271),j=n(72317),P=n(86563),S=n.n(P),I=n(76991),E=n(44224),q=n(52676),L={route:{routes:[{name:j.ZP.get("登录"),path:"/login",hideInMenu:!0,component:"@/pages/login/index"},{name:j.ZP.get("初始化"),path:"/initialization",hideInMenu:!0,component:"@/pages/initialization/index"},{name:j.ZP.get("错误"),path:"/error",hideInMenu:!0,component:"@/pages/error/index"},{path:"/crontab",name:j.ZP.get("定时任务"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-crontab"}),component:"@/pages/crontab/index"},{path:"/subscription",name:j.ZP.get("订阅管理"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-subs"}),component:"@/pages/subscription/index"},{path:"/env",name:j.ZP.get("环境变量"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-env"}),component:"@/pages/env/index"},{path:"/config",name:j.ZP.get("配置文件"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-config"}),component:"@/pages/config/index"},{path:"/script",name:j.ZP.get("脚本管理"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-script"}),component:"@/pages/script/index"},{path:"/dependence",name:j.ZP.get("依赖管理"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-dependence"}),component:"@/pages/dependence/index"},{path:"/log",name:j.ZP.get("日志管理"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-log"}),component:"@/pages/log/index"},{path:"/diff",name:j.ZP.get("对比工具"),icon:(0,q.jsx)(E.Z,{type:"ql-icon-diff"}),component:"@/pages/diff/index"},{path:"/setting",name:j.ZP.get("系统设置"),icon:(0,q.jsx)(I.Z,{}),component:"@/pages/password/index"}]},navTheme:"light",fixSiderbar:!0,contentWidth:"Fixed",splitMenus:!1,siderWidth:180},C=n(83383);var z=n(65814);function A(){var e=(0,g.useLocation)(),t=(0,c.e)(),n=(0,c.F)(),i=n.theme,o=n.reloadTheme,P=(0,w.useState)({}),I=s()(P,2),E=I[0],A=I[1],M=(0,w.useState)(!0),T=s()(M,2),_=T[0],N=T[1],O=(0,w.useState)(),F=s()(O,2),R=F[0],W=F[1],H=(0,w.useState)(!1),U=s()(H,2),D=U[0],J=U[1],K=(0,w.useState)(!0),B=s()(K,2),Q=B[0],G=B[1],V=v||{},X=V.enable,Y=V.disable,$=(V.exportGeneratedCSS,V.setFetchMethod),ee=V.auto,te=function(){u.W.get("".concat(r.Z.apiPrefix,"system")).then((function(e){var t=e.code,n=e.data;200===t&&(W(n),n.isInitialized?(n.version,C._m.config({paths:{vs:"".concat(r.Z.baseUrl,"monaco-editor/min/vs")},"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),ne()):g.history.push("/initialization"))})).catch((function(e){console.log(e)}))},ne=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t&&N(!0),u.W.get("".concat(r.Z.apiPrefix,"user")).then((function(n){var i=n.code,a=n.data;200===i&&a.username&&(A(a),"/"===e.pathname&&g.history.push("/crontab")),t&&N(!1)})).catch((function(e){console.log(e)}))},ie=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];ne(e)};if((0,w.useEffect)((function(){R&&R.isInitialized&&!E&&ne()}),[e.pathname]),(0,w.useEffect)((function(){u.W.get("".concat(r.Z.apiPrefix,"public/health")).then((function(e){var t;1===(null==e||null===(t=e.data)||void 0===t?void 0:t.status)?te():g.history.push("/error")})).catch((function(e){g.history.push("/error")})).finally((function(){return G(!1)}))}),[]),(0,w.useEffect)((function(){"vs-dark"===i?document.body.setAttribute("data-dark","true"):document.body.setAttribute("data-dark","false")}),[i]),(0,w.useEffect)((function(){S()();var e=localStorage.getItem("qinglong_dark_theme")||"auto";if("undefined"!=typeof window&&void 0!==window.matchMedia)return v?($(fetch),"dark"===e?X({}):"light"===e?Y():ee({}),function(){Y()}):function(){return null}}),[]),(0,w.useEffect)((function(){if(E&&E.username){var e=z.Z.getInstance("".concat(window.location.origin).concat(r.Z.apiPrefix,"ws?token=").concat(localStorage.getItem(r.Z.authKey)));return function(){e.close()}}}),[E]),(0,w.useEffect)((function(){window.onload=function(){var e=performance.timing;console.log("白屏时间: ".concat(e.responseStart-e.navigationStart)),console.log("请求完毕至DOM加载: ".concat(e.domInteractive-e.responseEnd)),console.log("解释dom树耗时: ".concat(e.domComplete-e.domInteractive)),console.log("从开始至load总耗时: ".concat(e.loadEventEnd-e.navigationStart))}}),[]),Q)return(0,q.jsx)(f.Z,{});if(["/login","/initialization","/error"].includes(e.pathname)&&(null!=R&&R.isInitialized&&"/initialization"===e.pathname&&g.history.push("/crontab"),R||"/error"===e.pathname))return(0,q.jsx)(g.Outlet,{context:a()(a()({},t),{},{theme:i,user:E,reloadUser:ie,reloadTheme:o})});var ae=navigator.userAgent.includes("Firefox"),oe=navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome"),se=navigator.userAgent.includes("QQBrowser"),re={items:[{label:j.ZP.get("退出登录"),className:"side-menu-user-drop-menu",onClick:function(){u.W.post("".concat(r.Z.apiPrefix,"user/logout")).then((function(){localStorage.removeItem(r.Z.authKey),g.history.push("/login")}))},key:"logout",icon:(0,q.jsx)(l.Z,{})}]};return _?(0,q.jsx)(f.Z,{}):(0,q.jsx)(m.ZP,a()(a()({selectedKeys:[e.pathname],loading:_,logo:(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(x.Z,{preview:!1,src:"https://qn.whyour.cn/logo.png"}),(0,q.jsxs)("div",{className:"title",children:[(0,q.jsx)("span",{className:"title",children:j.ZP.get("青龙")}),(0,q.jsx)("span",{onClick:function(e){e.stopPropagation(),window.open(null==R?void 0:R.changeLogLink,"_blank")},children:(0,q.jsx)(k.Z,{title:"develop"===(null==R?void 0:R.branch)?j.ZP.get("开发版"):j.ZP.get("正式版"),children:(0,q.jsx)(b.Z,{size:"small",dot:"develop"===(null==R?void 0:R.branch),children:(0,q.jsxs)("span",{style:{fontSize:ae?9:12,color:"#666",marginLeft:2,zoom:oe?.66:.8,letterSpacing:se?-2:0},children:["v",null==R?void 0:R.version]})})})})]})]}),title:!1,menuItemRender:function(t,n){return t.isUrl||!t.path||e.pathname===t.path?n:(0,q.jsx)(g.Link,{to:t.path,children:n})},pageTitleRender:function(t,n,i){var a=r.Z.documentTitleMap[e.pathname]||j.ZP.get("未找到");return"".concat(a," - ").concat(j.ZP.get("青龙"))},onCollapse:J,collapsed:D,rightContentRender:function(){return t.isPhone&&(0,q.jsx)(y.Z,{menu:re,placement:"bottomRight",trigger:["click"],children:(0,q.jsxs)("span",{className:"side-menu-user-wrapper",children:[(0,q.jsx)(Z.C,{shape:"square",size:"small",icon:(0,q.jsx)(d.Z,{}),src:E.avatar?"".concat(r.Z.apiPrefix,"static/").concat(E.avatar):""}),(0,q.jsx)("span",{style:{marginLeft:5},children:E.username})]})})},collapsedButtonRender:function(e){return(0,q.jsxs)("span",{className:"side-menu-container",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[!e&&!t.isPhone&&(0,q.jsx)(y.Z,{menu:re,placement:"topLeft",trigger:["hover"],children:(0,q.jsxs)("span",{className:"side-menu-user-wrapper",children:[(0,q.jsx)(Z.C,{shape:"square",size:"small",icon:(0,q.jsx)(d.Z,{}),src:E.avatar?"".concat(r.Z.apiPrefix,"static/").concat(E.avatar):""}),(0,q.jsx)("span",{style:{marginLeft:5},children:E.username})]})}),(0,q.jsx)("span",{className:"side-menu-collapse-button",onClick:function(){return J(!e)},children:e?(0,q.jsx)(h.Z,{}):(0,q.jsx)(p.Z,{})})]})}},L),{},{children:(0,q.jsx)(g.Outlet,{context:a()(a()({},t),{},{theme:i,user:E,reloadUser:ie,reloadTheme:o,systemInfo:R})})}))}},9364:function(e,t,n){n.d(t,{F:function(){return c},e:function(){return r}});var i=n(48305),a=n.n(i),o=n(75271),s=n(48916),r=function(){var e=(0,o.useState)("100%"),t=a()(e,2),n=t[0],i=t[1],r=(0,o.useState)(0),c=a()(r,2),u=c[0],l=c[1],d=(0,o.useState)(-48),h=a()(d,2),p=h[0],f=h[1],m=(0,o.useState)(!1),g=a()(m,2),v=g[0],x=g[1],k=(0,o.useMemo)((function(){return(0,s.ZP)()}),[]).platform;return(0,o.useEffect)((function(){"mobile"===k&&document.body.offsetWidth<768?(i("auto"),l(0),f(0),x(!0),document.body.setAttribute("data-mode","phone")):(i("100%"),l(0),f(-48),x(!1),document.body.setAttribute("data-mode","desktop"))}),[]),{headerStyle:{padding:"4px 16px 4px 15px",position:"sticky",top:0,left:0,zIndex:20,marginTop:p,width:n,marginLeft:u},isPhone:v}},c=function(){var e=(0,o.useState)(),t=a()(e,2),n=t[0],i=t[1];return(0,o.useEffect)((function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=localStorage.getItem("qinglong_dark_theme"),n=e.matches&&"light"!==t||"dark"===t;i(n?"vs-dark":"vs");var a=function(e){"auto"!==t&&t||(e.matches?i("vs-dark"):i("vs"))};"function"==typeof e.addEventListener?e.addEventListener("change",a):"function"==typeof e.addListener&&e.addListener(a)}),[]),{theme:n,reloadTheme:function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=localStorage.getItem("qinglong_dark_theme"),n=e.matches&&"light"!==t||"dark"===t;i(n?"vs-dark":"vs")}}}},65814:function(e,t,n){var i=n(15558),a=n.n(i),o=n(67825),s=n.n(o),r=n(90228),c=n.n(r),u=n(87999),l=n.n(u),d=n(25298),h=n.n(d),p=n(17069),f=n.n(p),m=n(82092),g=n.n(m),v=n(78078),x=n.n(v),k=["type"],b=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};h()(this,e),g()(this,"url",void 0),g()(this,"socket",null),g()(this,"subscriptions",new Map),g()(this,"options",void 0),g()(this,"reconnectAttempts",0),g()(this,"heartbeatTimeout",null),g()(this,"state","closed"),this.url=t,this.options={maxReconnectAttempts:n.maxReconnectAttempts||5,reconnectInterval:n.reconnectInterval||3e3,heartbeatInterval:n.heartbeatInterval||3e4},this.init()}var t,n;return f()(e,[{key:"init",value:(n=l()(c()().mark((function e(){var t=this;return c()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,this.state="connecting",this.emit("connecting");case 3:if(!(this.reconnectAttempts<this.options.maxReconnectAttempts)){e.next=16;break}return this.socket=new(x())(this.url),this.setupEventListeners(),this.startHeartbeat(),e.next=9,this.waitForClose();case 9:return this.stopHeartbeat(),this.socket=null,this.reconnectAttempts++,e.next=14,new Promise((function(e){return setTimeout(e,t.options.reconnectInterval)}));case 14:e.next=3;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(0),this.handleError(e.t0);case 21:case"end":return e.stop()}}),e,this,[[0,18]])}))),function(){return n.apply(this,arguments)})},{key:"setupEventListeners",value:function(){var e=this;this.socket&&(this.socket.onopen=function(){e.state="open",e.emit("open")},this.socket.onmessage=function(t){var n=JSON.parse(t.data);e.dispatchMessage(n)},this.socket.onclose=function(){e.state="closed",e.emit("close")})}},{key:"waitForClose",value:(t=l()(c()().mark((function e(){var t;return c()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((null===(t=this.socket)||void 0===t?void 0:t.readyState)===x().CLOSED){e.next=5;break}return e.next=3,new Promise((function(e){return setTimeout(e,100)}));case 3:e.next=0;break;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"subscribe",value:function(e,t){var n=this.subscriptions.get(e)||new Set;if(!n.has(t)){n.add(t),this.subscriptions.set(e,n);var i={action:"subscribe",topic:e};this.send(i)}}},{key:"unsubscribe",value:function(e,t){var n=this.subscriptions.get(e)||new Set;if(n.has(t)){n.delete(t);var i={action:"unsubscribe",topic:e};this.send(i)}}},{key:"send",value:function(e){var t;(null===(t=this.socket)||void 0===t?void 0:t.readyState)===x().OPEN&&this.socket.send(JSON.stringify(e))}},{key:"dispatchMessage",value:function(e){var t=e.type,n=s()(e,k),i=this.subscriptions.get(t)||new Set;a()(i).forEach((function(e){return e(n)}))}},{key:"startHeartbeat",value:function(){var e=this;this.heartbeatTimeout=setInterval((function(){var t;(null===(t=e.socket)||void 0===t?void 0:t.readyState)===x().OPEN&&e.socket.send(JSON.stringify({type:"heartbeat"}))}),this.options.heartbeatInterval)}},{key:"stopHeartbeat",value:function(){this.heartbeatTimeout&&clearInterval(this.heartbeatTimeout)}},{key:"close",value:function(){this.socket&&(this.state="closed",this.stopHeartbeat(),this.socket.close(),this.emit("close"))}},{key:"handleError",value:function(e){console.error("WebSocket错误:",e),this.emit("error",e)}},{key:"on",value:function(e,t){}},{key:"emit",value:function(e,t){}}],[{key:"getInstance",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0;return e.instance||(e.instance=new e(t,n)),e.instance}}]),e}();g()(b,"instance",null),t.Z=b}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[803,2096],{77831:function(e,t,r){r.r(t);var a=r(90228),o=r.n(a),l=r(26068),n=r.n(l),i=r(87999),s=r.n(i),u=r(48305),c=r.n(u),p=r(72317),d=r(75271),g=r(35181),h=r(72338),b=r(45520),m=r(94747),P=r(17082),f=r(16314),Z=r(3475),v=r(52676),y=g.Z.Option,x=function(e){return e[e.nodejs=0]="nodejs",e[e.python3=1]="python3",e[e.linux=2]="linux",e}(x||{});t.default=function(e){var t=e.dependence,r=e.handleCancel,a=e.visible,l=e.defaultType,i=h.Z.useForm(),u=c()(i,1)[0],k=(0,d.useState)(!1),w=c()(k,2),C=w[0],q=w[1],B=function(){var e=s()(o()().mark((function e(a){var l,i,s,u,c,p,d,g,h,b;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return q(!0),l=a.name,i=a.split,s=a.type,u=a.remark,c=t?"put":"post",t?p=n()(n()({},a),{},{id:t.id}):"1"===i?(d=l.includes("&")?"&":"\n",p=l.split(d).map((function(e){return{name:e,type:s,remark:u}}))):p=[{name:l,type:s,remark:u}],e.prev=4,e.next=7,f.W[c]("".concat(Z.Z.apiPrefix,"dependencies"),p);case 7:g=e.sent,h=g.code,b=g.data,200===h&&r(b),q(!1),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(4),q(!1);case 17:case"end":return e.stop()}}),e,null,[[4,14]])})));return function(t){return e.apply(this,arguments)}}();return(0,d.useEffect)((function(){u.resetFields()}),[t,a]),(0,v.jsx)(b.Z,{title:t?p.ZP.get("编辑依赖"):p.ZP.get("创建依赖"),open:a,forceRender:!0,centered:!0,maskClosable:!1,onOk:function(){u.validateFields().then((function(e){B(e)})).catch((function(e){console.log("Validate Failed:",e)}))},onCancel:function(){return r()},confirmLoading:C,children:(0,v.jsxs)(h.Z,{form:u,layout:"vertical",name:"dependence_modal",initialValues:t,children:[(0,v.jsx)(h.Z.Item,{name:"type",label:p.ZP.get("依赖类型"),initialValue:x[l],children:(0,v.jsx)(g.Z,{children:Z.Z.dependenceTypes.map((function(e,t){return(0,v.jsx)(y,{value:t,children:e},t)}))})}),!t&&(0,v.jsx)(h.Z.Item,{name:"split",label:p.ZP.get("自动拆分"),initialValue:"0",tooltip:p.ZP.get("多个依赖是否换行分割"),children:(0,v.jsxs)(m.ZP.Group,{children:[(0,v.jsx)(m.ZP,{value:"1",children:p.ZP.get("是")}),(0,v.jsx)(m.ZP,{value:"0",children:p.ZP.get("否")})]})}),(0,v.jsx)(h.Z.Item,{name:"name",label:p.ZP.get("名称"),rules:[{required:!0,message:p.ZP.get("请输入依赖名称,支持指定版本"),whitespace:!0}],children:(0,v.jsx)(P.Z.TextArea,{rows:4,autoSize:{minRows:1,maxRows:5},placeholder:p.ZP.get("请输入依赖名称")})}),(0,v.jsx)(h.Z.Item,{name:"remark",label:p.ZP.get("备注"),children:(0,v.jsx)(P.Z,{placeholder:p.ZP.get("请输入备注")})})]})})}},3475:function(e,t,r){var a=r(72317),o=window.__ENV__QlBaseUrl||"/";t.Z={siteName:a.ZP.get("青龙"),baseUrl:o,apiPrefix:"".concat(o,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Português",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:a.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:a.ZP.get("定时任务"),value:"crons"},{name:a.ZP.get("环境变量"),value:"envs"},{name:a.ZP.get("订阅管理"),value:"subscriptions"},{name:a.ZP.get("配置文件"),value:"configs"},{name:a.ZP.get("脚本管理"),value:"scripts"},{name:a.ZP.get("日志管理"),value:"logs"},{name:a.ZP.get("依赖管理"),value:"dependencies"},{name:a.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:a.ZP.get("定时任务"),envs:a.ZP.get("环境变量"),subscriptions:a.ZP.get("订阅管理"),configs:a.ZP.get("配置文件"),scripts:a.ZP.get("脚本管理"),logs:a.ZP.get("日志管理"),dependencies:a.ZP.get("依赖管理"),system:a.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:a.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:a.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:a.ZP.get("钉钉机器人")},{value:"weWorkBot",label:a.ZP.get("企业微信机器人")},{value:"weWorkApp",label:a.ZP.get("企业微信应用")},{value:"aibotk",label:a.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:a.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:a.ZP.get("群晖chat")},{value:"email",label:a.ZP.get("邮箱")},{value:"lark",label:a.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:a.ZP.get("自定义通知")},{value:"closed",label:a.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:a.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:a.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:a.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:a.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:a.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:a.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:a.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:a.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:a.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:a.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:a.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:a.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:a.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:a.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:a.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:a.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:a.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:a.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:a.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:a.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:a.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:a.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:a.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:a.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:a.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:a.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:a.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:a.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:a.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:a.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:a.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:a.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:a.ZP.get("请输入要发送的目标"),items:[{value:"room",label:a.ZP.get("群聊")},{value:"contact",label:a.ZP.get("好友")}]},{label:"aibotkName",tip:a.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:a.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:a.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:a.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:a.ZP.get("发送模板")},{label:"pushplusChannel",tip:a.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:a.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:a.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:a.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:a.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:a.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:a.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:a.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:a.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:a.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:a.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:a.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:a.ZP.get("邮箱地址"),required:!0},{label:"emailPass",tip:a.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0}],pushMe:[{label:"pushMeKey",tip:a.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:a.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:a.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:a.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:a.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:a.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:a.ZP.get("请求头Content-Type"),required:!0,items:[{value:"text/plain"},{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:a.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:a.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:a.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":a.ZP.get("登录"),"/initialization":a.ZP.get("初始化"),"/crontab":a.ZP.get("定时任务"),"/env":a.ZP.get("环境变量"),"/subscription":a.ZP.get("订阅管理"),"/config":a.ZP.get("配置文件"),"/script":a.ZP.get("脚本管理"),"/diff":a.ZP.get("对比工具"),"/log":a.ZP.get("日志管理"),"/setting":a.ZP.get("系统设置"),"/error":a.ZP.get("错误日志"),"/dependence":a.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},16314:function(e,t,r){r.d(t,{W:function(){return P}});var a=r(90228),o=r.n(a),l=r(87999),n=r.n(l),i=r(72317),s=r(61508),u=r(33839),c=r(3475),p=r(98783),d=r(69313),g=r(52676);s.ZP.config({duration:2});var h=Date.now(),b=d.Z.create({timeout:6e4,params:{t:h}}),m=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];b.interceptors.request.use((function(e){var t=localStorage.getItem(c.Z.authKey);return t&&!m.includes(e.url)?(e.headers.Authorization="Bearer ".concat(t),e):e})),b.interceptors.response.use(function(){var e=n()(o()().mark((function e(t){var r,a,l;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.status,![502,504].includes(r)){e.next=5;break}p.history.push("/error"),e.next=18;break;case 5:if(401!==r){e.next=9;break}"/login"!==p.history.location.pathname&&(localStorage.removeItem(c.Z.authKey),p.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(a=t.data).code&&(l=a.message||a.data)&&u.Z.error({message:l,description:null!=a&&a.errors?(0,g.jsx)(g.Fragment,{children:null==a?void 0:a.errors.map((function(e){return(0,g.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",a);case 15:e.prev=15,e.t0=e.catch(9);case 17:case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}}),e,null,[[9,15]])})));return function(t){return e.apply(this,arguments)}}(),(function(e){if(e.response){var t=e.response.data?e.response.data.message||e.message:e.response.statusText,r=e.response.status;if([502,504].includes(r))p.history.push("/error");else if(401===r)"/login"!==p.history.location.pathname&&(s.ZP.error(i.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(c.Z.authKey),p.history.push("/login"));else{var a,o,l,n;if("function"==typeof(null===(a=e.config)||void 0===a?void 0:a.onError))return null===(n=e.config)||void 0===n?void 0:n.onError(e.response);t&&u.Z.error({message:t,description:null!==(o=e.response)&&void 0!==o&&null!==(o=o.data)&&void 0!==o&&o.errors?(0,g.jsx)(g.Fragment,{children:null===(l=e.response)||void 0===l||null===(l=l.data)||void 0===l||null===(l=l.errors)||void 0===l?void 0:l.map((function(e){return(0,g.jsxs)("div",{children:[e.message," (",e.value,")"]})}))}):void 0})}}else console.log(e.message);return Promise.reject(e)}));var P=b},92767:function(e,t,r){function a(e){return Object.keys(e).reduce((function(t,r){return!r.startsWith("data-")&&!r.startsWith("aria-")&&"role"!==r||r.startsWith("data-__")||(t[r]=e[r]),t}),{})}r.d(t,{Z:function(){return a}})},94747:function(e,t,r){r.d(t,{ZP:function(){return I}});var a=r(2053),o=r(57904),l=r(99459),n=r(82187),i=r.n(n),s=r(6522),u=r(75271),c=r(96820),p=r(38470),d=r(92767),g=u.createContext(null),h=g.Provider,b=g,m=u.createContext(null),P=m.Provider,f=r(46206),Z=r(3083),v=r(30107),y=r(5663),x=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r},k=function(e,t){var r,l,n=u.useContext(b),s=u.useContext(m),p=u.useContext(c.E_),d=p.getPrefixCls,g=p.direction,h=u.useRef(),P=(0,Z.sQ)(t,h),k=(0,u.useContext)(y.aM).isFormItemInput,w=e.prefixCls,C=e.className,q=e.children,B=e.style,O=x(e,["prefixCls","className","children","style"]),E=d("radio",w),_="button"===((null==n?void 0:n.optionType)||s)?"".concat(E,"-button"):E,I=(0,a.Z)({},O),j=u.useContext(v.Z);n&&(I.name=n.name,I.onChange=function(t){var r,a;null===(r=e.onChange)||void 0===r||r.call(e,t),null===(a=null==n?void 0:n.onChange)||void 0===a||a.call(n,t)},I.checked=e.value===n.value,I.disabled=null!==(r=I.disabled)&&void 0!==r?r:n.disabled),I.disabled=null!==(l=I.disabled)&&void 0!==l?l:j;var T=i()("".concat(_,"-wrapper"),(0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},"".concat(_,"-wrapper-checked"),I.checked),"".concat(_,"-wrapper-disabled"),I.disabled),"".concat(_,"-wrapper-rtl"),"rtl"===g),"".concat(_,"-wrapper-in-form-item"),k),C);return u.createElement("label",{className:T,style:B,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave},u.createElement(f.Z,(0,a.Z)({},I,{type:"radio",prefixCls:_,ref:P})),void 0!==q?u.createElement("span",null,q):null)};var w=u.forwardRef(k),C=u.forwardRef((function(e,t){var r=u.useContext(c.E_),n=r.getPrefixCls,g=r.direction,b=u.useContext(p.Z),m=(0,s.Z)(e.defaultValue,{value:e.value}),P=(0,l.Z)(m,2),f=P[0],Z=P[1],v=e.prefixCls,y=e.className,x=void 0===y?"":y,k=e.options,C=e.buttonStyle,q=void 0===C?"outline":C,B=e.disabled,O=e.children,E=e.size,_=e.style,I=e.id,j=e.onMouseEnter,T=e.onMouseLeave,S=e.onFocus,M=e.onBlur,N=n("radio",v),R="".concat(N,"-group"),A=O;k&&k.length>0&&(A=k.map((function(e){return"string"==typeof e||"number"==typeof e?u.createElement(w,{key:e.toString(),prefixCls:N,disabled:B,value:e,checked:f===e},e):u.createElement(w,{key:"radio-group-value-options-".concat(e.value),prefixCls:N,disabled:e.disabled||B,value:e.value,checked:f===e.value,style:e.style},e.label)})));var U=E||b,H=i()(R,"".concat(R,"-").concat(q),(0,o.Z)((0,o.Z)({},"".concat(R,"-").concat(U),U),"".concat(R,"-rtl"),"rtl"===g),x);return u.createElement("div",(0,a.Z)({},(0,d.Z)(e),{className:H,style:_,onMouseEnter:j,onMouseLeave:T,onFocus:S,onBlur:M,id:I,ref:t}),u.createElement(h,{value:{onChange:function(t){var r=f,a=t.target.value;"value"in e||Z(a);var o=e.onChange;o&&a!==r&&o(t)},value:f,disabled:e.disabled,name:e.name,optionType:e.optionType}},A))})),q=u.memo(C),B=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r},O=function(e,t){var r=u.useContext(c.E_).getPrefixCls,o=e.prefixCls,l=B(e,["prefixCls"]),n=r("radio",o);return u.createElement(P,{value:"button"},u.createElement(w,(0,a.Z)({prefixCls:n},l,{type:"radio",ref:t})))},E=u.forwardRef(O),_=w;_.Button=E,_.Group=q,_.__ANT_RADIO=!0;var I=_},35181:function(e,t,r){var a=r(57904),o=r(2053),l=r(82187),n=r.n(l),i=r(77168),s=r(2021),u=r(75271),c=r(96820),p=r(83289),d=r(30107),g=r(38470),h=r(5663),b=r(21485),m=r(28800),P=r(50528),f=r(81393),Z=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r},v="SECRET_COMBOBOX_MODE_DO_NOT_USE",y=function(e,t){var r,l=e.prefixCls,y=e.bordered,x=void 0===y||y,k=e.className,w=e.getPopupContainer,C=e.dropdownClassName,q=e.popupClassName,B=e.listHeight,O=void 0===B?256:B,E=e.placement,_=e.listItemHeight,I=void 0===_?32:_,j=e.size,T=e.disabled,S=e.notFoundContent,M=e.status,N=e.showArrow,R=Z(e,["prefixCls","bordered","className","getPopupContainer","dropdownClassName","popupClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","showArrow"]),A=u.useContext(c.E_),U=A.getPopupContainer,H=A.getPrefixCls,K=A.renderEmpty,X=A.direction,F=A.virtual,Q=A.dropdownMatchSelectWidth,W=u.useContext(g.Z),D=H("select",l),G=H(),L=(0,f.ri)(D,X),z=L.compactSize,V=L.compactItemClassnames,$=u.useMemo((function(){var e=R.mode;if("combobox"!==e)return e===v?"combobox":e}),[R.mode]),Y="multiple"===$||"tags"===$,J=void 0!==N?N:R.loading||!(Y||"combobox"===$),ee=(0,u.useContext)(h.aM),te=ee.status,re=ee.hasFeedback,ae=ee.isFormItemInput,oe=ee.feedbackIcon,le=(0,m.F)(te,M);r=void 0!==S?S:"combobox"===$?null:(K||p.Z)("Select");var ne=(0,P.Z)((0,o.Z)((0,o.Z)({},R),{multiple:Y,hasFeedback:re,feedbackIcon:oe,showArrow:J,prefixCls:D})),ie=ne.suffixIcon,se=ne.itemIcon,ue=ne.removeIcon,ce=ne.clearIcon,pe=(0,s.Z)(R,["suffixIcon","itemIcon"]),de=n()(q||C,(0,a.Z)({},"".concat(D,"-dropdown-").concat(X),"rtl"===X)),ge=z||j||W,he=u.useContext(d.Z),be=null!=T?T:he,me=n()((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},"".concat(D,"-lg"),"large"===ge),"".concat(D,"-sm"),"small"===ge),"".concat(D,"-rtl"),"rtl"===X),"".concat(D,"-borderless"),!x),"".concat(D,"-in-form-item"),ae),(0,m.Z)(D,le,re),V,k);return u.createElement(i.ZP,(0,o.Z)({ref:t,virtual:F,dropdownMatchSelectWidth:Q},pe,{transitionName:(0,b.mL)(G,(0,b.q0)(E),R.transitionName),listHeight:O,listItemHeight:I,mode:$,prefixCls:D,placement:void 0!==E?E:"rtl"===X?"bottomRight":"bottomLeft",direction:X,inputIcon:ie,menuItemSelectedIcon:se,removeIcon:ue,clearIcon:ce,notFoundContent:r,className:me,getPopupContainer:w||U,dropdownClassName:de,showArrow:re||N,disabled:be}))},x=u.forwardRef(y);x.SECRET_COMBOBOX_MODE_DO_NOT_USE=v,x.Option=i.Wx,x.OptGroup=i.Xo,t.Z=x},46206:function(e,t,r){var a=r(2053),o=r(98037),l=r(57904),n=r(99459),i=r(53162),s=r(82187),u=r.n(s),c=r(6522),p=r(75271),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","onChange"],g=(0,p.forwardRef)((function(e,t){var r,s=e.prefixCls,g=void 0===s?"rc-checkbox":s,h=e.className,b=e.style,m=e.checked,P=e.disabled,f=e.defaultChecked,Z=void 0!==f&&f,v=e.type,y=void 0===v?"checkbox":v,x=e.onChange,k=(0,i.Z)(e,d),w=(0,p.useRef)(null),C=(0,c.Z)(Z,{value:m}),q=(0,n.Z)(C,2),B=q[0],O=q[1];(0,p.useImperativeHandle)(t,(function(){return{focus:function(){var e;null===(e=w.current)||void 0===e||e.focus()},blur:function(){var e;null===(e=w.current)||void 0===e||e.blur()},input:w.current}}));var E=u()(g,h,(r={},(0,l.Z)(r,"".concat(g,"-checked"),B),(0,l.Z)(r,"".concat(g,"-disabled"),P),r));return p.createElement("span",{className:E,style:b},p.createElement("input",(0,a.Z)({},k,{className:"".concat(g,"-input"),ref:w,onChange:function(t){P||("checked"in e||O(t.target.checked),null==x||x({target:(0,o.Z)((0,o.Z)({},e),{},{type:y,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:P,checked:!!B,type:y})),p.createElement("span",{className:"".concat(g,"-inner")}))}));t.Z=g}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[4216],{55416:function(e,t,a){a.r(t);var r=a(90228),l=a.n(r),o=a(87999),i=a.n(o),n=a(48305),s=a.n(n),u=a(72317),p=a(75271),g=a(72338),c=a(61508),d=a(45520),P=a(17082),h=a(16314),b=a(3475),Z=a(52676);t.default=function(e){var t=e.ids,a=e.handleCancel,r=e.visible,o=g.Z.useForm(),n=s()(o,1)[0],m=(0,p.useState)(!1),v=s()(m,2),f=v[0],k=v[1],y=function(){var e=i()(l()().mark((function e(r){var o,i;return l()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return k(!0),e.prev=1,e.next=4,h.W.put("".concat(b.Z.apiPrefix,"envs/name"),{ids:t,name:r.name});case 4:o=e.sent,i=o.code,o.data,200===i&&(c.ZP.success(u.ZP.get("更新环境变量名称成功")),a()),k(!1),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),k(!1);case 14:case"end":return e.stop()}}),e,null,[[1,11]])})));return function(t){return e.apply(this,arguments)}}();return(0,p.useEffect)((function(){n.resetFields()}),[t,r]),(0,Z.jsx)(d.Z,{title:u.ZP.get("修改环境变量名称"),open:r,forceRender:!0,centered:!0,maskClosable:!1,onOk:function(){n.validateFields().then((function(e){y(e)})).catch((function(e){console.log("Validate Failed:",e)}))},onCancel:function(){return a()},confirmLoading:f,children:(0,Z.jsx)(g.Z,{form:n,layout:"vertical",name:"edit_name_modal",children:(0,Z.jsx)(g.Z.Item,{name:"name",rules:[{required:!0,message:u.ZP.get("请输入新的环境变量名称")}],children:(0,Z.jsx)(P.Z,{placeholder:u.ZP.get("请输入新的环境变量名称")})})})})}},3475:function(e,t,a){var r=a(72317),l=window.__ENV__QlBaseUrl||"/";t.Z={siteName:r.ZP.get("青龙"),baseUrl:l,apiPrefix:"".concat(l,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Português",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:r.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:r.ZP.get("定时任务"),value:"crons"},{name:r.ZP.get("环境变量"),value:"envs"},{name:r.ZP.get("订阅管理"),value:"subscriptions"},{name:r.ZP.get("配置文件"),value:"configs"},{name:r.ZP.get("脚本管理"),value:"scripts"},{name:r.ZP.get("日志管理"),value:"logs"},{name:r.ZP.get("依赖管理"),value:"dependencies"},{name:r.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:r.ZP.get("定时任务"),envs:r.ZP.get("环境变量"),subscriptions:r.ZP.get("订阅管理"),configs:r.ZP.get("配置文件"),scripts:r.ZP.get("脚本管理"),logs:r.ZP.get("日志管理"),dependencies:r.ZP.get("依赖管理"),system:r.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:r.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:r.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:r.ZP.get("钉钉机器人")},{value:"weWorkBot",label:r.ZP.get("企业微信机器人")},{value:"weWorkApp",label:r.ZP.get("企业微信应用")},{value:"aibotk",label:r.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:r.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:r.ZP.get("群晖chat")},{value:"email",label:r.ZP.get("邮箱")},{value:"lark",label:r.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:r.ZP.get("自定义通知")},{value:"closed",label:r.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:r.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:r.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:r.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:r.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:r.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:r.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:r.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:r.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:r.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:r.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:r.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:r.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:r.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:r.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:r.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:r.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:r.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:r.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:r.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:r.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:r.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:r.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:r.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:r.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:r.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:r.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:r.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:r.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:r.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:r.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:r.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:r.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:r.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:r.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:r.ZP.get("请输入要发送的目标"),items:[{value:"room",label:r.ZP.get("群聊")},{value:"contact",label:r.ZP.get("好友")}]},{label:"aibotkName",tip:r.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:r.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:r.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:r.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:r.ZP.get("发送模板")},{label:"pushplusChannel",tip:r.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:r.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:r.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:r.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:r.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:r.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:r.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:r.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:r.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:r.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:r.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:r.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:r.ZP.get("邮箱地址"),required:!0},{label:"emailPass",tip:r.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0}],pushMe:[{label:"pushMeKey",tip:r.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:r.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:r.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:r.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:r.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:r.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:r.ZP.get("请求头Content-Type"),required:!0,items:[{value:"text/plain"},{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:r.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:r.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:r.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":r.ZP.get("登录"),"/initialization":r.ZP.get("初始化"),"/crontab":r.ZP.get("定时任务"),"/env":r.ZP.get("环境变量"),"/subscription":r.ZP.get("订阅管理"),"/config":r.ZP.get("配置文件"),"/script":r.ZP.get("脚本管理"),"/diff":r.ZP.get("对比工具"),"/log":r.ZP.get("日志管理"),"/setting":r.ZP.get("系统设置"),"/error":r.ZP.get("错误日志"),"/dependence":r.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},16314:function(e,t,a){a.d(t,{W:function(){return Z}});var r=a(90228),l=a.n(r),o=a(87999),i=a.n(o),n=a(72317),s=a(61508),u=a(33839),p=a(3475),g=a(98783),c=a(69313),d=a(52676);s.ZP.config({duration:2});var P=Date.now(),h=c.Z.create({timeout:6e4,params:{t:P}}),b=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];h.interceptors.request.use((function(e){var t=localStorage.getItem(p.Z.authKey);return t&&!b.includes(e.url)?(e.headers.Authorization="Bearer ".concat(t),e):e})),h.interceptors.response.use(function(){var e=i()(l()().mark((function e(t){var a,r,o;return l()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=t.status,![502,504].includes(a)){e.next=5;break}g.history.push("/error"),e.next=18;break;case 5:if(401!==a){e.next=9;break}"/login"!==g.history.location.pathname&&(localStorage.removeItem(p.Z.authKey),g.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(r=t.data).code&&(o=r.message||r.data)&&u.Z.error({message:o,description:null!=r&&r.errors?(0,d.jsx)(d.Fragment,{children:null==r?void 0:r.errors.map((function(e){return(0,d.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",r);case 15:e.prev=15,e.t0=e.catch(9);case 17:case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}}),e,null,[[9,15]])})));return function(t){return e.apply(this,arguments)}}(),(function(e){if(e.response){var t=e.response.data?e.response.data.message||e.message:e.response.statusText,a=e.response.status;if([502,504].includes(a))g.history.push("/error");else if(401===a)"/login"!==g.history.location.pathname&&(s.ZP.error(n.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(p.Z.authKey),g.history.push("/login"));else{var r,l,o,i;if("function"==typeof(null===(r=e.config)||void 0===r?void 0:r.onError))return null===(i=e.config)||void 0===i?void 0:i.onError(e.response);t&&u.Z.error({message:t,description:null!==(l=e.response)&&void 0!==l&&null!==(l=l.data)&&void 0!==l&&l.errors?(0,d.jsx)(d.Fragment,{children:null===(o=e.response)||void 0===o||null===(o=o.data)||void 0===o||null===(o=o.errors)||void 0===o?void 0:o.map((function(e){return(0,d.jsxs)("div",{children:[e.message," (",e.value,")"]})}))}):void 0})}}else console.log(e.message);return Promise.reject(e)}));var Z=h}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[3217],{69870:function(e,t){t.Z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"}},81372:function(e,t,r){var a=r(98037),o=r(75271),l=r(69870),n=r(64720),i=function(e,t){return o.createElement(n.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:l.Z}))},s=o.forwardRef(i);t.Z=s},82795:function(e,t,r){r.r(t),r.d(t,{default:function(){return G}});var a=r(48305),o=r.n(a),l=r(72317),n=r(75271),i=r(3475),s=r(16314),c=r(34014),u=r(98783),p=r(2053),g=r(99459),d=r(57904),P=r(37024),h=r(7686),Z=r(84007),b=r(74142),m=r(32324),f=r(17555),v=r(65060),E=r(11596),y=r(30134),k=r(82187),N=r.n(k),x=r(88522),w=r(96820),_=r(92767),C=r(5555),T=r(73779),S=r(71374),U=r(57520),M=r(95531),A=r(52601),I=r(36326);function O(e,t,r){return t=(0,A.Z)(t),(0,U.Z)(e,(0,M.Z)()?Reflect.construct(t,r||[],(0,A.Z)(e).constructor):t.apply(e,r))}var R=function(e){function t(){var e;return(0,T.Z)(this,t),(e=O(this,t,arguments)).state={error:void 0,info:{componentStack:""}},e}return(0,I.Z)(t,e),(0,S.Z)(t,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e,info:t})}},{key:"render",value:function(){var e=this.props,t=e.message,r=e.description,a=e.children,o=this.state,l=o.error,i=o.info,s=i&&i.componentStack?i.componentStack:null,c=void 0===t?(l||"").toString():t,u=void 0===r?s:r;return l?n.createElement(Q,{type:"error",message:c,description:n.createElement("pre",null,u)}):a}}]),t}(n.Component),B=R,q=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]])}return r},K={success:P.Z,info:E.Z,error:Z.Z,warning:f.Z},L={success:h.Z,info:y.Z,error:b.Z,warning:v.Z},H=function(e){var t=e.description,r=e.icon,a=e.prefixCls,o=e.type,l=(t?L:K)[o]||null;return r?(0,C.wm)(r,n.createElement("span",{className:"".concat(a,"-icon")},r),(function(){return{className:N()("".concat(a,"-icon"),(0,d.Z)({},r.props.className,r.props.className))}})):n.createElement(l,{className:"".concat(a,"-icon")})},F=function(e){var t=e.isClosable,r=e.closeText,a=e.prefixCls,o=e.closeIcon,l=e.handleClose;return t?n.createElement("button",{type:"button",onClick:l,className:"".concat(a,"-close-icon"),tabIndex:0},r?n.createElement("span",{className:"".concat(a,"-close-text")},r):o):null},j=function(e){var t=e.description,r=e.prefixCls,a=e.message,o=e.banner,l=e.className,i=void 0===l?"":l,s=e.style,c=e.onMouseEnter,u=e.onMouseLeave,P=e.onClick,h=e.afterClose,Z=e.showIcon,b=e.closable,f=e.closeText,v=e.closeIcon,E=void 0===v?n.createElement(m.Z,null):v,y=e.action,k=q(e,["description","prefixCls","message","banner","className","style","onMouseEnter","onMouseLeave","onClick","afterClose","showIcon","closable","closeText","closeIcon","action"]),C=n.useState(!1),T=(0,g.Z)(C,2),S=T[0],U=T[1],M=n.useRef(),A=n.useContext(w.E_),I=A.getPrefixCls,O=A.direction,R=I("alert",r),B=function(e){var t;U(!0),null===(t=k.onClose)||void 0===t||t.call(k,e)},K=!!f||b,L=function(){var e=k.type;return void 0!==e?e:o?"warning":"info"}(),j=!(!o||void 0!==Z)||Z,Q=N()(R,"".concat(R,"-").concat(L),(0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},"".concat(R,"-with-description"),!!t),"".concat(R,"-no-icon"),!j),"".concat(R,"-banner"),!!o),"".concat(R,"-rtl"),"rtl"===O),i),W=(0,_.Z)(k);return n.createElement(x.ZP,{visible:!S,motionName:"".concat(R,"-motion"),motionAppear:!1,motionEnter:!1,onLeaveStart:function(e){return{maxHeight:e.offsetHeight}},onLeaveEnd:h},(function(e){var r=e.className,o=e.style;return n.createElement("div",(0,p.Z)({ref:M,"data-show":!S,className:N()(Q,r),style:(0,p.Z)((0,p.Z)({},s),o),onMouseEnter:c,onMouseLeave:u,onClick:P,role:"alert"},W),j?n.createElement(H,{description:t,icon:k.icon,prefixCls:R,type:L}):null,n.createElement("div",{className:"".concat(R,"-content")},a?n.createElement("div",{className:"".concat(R,"-message")},a):null,t?n.createElement("div",{className:"".concat(R,"-description")},t):null),y?n.createElement("div",{className:"".concat(R,"-action")},y):null,n.createElement(F,{isClosable:!!K,closeText:f,prefixCls:R,closeIcon:E,handleClose:B}))}))};j.ErrorBoundary=B;var Q=j,W=r(50691),D=r(52676),G=function(){var e=(0,u.useOutletContext)().user,t=(0,n.useState)(!1),r=o()(t,2),a=r[0],p=r[1],g=(0,n.useState)(l.ZP.get("暂无日志")),d=o()(g,2),P=d[0],h=d[1],Z=(0,n.useRef)(1),b=function e(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t&&p(!0),s.W.get("".concat(i.Z.apiPrefix,"public/health")).then((function(t){var r=t.error,a=t.data;1!==(null==a?void 0:a.status)?Z.current>3?h(null==r?void 0:r.details):(Z.current+=1,setTimeout((function(){e(!1)}),3e3)):Z.current>1&&setTimeout((function(){window.location.reload()}))})).finally((function(){return t&&p(!1)}))};return(0,n.useEffect)((function(){e&&e.username&&u.history.push("/crontab")}),[e]),(0,n.useEffect)((function(){b()}),[]),(0,D.jsx)("div",{className:"error-wrapper",children:a?(0,D.jsx)(c.Z,{}):Z.current>3?(0,D.jsxs)("div",{className:"code-box",children:[(0,D.jsx)("div",{className:"browser-markup"}),(0,D.jsx)(Q,{type:"error",message:(0,D.jsx)(W.Z.Title,{level:5,type:"danger",children:l.ZP.get("服务启动超时")}),description:(0,D.jsxs)(W.Z.Text,{type:"danger",children:[(0,D.jsx)("div",{children:l.ZP.get("请先按如下方式修复:")}),(0,D.jsx)("div",{children:"1. 宿主机执行 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR <容器名>"}),(0,D.jsx)("div",{children:l.ZP.get("2. 容器内执行 ql check、ql update")}),(0,D.jsxs)("div",{children:[l.ZP.get("3. 如果无法解决,容器内执行 pm2 logs,拷贝执行结果"),(0,D.jsx)(W.Z.Link,{href:"https://github.com/whyour/qinglong/issues/new?assignees=&labels=&template=bug_report.yml",children:l.ZP.get("提交 issue")})]})]}),banner:!0}),(0,D.jsx)(W.Z.Paragraph,{code:!0,className:"log",children:P})]}):(0,D.jsx)(c.Z,{tip:l.ZP.get("启动中,请稍后...")})})}},3475:function(e,t,r){var a=r(72317),o=window.__ENV__QlBaseUrl||"/";t.Z={siteName:a.ZP.get("青龙"),baseUrl:o,apiPrefix:"".concat(o,"api/"),authKey:"token",layouts:[{name:"primary",include:[/.*/],exclude:[/(\/(en|zh))*\/login/]}],i18n:{languages:[{key:"pt-br",title:"Português",flag:"/portugal.svg"},{key:"en",title:"English",flag:"/america.svg"},{key:"zh",title:a.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:a.ZP.get("定时任务"),value:"crons"},{name:a.ZP.get("环境变量"),value:"envs"},{name:a.ZP.get("订阅管理"),value:"subscriptions"},{name:a.ZP.get("配置文件"),value:"configs"},{name:a.ZP.get("脚本管理"),value:"scripts"},{name:a.ZP.get("日志管理"),value:"logs"},{name:a.ZP.get("依赖管理"),value:"dependencies"},{name:a.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:a.ZP.get("定时任务"),envs:a.ZP.get("环境变量"),subscriptions:a.ZP.get("订阅管理"),configs:a.ZP.get("配置文件"),scripts:a.ZP.get("脚本管理"),logs:a.ZP.get("日志管理"),dependencies:a.ZP.get("依赖管理"),system:a.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:a.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:a.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:a.ZP.get("钉钉机器人")},{value:"weWorkBot",label:a.ZP.get("企业微信机器人")},{value:"weWorkApp",label:a.ZP.get("企业微信应用")},{value:"aibotk",label:a.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:a.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:a.ZP.get("群晖chat")},{value:"email",label:a.ZP.get("邮箱")},{value:"lark",label:a.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:a.ZP.get("自定义通知")},{value:"closed",label:a.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:a.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:a.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:a.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:a.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:a.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:a.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:a.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:a.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:a.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:a.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:a.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:a.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:a.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:a.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:a.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:a.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:a.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:a.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:a.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:a.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:a.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:a.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:a.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:a.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:a.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:a.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:a.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:a.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:a.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:a.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:a.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:a.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:a.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:a.ZP.get("请输入要发送的目标"),items:[{value:"room",label:a.ZP.get("群聊")},{value:"contact",label:a.ZP.get("好友")}]},{label:"aibotkName",tip:a.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:a.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:a.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:a.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:a.ZP.get("发送模板")},{label:"pushplusChannel",tip:a.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:a.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:a.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:a.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:a.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:a.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:a.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:a.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:a.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:a.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:a.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:a.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:a.ZP.get("邮箱地址"),required:!0},{label:"emailPass",tip:a.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0}],pushMe:[{label:"pushMeKey",tip:a.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:a.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:a.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:a.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:a.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:a.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:a.ZP.get("请求头Content-Type"),required:!0,items:[{value:"text/plain"},{value:"application/json"},{value:"multipart/form-data"},{value:"application/x-www-form-urlencoded"}]},{label:"webhookUrl",tip:a.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:a.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:a.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":a.ZP.get("登录"),"/initialization":a.ZP.get("初始化"),"/crontab":a.ZP.get("定时任务"),"/env":a.ZP.get("环境变量"),"/subscription":a.ZP.get("订阅管理"),"/config":a.ZP.get("配置文件"),"/script":a.ZP.get("脚本管理"),"/diff":a.ZP.get("对比工具"),"/log":a.ZP.get("日志管理"),"/setting":a.ZP.get("系统设置"),"/error":a.ZP.get("错误日志"),"/dependence":a.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},16314:function(e,t,r){r.d(t,{W:function(){return b}});var a=r(90228),o=r.n(a),l=r(87999),n=r.n(l),i=r(72317),s=r(61508),c=r(33839),u=r(3475),p=r(98783),g=r(69313),d=r(52676);s.ZP.config({duration:2});var P=Date.now(),h=g.Z.create({timeout:6e4,params:{t:P}}),Z=["/api/user/login","/open/auth/token","/api/user/two-factor/login","/api/system","/api/user/init","/api/user/notification/init"];h.interceptors.request.use((function(e){var t=localStorage.getItem(u.Z.authKey);return t&&!Z.includes(e.url)?(e.headers.Authorization="Bearer ".concat(t),e):e})),h.interceptors.response.use(function(){var e=n()(o()().mark((function e(t){var r,a,l;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.status,![502,504].includes(r)){e.next=5;break}p.history.push("/error"),e.next=18;break;case 5:if(401!==r){e.next=9;break}"/login"!==p.history.location.pathname&&(localStorage.removeItem(u.Z.authKey),p.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(a=t.data).code&&(l=a.message||a.data)&&c.Z.error({message:l,description:null!=a&&a.errors?(0,d.jsx)(d.Fragment,{children:null==a?void 0:a.errors.map((function(e){return(0,d.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",a);case 15:e.prev=15,e.t0=e.catch(9);case 17:case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}}),e,null,[[9,15]])})));return function(t){return e.apply(this,arguments)}}(),(function(e){if(e.response){var t=e.response.data?e.response.data.message||e.message:e.response.statusText,r=e.response.status;if([502,504].includes(r))p.history.push("/error");else if(401===r)"/login"!==p.history.location.pathname&&(s.ZP.error(i.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(u.Z.authKey),p.history.push("/login"));else{var a,o,l,n;if("function"==typeof(null===(a=e.config)||void 0===a?void 0:a.onError))return null===(n=e.config)||void 0===n?void 0:n.onError(e.response);t&&c.Z.error({message:t,description:null!==(o=e.response)&&void 0!==o&&null!==(o=o.data)&&void 0!==o&&o.errors?(0,d.jsx)(d.Fragment,{children:null===(l=e.response)||void 0===l||null===(l=l.data)||void 0===l||null===(l=l.errors)||void 0===l?void 0:l.map((function(e){return(0,d.jsxs)("div",{children:[e.message," (",e.value,")"]})}))}):void 0})}}else console.log(e.message);return Promise.reject(e)}));var b=h},92767:function(e,t,r){function a(e){return Object.keys(e).reduce((function(t,r){return!r.startsWith("data-")&&!r.startsWith("aria-")&&"role"!==r||r.startsWith("data-__")||(t[r]=e[r]),t}),{})}r.d(t,{Z:function(){return a}})},1260:function(e,t){var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.Z=r}}]);
|