@whyour/qinglong 2.19.0-8 → 2.19.1-0

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.
Files changed (54) hide show
  1. package/docker/docker-entrypoint.sh +1 -1
  2. package/package.json +1 -1
  3. package/shell/share.sh +1 -1
  4. package/shell/start.sh +44 -44
  5. package/static/build/api/script.js +4 -1
  6. package/static/build/config/util.js +21 -1
  7. package/static/build/data/dependence.js +1 -7
  8. package/static/build/loaders/initFile.js +2 -1
  9. package/static/build/services/cron.js +22 -9
  10. package/static/build/services/dependence.js +3 -5
  11. package/static/dist/2208.4c5a62d1.async.js +1 -0
  12. package/static/dist/3191.cc1e31cd.async.js +1 -0
  13. package/static/dist/8826.f18157b7.async.js +1 -0
  14. package/static/dist/index.html +2 -2
  15. package/static/dist/{preload_helper.6f133e1a.js → preload_helper.aa612b58.js} +1 -1
  16. package/static/dist/src__pages__crontab__detail.543910fb.async.js +1 -0
  17. package/static/dist/src__pages__crontab__index.679a169c.async.js +1 -0
  18. package/static/dist/{src__pages__crontab__logModal.0767c532.async.js → src__pages__crontab__logModal.5fa54b25.async.js} +1 -1
  19. package/static/dist/src__pages__crontab__modal.69adde20.async.js +1 -0
  20. package/static/dist/src__pages__crontab__viewManageModal.d1f69531.async.js +1 -0
  21. package/static/dist/{src__pages__dependence__index.c31e50f0.async.js → src__pages__dependence__index.3d87ceac.async.js} +1 -1
  22. package/static/dist/src__pages__dependence__modal.53a4782a.async.js +1 -0
  23. package/static/dist/src__pages__env__editNameModal.7c6528e4.async.js +1 -0
  24. package/static/dist/{src__pages__env__index.5a863036.async.js → src__pages__env__index.a31f3fe1.async.js} +1 -1
  25. package/static/dist/{src__pages__env__modal.7d952f26.async.js → src__pages__env__modal.b0dc95be.async.js} +1 -1
  26. package/static/dist/src__pages__error__index.367a8c76.async.js +1 -0
  27. package/static/dist/src__pages__script__editModal.f1741417.async.js +1 -0
  28. package/static/dist/src__pages__script__editNameModal.fb125740.async.js +1 -0
  29. package/static/dist/src__pages__script__index.d834bef6.async.js +1 -0
  30. package/static/dist/{src__pages__script__renameModal.8232c924.async.js → src__pages__script__renameModal.e1bbbb50.async.js} +1 -1
  31. package/static/dist/src__pages__script__saveModal.d4890228.async.js +1 -0
  32. package/static/dist/src__pages__script__setting.b3635f42.async.js +1 -0
  33. package/static/dist/{src__pages__setting__appModal.25adf30e.async.js → src__pages__setting__appModal.0305916d.async.js} +1 -1
  34. package/static/dist/src__pages__setting__index.c8d1ca47.async.js +1 -0
  35. package/static/dist/{src__pages__subscription__index.850531a4.async.js → src__pages__subscription__index.d0ab2abc.async.js} +1 -1
  36. package/static/dist/{src__pages__subscription__logModal.9bf0b4f6.async.js → src__pages__subscription__logModal.0caa7283.async.js} +1 -1
  37. package/static/dist/{umi.80b4d6a9.js → umi.1a9e58b8.js} +1 -1
  38. package/version.yaml +11 -12
  39. package/static/dist/2208.98ccac5f.async.js +0 -1
  40. package/static/dist/3191.f56b00f8.async.js +0 -1
  41. package/static/dist/8826.faecf076.async.js +0 -1
  42. package/static/dist/src__pages__crontab__detail.ebbb4abf.async.js +0 -1
  43. package/static/dist/src__pages__crontab__index.d6d37f6a.async.js +0 -1
  44. package/static/dist/src__pages__crontab__modal.dcd053b5.async.js +0 -1
  45. package/static/dist/src__pages__crontab__viewManageModal.c4bfd6a2.async.js +0 -1
  46. package/static/dist/src__pages__dependence__modal.7f588c0b.async.js +0 -1
  47. package/static/dist/src__pages__env__editNameModal.411043e2.async.js +0 -1
  48. package/static/dist/src__pages__error__index.18520dbf.async.js +0 -1
  49. package/static/dist/src__pages__script__editModal.10dd9857.async.js +0 -1
  50. package/static/dist/src__pages__script__editNameModal.32bb2f80.async.js +0 -1
  51. package/static/dist/src__pages__script__index.53f99bee.async.js +0 -1
  52. package/static/dist/src__pages__script__saveModal.8e358e84.async.js +0 -1
  53. package/static/dist/src__pages__script__setting.dcdd7253.async.js +0 -1
  54. package/static/dist/src__pages__setting__index.3b426f9f.async.js +0 -1
@@ -24,7 +24,7 @@ pm2 l &>/dev/null
24
24
  log_with_style "INFO" "🔄 2. 启动 nginx..."
25
25
  nginx -s reload 2>/dev/null || nginx -c /etc/nginx/nginx.conf
26
26
 
27
- log_with_style "INFO" "⚙️ 3. 启动 pm2 服务...\n"
27
+ log_with_style "INFO" "⚙️ 3. 启动 pm2 服务..."
28
28
  reload_pm2
29
29
 
30
30
  if [[ $AutoStartBot == true ]]; then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whyour/qinglong",
3
- "version": "2.19.0-8",
3
+ "version": "2.19.1-0",
4
4
  "description": "Timed task management platform supporting Python3, JavaScript, Shell, Typescript",
5
5
  "repository": {
6
6
  "type": "git",
package/shell/share.sh CHANGED
@@ -285,7 +285,7 @@ reload_pm2() {
285
285
  cd $dir_root
286
286
  restore_env_vars
287
287
  pm2 flush &>/dev/null
288
- pm2 startOrGracefulReload ecosystem.config.js
288
+ pm2 startOrGracefulReload ecosystem.config.js --update-env
289
289
  }
290
290
 
291
291
  diff_time() {
package/shell/start.sh CHANGED
@@ -34,40 +34,36 @@ fi
34
34
 
35
35
  command="$1"
36
36
 
37
- if [[ $command == "reload" ]]; then
38
- mkdir -p /run/nginx
39
- nginx -s reload 2>/dev/null || nginx -c /etc/nginx/nginx.conf
40
- exit 1
41
- fi
37
+ if [[ $command != "reload" ]]; then
38
+ # 安装依赖
39
+ os_name=$(source /etc/os-release && echo "$ID")
40
+
41
+ if [[ $os_name == 'alpine' ]]; then
42
+ apk update
43
+ apk add -f bash \
44
+ coreutils \
45
+ git \
46
+ curl \
47
+ wget \
48
+ tzdata \
49
+ perl \
50
+ openssl \
51
+ jq \
52
+ nginx \
53
+ openssh \
54
+ procps \
55
+ netcat-openbsd
56
+ elif [[ $os_name == 'debian' ]] || [[ $os_name == 'ubuntu' ]]; then
57
+ apt-get update
58
+ apt-get install -y git curl wget tzdata perl openssl jq nginx procps netcat-openbsd openssh-client
59
+ else
60
+ echo -e "暂不支持此系统部署 $os_name"
61
+ exit 1
62
+ fi
42
63
 
43
- # 安装依赖
44
- os_name=$(source /etc/os-release && echo "$ID")
45
-
46
- if [[ $os_name == 'alpine' ]]; then
47
- apk update
48
- apk add -f bash \
49
- coreutils \
50
- git \
51
- curl \
52
- wget \
53
- tzdata \
54
- perl \
55
- openssl \
56
- jq \
57
- nginx \
58
- openssh \
59
- procps \
60
- netcat-openbsd
61
- elif [[ $os_name == 'debian' ]] || [[ $os_name == 'ubuntu' ]]; then
62
- apt-get update
63
- apt-get install -y git curl wget tzdata perl openssl jq nginx procps netcat-openbsd openssh-client
64
- else
65
- echo -e "暂不支持此系统部署 $os_name"
66
- exit 1
64
+ npm install -g pnpm@8.3.1 pm2 ts-node
67
65
  fi
68
66
 
69
- npm install -g pnpm@8.3.1 pm2 ts-node
70
-
71
67
  export PYTHON_SHORT_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
72
68
  export PNPM_HOME=${QL_DIR}/data/dep_cache/node
73
69
  export PYTHON_HOME=${QL_DIR}/data/dep_cache/python3
@@ -78,7 +74,9 @@ export NODE_PATH=/usr/local/bin:/usr/local/lib/node_modules:${PNPM_HOME}/global/
78
74
  export PIP_CACHE_DIR=${PYTHON_HOME}/pip
79
75
  export PYTHONPATH=${PYTHON_HOME}:${PYTHON_HOME}/lib/python${PYTHON_SHORT_VERSION}:${PYTHON_HOME}/lib/python${PYTHON_SHORT_VERSION}/site-packages
80
76
 
81
- pip3 install --prefix ${PYTHON_HOME} requests
77
+ if [[ $command != "reload" ]]; then
78
+ pip3 install --prefix ${PYTHON_HOME} requests
79
+ fi
82
80
 
83
81
  cd ${QL_DIR}
84
82
  cp -f .env.example .env
@@ -107,20 +105,22 @@ pm2 l &>/dev/null
107
105
  log_with_style "INFO" "🔄 2. 启动 nginx..."
108
106
  nginx -s reload 2>/dev/null || nginx -c /etc/nginx/nginx.conf
109
107
 
110
- log_with_style "INFO" "⚙️ 3. 启动 pm2 服务...\n"
108
+ log_with_style "INFO" "⚙️ 3. 启动 pm2 服务..."
111
109
  reload_pm2
112
110
 
113
- if [[ $AutoStartBot == true ]]; then
114
- log_with_style "INFO" "🤖 4. 启动 bot..."
115
- nohup ql bot >$dir_log/bot.log 2>&1 &
116
- fi
111
+ if [[ $command != "reload" ]]; then
112
+ if [[ $AutoStartBot == true ]]; then
113
+ log_with_style "INFO" "🤖 4. 启动 bot..."
114
+ nohup ql bot >$dir_log/bot.log 2>&1 &
115
+ fi
117
116
 
118
- if [[ $EnableExtraShell == true ]]; then
119
- log_with_style "INFO" "🛠️ 5. 执行自定义脚本..."
120
- nohup ql extra >$dir_log/extra.log 2>&1 &
121
- fi
117
+ if [[ $EnableExtraShell == true ]]; then
118
+ log_with_style "INFO" "🛠️ 5. 执行自定义脚本..."
119
+ nohup ql extra >$dir_log/extra.log 2>&1 &
120
+ fi
122
121
 
123
- pm2 startup
124
- pm2 save
122
+ pm2 startup
123
+ pm2 save
124
+ fi
125
125
 
126
- log_with_style "SUCCESS" "🎉 容器启动成功!"
126
+ log_with_style "SUCCESS" "🎉 启动成功!"
@@ -199,11 +199,14 @@ exports.default = (app) => {
199
199
  route.post('/download', (0, celebrate_1.celebrate)({
200
200
  body: celebrate_1.Joi.object({
201
201
  filename: celebrate_1.Joi.string().required(),
202
- path: celebrate_1.Joi.string().allow(''),
202
+ path: celebrate_1.Joi.string().optional().allow(''),
203
203
  }),
204
204
  }), async (req, res, next) => {
205
205
  try {
206
206
  let { filename, path } = req.body;
207
+ if (!path) {
208
+ path = '';
209
+ }
207
210
  const scriptService = typedi_1.Container.get(script_1.default);
208
211
  const filePath = scriptService.checkFilePath(path, filename);
209
212
  if (!filePath) {
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.updateLinuxMirrorFile = exports.detectOS = exports.isDemoEnv = exports.getUninstallCommand = exports.getInstallCommand = exports.setSystemTimezone = exports.rmPath = exports.safeJSONParse = exports.getUniqPath = exports.parseContentVersion = exports.parseVersion = exports.getPid = exports.killTask = exports.psTree = exports.parseBody = exports.parseHeaders = exports.promiseExecSuccess = exports.promiseExec = exports.readDir = exports.readDirs = exports.dirSort = exports.concurrentRun = exports.handleLogPath = exports.createFile = exports.fileExist = exports.getPlatform = exports.getToken = exports.getLastModifyFilePath = exports.removeAnsi = exports.getFileContentByName = void 0;
32
+ exports.updateLinuxMirrorFile = exports.detectOS = exports.isDemoEnv = exports.getUninstallCommand = exports.getInstallCommand = exports.getGetCommand = exports.setSystemTimezone = exports.rmPath = exports.safeJSONParse = exports.getUniqPath = exports.parseContentVersion = exports.parseVersion = exports.getPid = exports.killTask = exports.psTree = exports.parseBody = exports.parseHeaders = exports.promiseExecSuccess = exports.promiseExec = exports.readDir = exports.readDirs = exports.dirSort = exports.concurrentRun = exports.handleLogPath = exports.createFile = exports.fileExist = exports.getPlatform = exports.getToken = exports.getLastModifyFilePath = exports.removeAnsi = exports.getFileContentByName = void 0;
33
33
  const fs = __importStar(require("fs/promises"));
34
34
  const path = __importStar(require("path"));
35
35
  const child_process_1 = require("child_process");
@@ -474,6 +474,26 @@ async function setSystemTimezone(timezone) {
474
474
  }
475
475
  }
476
476
  exports.setSystemTimezone = setSystemTimezone;
477
+ function getGetCommand(type, name) {
478
+ const baseCommands = {
479
+ [dependence_1.DependenceTypes.nodejs]: `pnpm ls -g | grep "${name}" | head -1`,
480
+ [dependence_1.DependenceTypes.python3]: `
481
+ python3 -c "exec('''
482
+ name='${name}'
483
+ try:
484
+ from importlib.metadata import version
485
+ print(version(name))
486
+ except:
487
+ import importlib.util as u
488
+ import importlib.metadata as m
489
+ spec=u.find_spec(name)
490
+ print(name if spec else '')
491
+ ''')"`,
492
+ [dependence_1.DependenceTypes.linux]: `apt-get info ${name}`,
493
+ };
494
+ return baseCommands[type];
495
+ }
496
+ exports.getGetCommand = getGetCommand;
477
497
  function getInstallCommand(type, name) {
478
498
  const baseCommands = {
479
499
  [dependence_1.DependenceTypes.nodejs]: 'pnpm add -g',
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DependenceModel = exports.versionDependenceCommandTypes = exports.GetDependenceCommandTypes = exports.DependenceTypes = exports.DependenceStatus = exports.Dependence = void 0;
3
+ exports.DependenceModel = exports.versionDependenceCommandTypes = exports.DependenceTypes = exports.DependenceStatus = exports.Dependence = void 0;
4
4
  const _1 = require(".");
5
5
  const sequelize_1 = require("sequelize");
6
6
  class Dependence {
@@ -35,12 +35,6 @@ var DependenceTypes;
35
35
  DependenceTypes[DependenceTypes["python3"] = 1] = "python3";
36
36
  DependenceTypes[DependenceTypes["linux"] = 2] = "linux";
37
37
  })(DependenceTypes || (exports.DependenceTypes = DependenceTypes = {}));
38
- var GetDependenceCommandTypes;
39
- (function (GetDependenceCommandTypes) {
40
- GetDependenceCommandTypes[GetDependenceCommandTypes["pnpm ls -g "] = 0] = "pnpm ls -g ";
41
- GetDependenceCommandTypes[GetDependenceCommandTypes["pip3 show --disable-pip-version-check"] = 1] = "pip3 show --disable-pip-version-check";
42
- GetDependenceCommandTypes[GetDependenceCommandTypes["apt-get info"] = 2] = "apt-get info";
43
- })(GetDependenceCommandTypes || (exports.GetDependenceCommandTypes = GetDependenceCommandTypes = {}));
44
38
  var versionDependenceCommandTypes;
45
39
  (function (versionDependenceCommandTypes) {
46
40
  versionDependenceCommandTypes[versionDependenceCommandTypes["@"] = 0] = "@";
@@ -110,7 +110,8 @@ exports.default = async () => {
110
110
  if (!item.content && !item.source) {
111
111
  throw new Error(`Neither content nor source specified for ${item.target}`);
112
112
  }
113
- const content = item.content || (await promises_1.default.readFile(item.source));
113
+ const content = item.content ||
114
+ (await promises_1.default.readFile(item.source, { encoding: 'utf-8' }));
114
115
  await (0, utils_1.writeFileWithLock)(item.target, content);
115
116
  }
116
117
  }
@@ -178,14 +178,23 @@ let CronService = class CronService {
178
178
  operate2 = sequelize_1.Op.and;
179
179
  break;
180
180
  case 'In':
181
- q[sequelize_1.Op.or] = [
182
- {
183
- [property]: Array.isArray(value) ? value : [value],
184
- },
185
- property === 'status' && value.includes(2)
186
- ? { isDisabled: 1 }
187
- : {},
188
- ];
181
+ if (property === 'status' &&
182
+ !value.includes(cron_1.CrontabStatus.disabled)) {
183
+ q[sequelize_1.Op.and] = [
184
+ { [property]: Array.isArray(value) ? value : [value] },
185
+ { isDisabled: 0 },
186
+ ];
187
+ }
188
+ else {
189
+ q[sequelize_1.Op.or] = [
190
+ {
191
+ [property]: Array.isArray(value) ? value : [value],
192
+ },
193
+ property === 'status' && value.includes(cron_1.CrontabStatus.disabled)
194
+ ? { isDisabled: 1 }
195
+ : {},
196
+ ];
197
+ }
189
198
  break;
190
199
  case 'Nin':
191
200
  q[sequelize_1.Op.and] = [
@@ -464,7 +473,10 @@ let CronService = class CronService {
464
473
  return await (0, util_1.getFileContentByName)(`${absolutePath}`);
465
474
  }
466
475
  else {
467
- return '任务未运行';
476
+ return typeof doc.status === 'number' &&
477
+ [cron_1.CrontabStatus.queued, cron_1.CrontabStatus.running].includes(doc.status)
478
+ ? '运行中...'
479
+ : '任务空闲中';
468
480
  }
469
481
  }
470
482
  async logs(id) {
@@ -571,6 +583,7 @@ let CronService = class CronService {
571
583
  extra_schedules: doc.extra_schedules || [],
572
584
  }));
573
585
  if ((0, util_1.isDemoEnv)()) {
586
+ await (0, utils_1.writeFileWithLock)(config_1.default.crontabFile, '');
574
587
  return;
575
588
  }
576
589
  await client_1.default.addCron(regularCrons);
@@ -231,10 +231,10 @@ let DependenceService = class DependenceService {
231
231
  this.updateLog(depIds, message);
232
232
  // 判断是否已经安装过依赖
233
233
  if (isInstall && !force) {
234
- let getCommandPrefix = dependence_1.GetDependenceCommandTypes[dependency.type];
234
+ let getCommand = (0, util_1.getGetCommand)(dependency.type, depName);
235
235
  const depVersionStr = dependence_1.versionDependenceCommandTypes[dependency.type];
236
236
  if (isLinuxDependence) {
237
- getCommandPrefix = linuxCommand.info;
237
+ getCommand = `${linuxCommand.info} ${depName}`;
238
238
  }
239
239
  let depVersion = '';
240
240
  if (depName.includes(depVersionStr)) {
@@ -245,9 +245,7 @@ let DependenceService = class DependenceService {
245
245
  depVersion = _depVersion;
246
246
  }
247
247
  }
248
- const depInfo = (await (0, util_1.promiseExecSuccess)(isNodeDependence
249
- ? `${getCommandPrefix} | grep "${depName}" | head -1`
250
- : `${getCommandPrefix} ${depName}`))
248
+ const depInfo = (await (0, util_1.promiseExecSuccess)(getCommand))
251
249
  .replace(/\s{2,}/, ' ')
252
250
  .replace(/\s+$/, '');
253
251
  if (depInfo &&
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[2208,5812],{44224:function(e,t,r){var a=(0,r(19919).Z)({scriptUrl:["//at.alicdn.com/t/c/font_3354854_lc939gab1iq.js"]});t.Z=a},44860:function(e,t,r){r.r(t),r.d(t,{CrontabStatus:function(){return a},OperationName:function(){return l},OperationPath:function(){return n},ScheduleType:function(){return i}});var a=function(e){return e[e.running=0]="running",e[e.queued=.5]="queued",e[e.idle=1]="idle",e[e.disabled=2]="disabled",e}({}),l=function(e){return e[e["启用"]=0]="启用",e[e["禁用"]=1]="禁用",e[e["运行"]=2]="运行",e[e["停止"]=3]="停止",e[e["置顶"]=4]="置顶",e[e["取消置顶"]=5]="取消置顶",e}({}),n=function(e){return e[e.enable=0]="enable",e[e.disable=1]="disable",e[e.run=2]="run",e[e.stop=3]="stop",e[e.pin=4]="pin",e[e.unpin=5]="unpin",e}({}),i=function(e){return e.Normal="normal",e.Once="once",e.Boot="boot",e}({})},42208:function(e,t,r){r.r(t);var a=r(67825),l=r.n(a),n=r(90228),i=r.n(n),o=r(26068),s=r.n(o),u=r(87999),p=r.n(u),c=r(48305),d=r.n(c),g=r(72317),h=r(75271),m=r(72338),P=r(35181),Z=r(45520),b=r(17082),v=r(93481),f=r(63505),x=r(16314),y=r(3475),k=r(37559),w=r(21288),q=r(44224),j=r(44860),B=r(31352),C=r(52676),_=["name"],S=["key","name"],T=["key","name"],R=[{name:g.ZP.get("命令"),value:"command"},{name:g.ZP.get("名称"),value:"name"},{name:g.ZP.get("定时规则"),value:"schedule"},{name:g.ZP.get("状态"),value:"status",onlySelect:!0},{name:g.ZP.get("标签"),value:"labels"},{name:g.ZP.get("订阅"),value:"sub_id",onlySelect:!0}],I={Reg:"",NotReg:"",In:"select",Nin:"select"},U=[{name:g.ZP.get("包含"),value:"Reg"},{name:g.ZP.get("不包含"),value:"NotReg"},{name:g.ZP.get("属于"),value:"In",type:"select"},{name:g.ZP.get("不属于"),value:"Nin",type:"select"}],K=[{name:g.ZP.get("顺序"),value:"ASC"},{name:g.ZP.get("倒序"),value:"DESC"}],A=function(e){return e.and="且",e.or="或",e}(A||{});t.default=function(e){var t=e.view,r=e.handleCancel,a=m.Z.useForm(),n=d()(a,1)[0],o=(0,h.useState)(!1),u=d()(o,2),c=u[0],N=u[1],Q=(0,h.useState)("and"),H=d()(Q,2),X=H[0],M=H[1],O=m.Z.useWatch("filters",n),E=(0,B.Z)((function(){return x.W.get("".concat(y.Z.apiPrefix,"subscriptions"))}),{cacheKey:"subscriptions"}).data,W={status:[{name:g.ZP.get("运行中"),value:j.CrontabStatus.running},{name:g.ZP.get("空闲中"),value:j.CrontabStatus.idle},{name:g.ZP.get("已禁用"),value:j.CrontabStatus.disabled}],sub_id:null==E?void 0:E.data.map((function(e){return{name:e.name,value:e.id}}))},G=function(){var e=p()(i()().mark((function e(a){var l,n,o,u;return i()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N(!0),a.filterRelation=X,l=t?"put":"post",e.prev=3,e.next=6,x.W[l]("".concat(y.Z.apiPrefix,"crons/views"),t?s()(s()({},a),{},{id:t.id}):a);case 6:n=e.sent,o=n.code,u=n.data,200===o&&r(u),N(!1),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(3),N(!1);case 16:case"end":return e.stop()}}),e,null,[[3,13]])})));return function(t){return e.apply(this,arguments)}}(),D=function(e){var t=e.name,r=l()(e,_),a=n.getFieldValue(["filters",t,"property"]);return(0,C.jsx)(P.Z,s()(s()({style:{width:120},placeholder:g.ZP.get("请选择操作符")},r),{},{children:U.filter((function(e){return W[a]?"select"===e.type:e})).map((function(e){return(0,C.jsx)(P.Z.Option,{value:e.value,children:e.name},e.name)}))}))},L=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,C.jsx)(P.Z,{style:t,children:e.map((function(e){return(0,C.jsx)(P.Z.Option,{value:e.value,children:e.name},e.name)}))})},F=(0,C.jsx)(P.Z,{style:{width:80},children:K.map((function(e){return(0,C.jsx)(P.Z.Option,{value:e.value,children:e.name},e.name)}))});return(0,C.jsx)(Z.Z,{title:t?g.ZP.get("编辑视图"):g.ZP.get("创建视图"),open:!0,forceRender:!0,width:580,centered:!0,maskClosable:!1,onOk:function(){n.validateFields().then((function(e){G(e)})).catch((function(e){console.log("Validate Failed:",e)}))},onCancel:function(){return r()},confirmLoading:c,children:(0,C.jsxs)(m.Z,{form:n,layout:"vertical",initialValues:t||{filters:[{property:"command"}]},name:"env_modal",children:[(0,C.jsx)(m.Z.Item,{name:"name",label:g.ZP.get("视图名称"),rules:[{required:!0,message:g.ZP.get("请输入视图名称")}],children:(0,C.jsx)(b.Z,{placeholder:g.ZP.get("请输入视图名称")})}),(0,C.jsx)(m.Z.List,{name:"filters",children:function(e,t,r){var a=t.add,n=t.remove,i=r.errors;return(0,C.jsxs)("div",{style:{position:"relative"},className:"view-filters-container ".concat(e.length>1?"active":""),children:[e.length>1&&(0,C.jsx)("div",{style:{position:"absolute",width:50,borderRadius:10,border:"1px solid rgb(190, 220, 255)",borderRight:"none",height:56*(e.length-1),top:46,left:15},children:(0,C.jsx)(v.Z,{type:"primary",size:"small",style:{position:"absolute",top:"50%",translate:"-50% -50%",padding:"0 3px",cursor:"pointer"},onClick:function(){M("and"===X?"or":"and")},children:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{children:A[X]}),(0,C.jsx)(q.Z,{type:"ql-icon-d-caret"})]})})}),(0,C.jsxs)("div",{children:[e.map((function(e){var t,r,a=e.key,i=e.name,o=l()(e,S);return(0,C.jsx)(m.Z.Item,{label:0===i?g.ZP.get("筛选条件"):"",style:{marginBottom:0},required:!0,className:"filter-item",children:(0,C.jsxs)(f.Z,{className:"view-create-modal-filters",align:"baseline",children:[(0,C.jsx)(m.Z.Item,s()(s()({},o),{},{name:[i,"property"],rules:[{required:!0}],children:L(R,{width:120})})),(0,C.jsx)(m.Z.Item,s()(s()({},o),{},{name:[i,"operation"],rules:[{required:!0,message:g.ZP.get("请选择操作符")}],children:(0,C.jsx)(D,{name:i})})),(0,C.jsx)(m.Z.Item,s()(s()({},o),{},{name:[i,"value"],rules:[{required:!0,message:g.ZP.get("请输入内容")}],children:"select"===I[null==O?void 0:O[i].operation]?(t=null==O?void 0:O[i].property,(0,C.jsx)(P.Z,{mode:"tags",allowClear:!0,placeholder:g.ZP.get("输入后回车增加自定义选项"),children:null===(r=W[t])||void 0===r?void 0:r.map((function(e){return(0,C.jsx)(P.Z.Option,{value:e.value,children:e.name},e.name)}))})):(0,C.jsx)(b.Z,{placeholder:g.ZP.get("请输入内容")})})),0!==i&&(0,C.jsx)(k.Z,{onClick:function(){return n(i)}})]})},a)})),(0,C.jsx)(m.Z.Item,{children:(0,C.jsxs)("a",{onClick:function(){return a({property:"command",operation:"Reg"})},children:[(0,C.jsx)(w.Z,{}),g.ZP.get("新增筛选条件")]})}),(0,C.jsx)(m.Z.ErrorList,{errors:i})]})]})}}),(0,C.jsx)(m.Z.List,{name:"sorts",children:function(e,t,r){var a=t.add,n=t.remove,i=r.errors;return(0,C.jsxs)("div",{style:{position:"relative"},className:"view-filters-container ".concat(e.length>1?"active":""),children:[e.length>1&&(0,C.jsx)("div",{style:{position:"absolute",width:50,borderRadius:10,border:"1px solid rgb(190, 220, 255)",borderRight:"none",height:56*(e.length-1),top:46,left:15},children:(0,C.jsx)(v.Z,{type:"primary",size:"small",style:{position:"absolute",top:"50%",translate:"-50% -50%",padding:"0 3px",cursor:"pointer"},children:(0,C.jsx)(C.Fragment,{children:(0,C.jsx)("span",{children:A[X]})})})}),(0,C.jsxs)("div",{children:[e.map((function(e){var t=e.key,r=e.name,a=l()(e,T);return(0,C.jsx)(m.Z.Item,{label:0===r?g.ZP.get("排序方式"):"",style:{marginBottom:0},className:"filter-item",children:(0,C.jsxs)(f.Z,{className:"view-create-modal-sorts",align:"baseline",children:[(0,C.jsx)(m.Z.Item,s()(s()({},a),{},{name:[r,"property"],rules:[{required:!0}],children:L(R)})),(0,C.jsx)(m.Z.Item,s()(s()({},a),{},{name:[r,"type"],rules:[{required:!0}],children:F})),(0,C.jsx)(k.Z,{onClick:function(){return n(r)}})]})},t)})),(0,C.jsx)(m.Z.Item,{children:(0,C.jsxs)("a",{onClick:function(){return a({property:"command",type:"ASC"})},children:[(0,C.jsx)(w.Z,{}),g.ZP.get("新增排序方式")]})}),(0,C.jsx)(m.Z.ErrorList,{errors:i})]})]})}})]})})}},3475:function(e,t,r){var a=r(72317),l=window.__ENV__QlBaseUrl||"/";t.Z={siteName:a.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: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},{label:"emailTo",tip:a.ZP.get("收件邮箱地址,多个分号分隔,默认发送给发件邮箱地址")}],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 Z}});var a=r(90228),l=r.n(a),n=r(87999),i=r.n(n),o=r(72317),s=r(61508),u=r(33839),p=r(3475),c=r(98783),d=r(69313),g=r(52676);s.ZP.config({duration:2});var h=Date.now(),m=d.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"];m.interceptors.request.use((function(e){var t=localStorage.getItem(p.Z.authKey);return t&&!P.includes(e.url)?(e.headers.Authorization="Bearer ".concat(t),e):e})),m.interceptors.response.use(function(){var e=i()(l()().mark((function e(t){var r,a,n;return l()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.status,![502,504].includes(r)){e.next=5;break}c.history.push("/error"),e.next=18;break;case 5:if(401!==r){e.next=9;break}"/login"!==c.history.location.pathname&&(localStorage.removeItem(p.Z.authKey),c.history.push("/login")),e.next=18;break;case 9:return e.prev=9,200!==(a=t.data).code&&(n=a.message||a.data)&&u.Z.error({message:n,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))c.history.push("/error");else if(401===r)"/login"!==c.history.location.pathname&&(s.ZP.error(o.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(p.Z.authKey),c.history.push("/login"));else{var a,l,n,i;if("function"==typeof(null===(a=e.config)||void 0===a?void 0:a.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,g.jsx)(g.Fragment,{children:null===(n=e.response)||void 0===n||null===(n=n.data)||void 0===n||null===(n=n.errors)||void 0===n?void 0:n.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 Z=m}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[3191],{23191:function(e,t,l){"use strict";l.r(t);var n=l(90228),a=l.n(n),r=l(26068),o=l.n(r),i=l(87999),s=l.n(i),c=l(48305),u=l.n(c),d=l(72317),p=l(75271),h=l(35181),Z=l(72338),x=l(61508),m=l(17082),g=l(56646),P=l(45520),v=l(94747),f=l(9171),j=l(16314),b=l(3475),C=l(94046),w=l.n(C),y=l(46207),k=l.n(y),I=l(52676),_=h.Z.Option,S=/([^\/\:]+\/[^\/]+)(?=\.git)/,R=/([^\/\:]+\/[^\/\.]+)\.[a-z]+$/;t.default=function(e){var t,l=e.subscription,n=e.handleCancel,r=Z.Z.useForm(),i=u()(r,1)[0],c=(0,p.useState)(!1),C=u()(c,2),y=C[0],T=C[1],F=(0,p.useState)((null==l?void 0:l.type)||"public-repo"),O=u()(F,2),V=O[0],q=O[1],A=(0,p.useState)((null==l?void 0:l.schedule_type)||"crontab"),E=u()(A,2),N=E[0],D=E[1],z=(0,p.useState)((null==l?void 0:l.pull_type)||"ssh-key"),K=u()(z,2),B=K[0],G=K[1],H=function(){var e=s()(a()().mark((function e(t){var r,i,s,c,u;return a()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return T(!0),r=l?"put":"post",i=o()(o()({},t),{},{autoAddCron:Boolean(t.autoAddCron),autoDelCron:Boolean(t.autoDelCron)}),l&&(i.id=l.id),e.prev=4,e.next=7,j.W[r]("".concat(b.Z.apiPrefix,"subscriptions"),i);case 7:s=e.sent,c=s.code,u=s.data,200===c&&(x.ZP.success(l?d.ZP.get("更新订阅成功"):d.ZP.get("创建订阅成功")),n(u)),T(!1),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(4),T(!1);case 17:case"end":return e.stop()}}),e,null,[[4,14]])})));return function(t){return e.apply(this,arguments)}}(),L=function(e,t){var l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:V,n="",a="file"===l?R:S;return a.test(e)&&(n=e.match(a)[1].replaceAll("/","_").replaceAll(".","_")),t&&(n=n+"_"+t),n},W=function(e){var t=e.value,l=e.onChange,n=(0,p.useState)("days"),a=u()(n,2),r=a[0],o=a[1],i=(0,p.useState)(),s=u()(i,2),c=s[0],Z=s[1];return(0,p.useEffect)((function(){t&&(o(t.type),Z(t.value))}),[t]),(0,I.jsxs)(m.Z.Group,{compact:!0,children:[(0,I.jsx)(g.Z,{addonBefore:d.ZP.get("每"),precision:0,min:1,value:c,style:{width:"calc(100% - 58px)"},onChange:function(e){Z(e||1),e?null==l||l({type:r,value:e}):null==l||l(null)}}),(0,I.jsxs)(h.Z,{value:r,onChange:function(e){o(e),c&&c>0&&(null==l||l({type:e,value:c}))},children:[(0,I.jsx)(_,{value:"days",children:d.ZP.get("天")}),(0,I.jsx)(_,{value:"hours",children:d.ZP.get("时")}),(0,I.jsx)(_,{value:"minutes",children:d.ZP.get("分")}),(0,I.jsx)(_,{value:"seconds",children:d.ZP.get("秒")})]})]})},$=function(e){e.value,e.onChange;return"ssh-key"===e.type?(0,I.jsx)(Z.Z.Item,{name:["pull_option","private_key"],label:d.ZP.get("私钥"),rules:[{required:!0}],children:(0,I.jsx)(m.Z.TextArea,{rows:4,autoSize:{minRows:1,maxRows:6},placeholder:d.ZP.get("请输入私钥")})}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Z.Z.Item,{name:["pull_option","username"],label:d.ZP.get("用户名"),rules:[{required:!0}],children:(0,I.jsx)(m.Z,{placeholder:d.ZP.get("请输入认证用户名")})}),(0,I.jsx)(Z.Z.Item,{name:["pull_option","password"],tooltip:d.ZP.get("Github已不支持密码认证,请使用Token方式"),label:d.ZP.get("密码/Token"),rules:[{required:!0}],children:(0,I.jsx)(m.Z,{placeholder:d.ZP.get("请输入密码或者Token")})})]})},J=(0,p.useCallback)((function(e){var t=e.clipboardData.getData("text");if(t.startsWith("ql ")){var l=t.split(" ").map((function(e){return e.trim().replace(/\"/g,"").replace(/\'/,"")})),n=u()(l,8),a=n[1],r=n[2],o=n[3],s=n[4],c=n[5],d=n[6],p=n[7],h="raw"===a?"file":r.startsWith("http")?"public-repo":"private-repo";i.setFieldsValue({type:h,url:r,whitelist:o,blacklist:s,dependences:c,branch:d,extensions:p,alias:L(r,d,h)}),q(h)}}),[]),M=(0,p.useCallback)((function(e){var t=e.clipboardData.getData("text");(t.includes("ql repo")||t.includes("ql raw"))&&e.preventDefault()}),[]);return(0,p.useEffect)((function(){return window.addEventListener("paste",J),function(){window.removeEventListener("paste",J)}}),[]),(0,I.jsx)(P.Z,{title:l?d.ZP.get("编辑订阅"):d.ZP.get("创建订阅"),open:!0,forceRender:!0,centered:!0,maskClosable:!1,onOk:function(){i.validateFields().then((function(e){H(e)})).catch((function(e){console.log("Validate Failed:",e)}))},onCancel:function(){return n()},confirmLoading:y,children:(0,I.jsxs)(Z.Z,{form:i,name:"form_in_modal",layout:"vertical",initialValues:o()(o()({},l),(t=l,o()(o()({},t),{},{autoAddCron:!!k()(null==t?void 0:t.autoAddCron)||Boolean(null==t?void 0:t.autoAddCron),autoDelCron:!!k()(null==t?void 0:t.autoDelCron)||Boolean(null==t?void 0:t.autoDelCron)}))),children:[(0,I.jsx)(Z.Z.Item,{name:"name",label:d.ZP.get("名称"),rules:[{required:!0}],children:(0,I.jsx)(m.Z,{placeholder:d.ZP.get("支持拷贝 ql repo/raw 命令,粘贴导入"),onPaste:M})}),(0,I.jsx)(Z.Z.Item,{name:"type",label:d.ZP.get("类型"),rules:[{required:!0}],initialValue:"public-repo",children:(0,I.jsxs)(v.ZP.Group,{onChange:function(e){q(e.target.value);var t=i.getFieldValue("url"),l=i.getFieldValue("branch");i.setFieldsValue({alias:L(t,l,e.target.value)}),t&&i.validateFields(["url"])},children:[(0,I.jsx)(v.ZP,{value:"public-repo",children:d.ZP.get("公开仓库")}),(0,I.jsx)(v.ZP,{value:"private-repo",children:d.ZP.get("私有仓库")}),(0,I.jsx)(v.ZP,{value:"file",children:d.ZP.get("单文件")})]})}),(0,I.jsx)(Z.Z.Item,{name:"url",label:d.ZP.get("链接"),rules:[{required:!0},{pattern:"file"===V?R:S}],children:(0,I.jsx)(m.Z.TextArea,{autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入订阅链接"),onPaste:M,onChange:function(e){var t=i.getFieldValue("branch");i.setFieldsValue({alias:L(e.target.value,t)})}})}),"file"!==V&&(0,I.jsx)(Z.Z.Item,{name:"branch",label:d.ZP.get("分支"),children:(0,I.jsx)(m.Z,{placeholder:d.ZP.get("请输入分支"),onPaste:M,onChange:function(e){var t=i.getFieldValue("url");i.setFieldsValue({alias:L(t,e.target.value)})}})}),(0,I.jsx)(Z.Z.Item,{name:"alias",label:d.ZP.get("唯一值"),rules:[{required:!0,message:""}],tooltip:d.ZP.get("唯一值用于日志目录和私钥别名"),children:(0,I.jsx)(m.Z,{placeholder:d.ZP.get("自动生成"),disabled:!0})}),"private-repo"===V&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Z.Z.Item,{name:"pull_type",label:d.ZP.get("拉取方式"),initialValue:"ssh-key",rules:[{required:!0}],children:(0,I.jsxs)(v.ZP.Group,{onChange:function(e){G(e.target.value)},children:[(0,I.jsx)(v.ZP,{value:"ssh-key",children:d.ZP.get("私钥")}),(0,I.jsx)(v.ZP,{value:"user-pwd",children:d.ZP.get("用户名密码/Token")})]})}),(0,I.jsx)($,{type:B})]}),(0,I.jsx)(Z.Z.Item,{name:"schedule_type",label:d.ZP.get("定时类型"),initialValue:"crontab",rules:[{required:!0}],children:(0,I.jsxs)(v.ZP.Group,{onChange:function(e){D(e.target.value),i.setFieldsValue({schedule:""})},children:[(0,I.jsx)(v.ZP,{value:"crontab",children:"crontab"}),(0,I.jsx)(v.ZP,{value:"interval",children:"interval"})]})}),(0,I.jsx)(Z.Z.Item,{name:"crontab"===N?"schedule":"interval_schedule",label:d.ZP.get("定时规则"),rules:[{required:!0},{validator:function(e,t){return"interval"===N||!t||w().parseExpression(t).hasNext()?Promise.resolve():Promise.reject(d.ZP.get("Subscription表达式格式有误"))}}],children:"interval"===N?(0,I.jsx)(W,{}):(0,I.jsx)(m.Z,{onPaste:M,placeholder:d.ZP.get("秒(可选) 分 时 天 月 周")})}),"file"!==V&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Z.Z.Item,{name:"whitelist",label:d.ZP.get("白名单"),tooltip:d.ZP.get("多个关键词竖线分割,支持正则表达式"),children:(0,I.jsx)(m.Z.TextArea,{rows:4,autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入脚本筛选白名单关键词,多个关键词竖线分割"),onPaste:M})}),(0,I.jsx)(Z.Z.Item,{name:"blacklist",label:d.ZP.get("黑名单"),tooltip:d.ZP.get("多个关键词竖线分割,支持正则表达式"),children:(0,I.jsx)(m.Z.TextArea,{rows:4,autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入脚本筛选黑名单关键词,多个关键词竖线分割"),onPaste:M})}),(0,I.jsx)(Z.Z.Item,{name:"dependences",label:d.ZP.get("依赖文件"),tooltip:d.ZP.get("多个关键词竖线分割,支持正则表达式"),children:(0,I.jsx)(m.Z.TextArea,{rows:4,autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入脚本依赖文件关键词,多个关键词竖线分割"),onPaste:M})}),(0,I.jsx)(Z.Z.Item,{name:"extensions",label:d.ZP.get("文件后缀"),tooltip:d.ZP.get("仓库需要拉取的文件后缀,多个后缀空格分隔,默认使用配置文件中的RepoFileExtensions"),children:(0,I.jsx)(m.Z,{onPaste:M,placeholder:d.ZP.get("请输入文件后缀")})}),(0,I.jsx)(Z.Z.Item,{name:"sub_before",label:d.ZP.get("执行前"),tooltip:d.ZP.get("运行订阅前执行的命令,比如 cp/mv/python3 xxx.py/node xxx.js"),children:(0,I.jsx)(m.Z.TextArea,{onPaste:M,rows:4,autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入运行订阅前要执行的命令")})}),(0,I.jsx)(Z.Z.Item,{name:"sub_after",label:d.ZP.get("执行后"),tooltip:d.ZP.get("运行订阅后执行的命令,比如 cp/mv/python3 xxx.py/node xxx.js"),children:(0,I.jsx)(m.Z.TextArea,{onPaste:M,rows:4,autoSize:{minRows:1,maxRows:5},placeholder:d.ZP.get("请输入运行订阅后要执行的命令")})})]}),(0,I.jsx)(Z.Z.Item,{name:"proxy",label:d.ZP.get("代理"),tooltip:d.ZP.get("公开仓库支持HTTP/SOCK5代理,私有仓库支持SOCK5代理"),children:(0,I.jsx)(m.Z,{onPaste:M,placeholder:"private-repo"===V?"SOCK5代理,例如 IP:PORT":"HTTP/SOCK5代理,例如 http://127.0.0.1:1080"})}),(0,I.jsxs)(Z.Z.Item,{style:{marginBottom:0},className:"inline-form-item",children:[(0,I.jsx)(Z.Z.Item,{name:"autoAddCron",label:d.ZP.get("自动添加任务"),valuePropName:"checked",initialValue:!0,children:(0,I.jsx)(f.Z,{})}),(0,I.jsx)(Z.Z.Item,{name:"autoDelCron",label:d.ZP.get("自动删除任务"),valuePropName:"checked",initialValue:!0,children:(0,I.jsx)(f.Z,{})})]})]})})}},9171:function(e,t,l){"use strict";l.d(t,{Z:function(){return j}});var n=l(2053),a=l(57904),r=l(24727),o=l(82187),i=l.n(o),s=l(99459),c=l(53162),u=l(75271),d=l(6522),p=l(1260),h=u.forwardRef((function(e,t){var l,n=e.prefixCls,r=void 0===n?"rc-switch":n,o=e.className,h=e.checked,Z=e.defaultChecked,x=e.disabled,m=e.loadingIcon,g=e.checkedChildren,P=e.unCheckedChildren,v=e.onClick,f=e.onChange,j=e.onKeyDown,b=(0,c.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),C=(0,d.Z)(!1,{value:h,defaultValue:Z}),w=(0,s.Z)(C,2),y=w[0],k=w[1];function I(e,t){var l=y;return x||(k(l=e),null==f||f(l,t)),l}var _=i()(r,o,(l={},(0,a.Z)(l,"".concat(r,"-checked"),y),(0,a.Z)(l,"".concat(r,"-disabled"),x),l));return u.createElement("button",Object.assign({},b,{type:"button",role:"switch","aria-checked":y,disabled:x,className:_,ref:t,onKeyDown:function(e){e.which===p.Z.LEFT?I(!1,e):e.which===p.Z.RIGHT&&I(!0,e),null==j||j(e)},onClick:function(e){var t=I(!y,e);null==v||v(t,e)}}),m,u.createElement("span",{className:"".concat(r,"-inner")},y?g:P))}));h.displayName="Switch";var Z=h,x=l(96820),m=l(30107),g=l(38470),P=l(74244),v=function(e,t){var l={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(l[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(l[n[a]]=e[n[a]])}return l},f=u.forwardRef((function(e,t){var l=e.prefixCls,o=e.size,s=e.disabled,c=e.loading,d=e.className,p=void 0===d?"":d,h=v(e,["prefixCls","size","disabled","loading","className"]),f=u.useContext(x.E_),j=f.getPrefixCls,b=f.direction,C=u.useContext(g.Z),w=u.useContext(m.Z),y=(null!=s?s:w)||c,k=j("switch",l),I=u.createElement("div",{className:"".concat(k,"-handle")},c&&u.createElement(r.Z,{className:"".concat(k,"-loading-icon")})),_=i()((0,a.Z)((0,a.Z)((0,a.Z)({},"".concat(k,"-small"),"small"===(o||C)),"".concat(k,"-loading"),c),"".concat(k,"-rtl"),"rtl"===b),p);return u.createElement(P.Z,{insertExtraNode:!0},u.createElement(Z,(0,n.Z)({},h,{prefixCls:k,className:_,disabled:y,ref:t,loadingIcon:I})))}));f.__ANT_SWITCH=!0;var j=f},46207:function(e){e.exports=function(e){return null==e}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_whyour_qinglong=self.webpackChunk_whyour_qinglong||[]).push([[8826,7243],{8826:function(e,t,a){a.r(t);var n=a(48305),i=a.n(n),r=a(72317),o=a(75271),l=a(45520),s=a(93481),u=a(16314),c=a(3475),p=a(56958),g=a(44084),d=a(34014),h=a(78060),b=a.n(h),P=a(65814),v=a(57113),f=a(52676);t.default=function(e){var t=e.dependence,a=e.handleCancel,n=(0,o.useState)(""),h=i()(n,2),m=h[0],Z=h[1],k=(0,o.useState)(!0),y=i()(k,2),x=y[0],w=y[1],q=(0,o.useState)(!1),B=i()(q,2),S=B[0],T=B[1],C=(0,o.useState)(!0),_=i()(C,2),A=_[0],I=_[1],E=(0,o.useState)(!1),U=i()(E,2),H=U[0],K=U[1],j=(0,o.useState)(!1),D=i()(j,2),M=D[0],R=D[1],Q=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];localStorage.removeItem("logDependence"),a(e)};(0,o.useEffect)((function(){t&&(I(!0),u.W.get("".concat(c.Z.apiPrefix,"dependencies/").concat(t.id)).then((function(e){var a=e.code,n=e.data;if(200===a&&localStorage.getItem("logDependence")===String(t.id)){var i=((null==n?void 0:n.log)||[]).join("");Z(i),w(!i.includes("结束时间")),K(i.includes("删除失败"))}})).finally((function(){I(!1)})))}),[t]);var X=function(e){var a=e.message,n=e.references;n.length>0&&n.includes(t.id)&&[v.Status.删除中,v.Status.安装中].includes(t.status)&&(a.includes("结束时间")&&(w(!1),K(a.includes("删除失败"))),Z((function(e){return"".concat(e).concat(a)})))};return(0,o.useEffect)((function(){var e=P.Z.getInstance();return e.subscribe("installDependence",X),e.subscribe("uninstallDependence",X),function(){e.unsubscribe("installDependence",X),e.unsubscribe("uninstallDependence",X)}}),[t]),(0,o.useEffect)((function(){T(document.body.clientWidth<768)}),[]),(0,f.jsx)(l.Z,{title:(0,f.jsxs)(f.Fragment,{children:[x&&(0,f.jsx)(p.Z,{spin:!0}),!x&&(0,f.jsx)(g.Z,{}),(0,f.jsxs)("span",{style:{marginLeft:5},children:[r.ZP.get("日志 -")," ",t&&t.name]})," "]}),open:!0,centered:!0,className:"log-modal",forceRender:!0,onOk:function(){return Q()},onCancel:function(){return Q()},footer:[(0,f.jsx)(s.Z,{type:"primary",onClick:function(){H?(R(!0),u.W.delete("".concat(c.Z.apiPrefix,"dependencies/force"),{data:[t.id]}).then((function(e){var t=e.code;e.data,200===t&&Q(!0)})).finally((function(){R(!1)}))):Q()},loading:M,children:H?r.ZP.get("强制删除"):r.ZP.get("知道了")})],children:(0,f.jsx)("div",{className:"log-container",children:A?(0,f.jsx)(d.Z,{}):(0,f.jsx)("pre",{style:S?{fontFamily:"Source Code Pro",zoom:.83}:{},children:(0,f.jsx)(b(),{children:m})})})})}},57113:function(e,t,a){a.r(t),a.d(t,{DependenceStatus:function(){return n},Status:function(){return i}});var n=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,a){var n=a(72317),i=window.__ENV__QlBaseUrl||"/";t.Z={siteName:n.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:n.ZP.get("中文"),flag:"/china.svg"}],defaultLanguage:"en"},scopes:[{name:n.ZP.get("定时任务"),value:"crons"},{name:n.ZP.get("环境变量"),value:"envs"},{name:n.ZP.get("订阅管理"),value:"subscriptions"},{name:n.ZP.get("配置文件"),value:"configs"},{name:n.ZP.get("脚本管理"),value:"scripts"},{name:n.ZP.get("日志管理"),value:"logs"},{name:n.ZP.get("依赖管理"),value:"dependencies"},{name:n.ZP.get("系统信息"),value:"system"}],scopesMap:{crons:n.ZP.get("定时任务"),envs:n.ZP.get("环境变量"),subscriptions:n.ZP.get("订阅管理"),configs:n.ZP.get("配置文件"),scripts:n.ZP.get("脚本管理"),logs:n.ZP.get("日志管理"),dependencies:n.ZP.get("依赖管理"),system:n.ZP.get("系统信息")},notificationModes:[{value:"gotify",label:"Gotify"},{value:"ntfy",label:"Ntfy"},{value:"goCqHttpBot",label:"GoCqHttpBot"},{value:"serverChan",label:n.ZP.get("Server酱")},{value:"pushDeer",label:"PushDeer"},{value:"bark",label:"Bark"},{value:"telegramBot",label:n.ZP.get("Telegram机器人")},{value:"dingtalkBot",label:n.ZP.get("钉钉机器人")},{value:"weWorkBot",label:n.ZP.get("企业微信机器人")},{value:"weWorkApp",label:n.ZP.get("企业微信应用")},{value:"aibotk",label:n.ZP.get("智能微秘书")},{value:"iGot",label:"IGot"},{value:"pushPlus",label:"PushPlus"},{value:"wePlusBot",label:n.ZP.get("微加机器人")},{value:"wxPusherBot",label:"wxPusher"},{value:"chat",label:n.ZP.get("群晖chat")},{value:"email",label:n.ZP.get("邮箱")},{value:"lark",label:n.ZP.get("飞书机器人")},{value:"pushMe",label:"PushMe"},{value:"chronocat",label:"Chronocat"},{value:"webhook",label:n.ZP.get("自定义通知")},{value:"closed",label:n.ZP.get("已关闭")}],notificationModeMap:{gotify:[{label:"gotifyUrl",tip:n.ZP.get("gotify的url地址,例如 https://push.example.de:8080"),required:!0},{label:"gotifyToken",tip:n.ZP.get("gotify的消息应用token码"),required:!0},{label:"gotifyPriority",tip:n.ZP.get("推送消息的优先级")}],ntfy:[{label:"ntfyUrl",tip:n.ZP.get("ntfy的url地址,例如 https://ntfy.sh"),required:!0},{label:"ntfyTopic",tip:n.ZP.get("ntfy的消息应用topic"),required:!0},{label:"ntfyPriority",tip:n.ZP.get("推送消息的优先级")}],chat:[{label:"synologyChatUrl",tip:n.ZP.get("synologyChat的url地址"),required:!0}],goCqHttpBot:[{label:"goCqHttpBotUrl",tip:n.ZP.get("推送到个人QQ: http://127.0.0.1/send_private_msg,群:http://127.0.0.1/send_group_msg"),required:!0},{label:"goCqHttpBotToken",tip:n.ZP.get("访问密钥"),required:!0},{label:"goCqHttpBotQq",tip:n.ZP.get("如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群"),required:!0}],serverChan:[{label:"serverChanKey",tip:n.ZP.get("Server酱SENDKEY"),required:!0}],pushDeer:[{label:"pushDeerKey",tip:n.ZP.get("PushDeer的Key,https://github.com/easychen/pushdeer"),required:!0},{label:"pushDeerUrl",tip:n.ZP.get("PushDeer的自架API endpoint,默认是 https://api2.pushdeer.com/message/push")}],bark:[{label:"barkPush",tip:n.ZP.get("Bark的信息IP/设备码,例如:https://api.day.app/XXXXXXXX"),required:!0},{label:"barkIcon",tip:n.ZP.get("BARK推送图标,自定义推送图标 (需iOS15或以上才能显示)")},{label:"barkSound",tip:n.ZP.get("BARK推送铃声,铃声列表去APP查看复制填写")},{label:"barkGroup",tip:n.ZP.get("BARK推送消息的分组,默认为qinglong")},{label:"barkLevel",tip:n.ZP.get("BARK推送消息的时效性,默认为active")},{label:"barkUrl",tip:n.ZP.get("BARK推送消息的跳转URL")},{label:"barkArchive",tip:n.ZP.get("BARK是否保存推送消息")}],telegramBot:[{label:"telegramBotToken",tip:n.ZP.get("telegram机器人的token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw"),required:!0},{label:"telegramBotUserId",tip:n.ZP.get("telegram用户的id,例如:129xxx206"),required:!0},{label:"telegramBotProxyHost",tip:n.ZP.get("代理IP")},{label:"telegramBotProxyPort",tip:n.ZP.get("代理端口")},{label:"telegramBotProxyAuth",tip:n.ZP.get("telegram代理配置认证参数,用户名与密码用英文冒号连接 user:password")},{label:"telegramBotApiHost",tip:n.ZP.get("telegram api自建的反向代理地址,默认tg官方api")}],dingtalkBot:[{label:"dingtalkBotToken",tip:n.ZP.get("钉钉机器人webhook token,例如:5a544165465465645d0f31dca676e7bd07415asdasd"),required:!0},{label:"dingtalkBotSecret",tip:n.ZP.get("密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串")}],weWorkBot:[{label:"weWorkBotKey",tip:n.ZP.get("企业微信机器人的webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa"),required:!0},{label:"weWorkOrigin",tip:n.ZP.get("企业微信代理地址")}],weWorkApp:[{label:"weWorkAppKey",tip:n.ZP.get("corpid、corpsecret、touser(注:多个成员ID使用|隔开)、agentid、消息类型(选填,不填默认文本消息类型) 注意用,号隔开(英文输入法的逗号),例如:wwcfrs,B-76WERQ,qinglong,1000001,2COat"),required:!0},{label:"weWorkOrigin",tip:n.ZP.get("企业微信代理地址")}],aibotk:[{label:"aibotkKey",tip:n.ZP.get("密钥key,智能微秘书个人中心获取apikey,申请地址:https://wechat.aibotk.com/signup?from=ql"),required:!0},{label:"aibotkType",tip:n.ZP.get("发送的目标,群组或者好友"),required:!0,placeholder:n.ZP.get("请输入要发送的目标"),items:[{value:"room",label:n.ZP.get("群聊")},{value:"contact",label:n.ZP.get("好友")}]},{label:"aibotkName",tip:n.ZP.get("要发送的用户昵称或群名,如果目标是群,需要填群名,如果目标是好友,需要填好友昵称"),required:!0}],iGot:[{label:"iGotPushKey",tip:n.ZP.get("iGot的信息推送key,例如:https://push.hellyw.com/XXXXXXXX"),required:!0}],pushPlus:[{label:"pushPlusToken",tip:n.ZP.get("微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送,参考 https://www.pushplus.plus/"),required:!0},{label:"pushPlusUser",tip:n.ZP.get("一对多推送的“群组编码”(一对多推送下面->您的群组(如无则创建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送)")},{label:"pushplusTemplate",tip:n.ZP.get("发送模板")},{label:"pushplusChannel",tip:n.ZP.get("发送渠道")},{label:"pushplusWebhook",tip:n.ZP.get("webhook编码")},{label:"pushplusCallbackUrl",tip:n.ZP.get("发送结果回调地址")},{label:"pushplusTo",tip:n.ZP.get("好友令牌")}],wePlusBot:[{label:"wePlusBotToken",tip:n.ZP.get("用户令牌,扫描登录后 我的—>设置->令牌 中获取,参考 https://www.weplusbot.com/"),required:!0},{label:"wePlusBotReceiver",tip:n.ZP.get("消息接收人")},{label:"wePlusBotVersion",tip:n.ZP.get("调用版本;专业版填写pro,个人版填写personal,为空默认使用专业版")}],wxPusherBot:[{label:"wxPusherBotAppToken",tip:n.ZP.get("wxPusherBot的appToken"),required:!0},{label:"wxPusherBotTopicIds",tip:n.ZP.get("wxPusherBot的topicIds"),required:!1},{label:"wxPusherBotUids",tip:n.ZP.get("wxPusherBot的uids"),required:!1}],lark:[{label:"larkKey",tip:n.ZP.get("飞书群组机器人:https://www.feishu.cn/hc/zh-CN/articles/360024984973"),required:!0}],email:[{label:"emailService",tip:n.ZP.get("邮箱服务名称,比如126、163、Gmail、QQ等,支持列表https://github.com/nodemailer/nodemailer/blob/master/lib/well-known/services.json"),required:!0},{label:"emailUser",tip:n.ZP.get("邮箱认证地址"),required:!0},{label:"emailPass",tip:n.ZP.get("SMTP 登录密码,也可能为特殊口令,视具体邮件服务商说明而定"),required:!0},{label:"emailTo",tip:n.ZP.get("收件邮箱地址,多个分号分隔,默认发送给发件邮箱地址")}],pushMe:[{label:"pushMeKey",tip:n.ZP.get("PushMe的Key,https://push.i-i.me/"),required:!0},{label:"pushMeUrl",tip:n.ZP.get("自建的PushMeServer消息接口地址,例如:http://127.0.0.1:3010,不填则使用官方消息接口"),required:!1}],chronocat:[{label:"chronocatURL",tip:n.ZP.get("Chronocat Red 服务的连接地址 https://chronocat.vercel.app/install/docker/official/"),required:!0},{label:"chronocatQQ",tip:n.ZP.get("个人:user_id=个人QQ 群则填入group_id=QQ群 多个用英文;隔开同时支持个人和群 如:user_id=xxx;group_id=xxxx;group_id=xxxxx"),required:!0},{label:"chronocatToken",tip:n.ZP.get("docker安装在持久化config目录下的chronocat.yml文件可找到"),required:!0}],webhook:[{label:"webhookMethod",tip:n.ZP.get("请求方法"),required:!0,items:[{value:"GET"},{value:"POST"},{value:"PUT"}]},{label:"webhookContentType",tip:n.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:n.ZP.get("请求链接以http或者https开头。url或者body中必须包含$title,$content可选,对应api内容的位置"),required:!0,placeholder:"https://xxx.cn/api?content=$title\n"},{label:"webhookHeaders",tip:n.ZP.get("请求头格式Custom-Header1: Header1,多个换行分割"),placeholder:"Custom-Header1: Header1\nCustom-Header2: Header2"},{label:"webhookBody",tip:n.ZP.get("请求体格式key1: value1,多个换行分割。url或者body中必须包含$title,$content可选,对应api内容的位置"),placeholder:"key1: $title\nkey2: $content"}]},documentTitleMap:{"/login":n.ZP.get("登录"),"/initialization":n.ZP.get("初始化"),"/crontab":n.ZP.get("定时任务"),"/env":n.ZP.get("环境变量"),"/subscription":n.ZP.get("订阅管理"),"/config":n.ZP.get("配置文件"),"/script":n.ZP.get("脚本管理"),"/diff":n.ZP.get("对比工具"),"/log":n.ZP.get("日志管理"),"/setting":n.ZP.get("系统设置"),"/error":n.ZP.get("错误日志"),"/dependence":n.ZP.get("依赖管理")},dependenceTypes:["nodejs","python3","linux"]}},16314:function(e,t,a){a.d(t,{W:function(){return v}});var n=a(90228),i=a.n(n),r=a(87999),o=a.n(r),l=a(72317),s=a(61508),u=a(33839),c=a(3475),p=a(98783),g=a(69313),d=a(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 a,n,r;return i()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=t.status,![502,504].includes(a)){e.next=5;break}p.history.push("/error"),e.next=18;break;case 5:if(401!==a){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!==(n=t.data).code&&(r=n.message||n.data)&&u.Z.error({message:r,description:null!=n&&n.errors?(0,d.jsx)(d.Fragment,{children:null==n?void 0:n.errors.map((function(e){return(0,d.jsx)("div",{children:e.message})}))}):void 0}),e.abrupt("return",n);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))p.history.push("/error");else if(401===a)"/login"!==p.history.location.pathname&&(s.ZP.error(l.ZP.get("登录已过期,请重新登录")),localStorage.removeItem(c.Z.authKey),p.history.push("/login"));else{var n,i,r,o;if("function"==typeof(null===(n=e.config)||void 0===n?void 0:n.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,a){var n=a(15558),i=a.n(n),r=a(67825),o=a.n(r),l=a(90228),s=a.n(l),u=a(87999),c=a.n(u),p=a(25298),g=a.n(p),d=a(17069),h=a.n(d),b=a(82092),P=a.n(b),v=a(78078),f=a.n(v),m=["type"],Z=function(){function e(t){var a=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:a.maxReconnectAttempts||5,reconnectInterval:a.reconnectInterval||3e3,heartbeatInterval:a.heartbeatInterval||3e4},this.init()}var t,a;return h()(e,[{key:"init",value:(a=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 a.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 a=JSON.parse(t.data);e.dispatchMessage(a)},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 a=this.subscriptions.get(e)||new Set;if(!a.has(t)){a.add(t),this.subscriptions.set(e,a);var n={action:"subscribe",topic:e};this.send(n)}}},{key:"unsubscribe",value:function(e,t){var a=this.subscriptions.get(e)||new Set;if(a.has(t)){a.delete(t);var n={action:"unsubscribe",topic:e};this.send(n)}}},{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,a=o()(e,m),n=this.subscriptions.get(t)||new Set;i()(n).forEach((function(e){return e(a)}))}},{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]:"",a=arguments.length>1?arguments[1]:void 0;return e.instance||(e.instance=new e(t,a)),e.instance}}]),e}();P()(Z,"instance",null),t.Z=Z}}]);
@@ -7,10 +7,10 @@
7
7
  <link rel="shortcut icon" href="https://qn.whyour.cn/favicon.svg">
8
8
  <link rel="stylesheet" href="./umi.a4d14b92.css">
9
9
  <script src="./api/env.js"></script>
10
- <script src="./preload_helper.6f133e1a.js"></script>
10
+ <script src="./preload_helper.aa612b58.js"></script>
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
14
- <script src="./umi.80b4d6a9.js"></script>
14
+ <script src="./umi.1a9e58b8.js"></script>
15
15
  </body>
16
16
  </html>
@@ -1 +1 @@
1
- !function(){"use strict";var t="/".replace(/([^/])$/,"$1/"),e=location.pathname,n=e.startsWith(t)&&decodeURI("/".concat(e.slice(t.length)));if(n){var a=document,c=a.head,r=a.createElement.bind(a),i=function(t,e,n){var a,c=e.r[t]||(null===(a=Object.entries(e.r).find((function(e){var n=e[0];return new RegExp("^".concat(n.replace(/\/:[^/]+/g,"/[^/]+").replace("/*","/.+"),"$")).test(t)})))||void 0===a?void 0:a[1]);return null==c?void 0:c.map((function(t){var a=e.f[t][1],c=e.f[t][0];return{type:c.split(".").pop(),url:"".concat(n.publicPath).concat(c),attrs:[["data-".concat(e.b),"".concat(e.p,":").concat(a)]]}}))}(n,{"p":"@whyour/qinglong","b":"webpack","f":[["src__pages__subscription__modal.46a69195.async.js",73],["119.89e2d610.async.js",119],["src__pages__setting__about.e6db5090.chunk.css",154],["src__pages__setting__about.3d3c019f.async.js",154],["src__pages__env__modal.7d952f26.async.js",222],["255.12f03ab2.async.js",255],["src__pages__crontab__viewManageModal.c4bfd6a2.async.js",349],["src__pages__script__setting.dcdd7253.async.js",440],["src__pages__subscription__logModal.9bf0b4f6.async.js",578],["691.187a388c.async.js",691],["src__pages__dependence__modal.7f588c0b.async.js",803],["874.ae8edb1a.async.js",874],["1352.ab6da08e.async.js",1352],["src__pages__dependence__logModal.f123e2ac.async.js",1406],["src__pages__initialization__index.66819338.chunk.css",1554],["src__pages__initialization__index.5bd471c5.async.js",1554],["1571.94ddca13.async.js",1571],["layouts__index.1fce90e0.chunk.css",1717],["layouts__index.8451cde4.async.js",1717],["1742.6cbe5aca.async.js",1742],["1765.d8e002d7.async.js",1765],["1883.675b6a18.chunk.css",1883],["1885.e0d00d2d.async.js",1885],["2096.383c1047.async.js",2096],["2208.98ccac5f.async.js",2208],["src__pages__setting__appModal.25adf30e.async.js",2313],["2325.dfa32834.async.js",2325],["2338.d678967d.async.js",2338],["src__pages__setting__index.7cf46d4a.chunk.css",2340],["src__pages__setting__index.3b426f9f.async.js",2340],["2821.be3dc88e.async.js",2821],["2890.9e373f5b.async.js",2890],["src__pages__script__components__UnsupportedFilePreview__index.d50aeff1.chunk.css",2892],["src__pages__script__components__UnsupportedFilePreview__index.39074c68.async.js",2892],["3191.f56b00f8.async.js",3191],["src__pages__error__index.b047bb77.chunk.css",3217],["src__pages__error__index.18520dbf.async.js",3217],["src__pages__crontab__logModal.0767c532.async.js",3249],["src__pages__setting__progress.8823ac90.async.js",3308],["3382.a584a111.async.js",3382],["3383.041eee73.async.js",3383],["3390.fb4b6851.async.js",3390],["3481.333c2962.async.js",3481],["3600.7637c822.async.js",3600],["src__pages__setting__checkUpdate.c152dfaf.async.js",3830],["4046.7fbcfa02.async.js",4046],["src__pages__env__editNameModal.411043e2.async.js",4216],["src__pages__crontab__viewCreateModal.ffcf7a24.async.js",4453],["src__pages__crontab__index.5bbea517.chunk.css",4473],["src__pages__crontab__index.d6d37f6a.async.js",4473],["src__pages__crontab__const.323d5124.async.js",4555],["src__pages__404.771168fc.async.js",4650],["4859.1b962b29.chunk.css",4859],["4859.93e63ea6.async.js",4859],["4902.54ecbdb5.async.js",4902],["4934.1ca6b6b0.async.js",4934],["5312.74b95311.async.js",5312],["5481.624d0e07.async.js",5481],["5520.ff2cfd6b.async.js",5520],["src__pages__setting__security.7c80dd0f.chunk.css",5530],["src__pages__setting__security.7623a492.async.js",5530],["src__pages__script__editModal.10dd9857.async.js",5586],["src__pages__setting__loginLog.cea6056c.async.js",5722],["src__pages__crontab__type.db7c1858.async.js",5812],["src__pages__config__index.622b6ee8.async.js",5825],["5970.10ac4f16.async.js",5970],["6013.2d7bb12a.async.js",6013],["6016.9c379049.async.js",6016],["6035.5889ddc7.async.js",6035],["6159.55cb068a.async.js",6159],["6341.673fb65c.async.js",6341],["src__pages__diff__index.16e53710.chunk.css",6401],["src__pages__diff__index.013b7c75.async.js",6401],["6439.7ef6c5e3.async.js",6439],["src__pages__setting__other.28ecea01.chunk.css",6465],["src__pages__setting__other.45f67bd2.async.js",6465],["src__pages__script__index.60b6f827.chunk.css",6534],["src__pages__script__index.53f99bee.async.js",6534],["6646.5fc37228.async.js",6646],["6707.801b886b.async.js",6707],["6872.42f939f1.async.js",6872],["src__pages__setting__dependence.28ecea01.chunk.css",6877],["src__pages__setting__dependence.95dd01e7.async.js",6877],["src__pages__script__editNameModal.32bb2f80.async.js",7158],["src__pages__setting__notification.989e57d6.async.js",7213],["src__pages__dependence__type.e48c5c88.async.js",7243],["7253.4b9bf133.async.js",7253],["7285.d561cf26.async.js",7285],["7355.5e5e573b.async.js",7355],["7384.065ccae2.async.js",7384],["7508.3fffed15.chunk.css",7508],["7508.a31662a3.async.js",7508],["7528.d8b76d8a.async.js",7528],["7802.6b73f16a.async.js",7802],["src__pages__subscription__index.4b5150de.chunk.css",7953],["src__pages__subscription__index.850531a4.async.js",7953],["7984.e6bb9378.async.js",7984],["8060.8b699029.async.js",8060],["8078.8586c875.async.js",8078],["src__pages__env__index.77923857.chunk.css",8247],["src__pages__env__index.5a863036.async.js",8247],["8317.c44c1ebd.async.js",8317],["src__pages__crontab__modal.dcd053b5.async.js",8393],["src__pages__setting__systemLog.2e8cc7a0.async.js",8490],["src__pages__script__saveModal.8e358e84.async.js",8673],["8826.faecf076.async.js",8826],["8851.cf7e0ebc.async.js",8851],["8982.d2dba153.async.js",8982],["src__pages__script__renameModal.8232c924.async.js",9064],["9066.605168f8.async.js",9066],["9313.37acaf13.async.js",9313],["src__pages__crontab__detail.ebbb4abf.async.js",9558],["9730.30083c91.async.js",9730],["9761.627ca3b5.async.js",9761],["src__pages__log__index.9f2eae80.chunk.css",9818],["src__pages__log__index.cf00c9af.async.js",9818],["src__pages__dependence__index.ef46db37.chunk.css",9914],["src__pages__dependence__index.c31e50f0.async.js",9914],["src__pages__login__index.d00b91e8.chunk.css",9939],["src__pages__login__index.cd6e3152.async.js",9939]],"r":{"/*":[5,9,20,30,42,43,51,65,1,16,17,18,21,40,41,45,89,98,101,106,109,110],"/":[1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/initialization":[5,9,14,15,20,27,30,42,65,66,67,87,110,1,16,17,18,21,40,41,43,45,89,98,101,106,109],"/subscription":[1,5,9,20,21,22,26,27,30,34,42,45,58,65,66,68,70,78,87,88,89,90,91,94,95,97,98,106,109,110,112,16,17,18,40,41,43,101],"/dependence":[1,5,9,20,21,22,26,27,30,42,58,65,66,68,70,86,87,88,89,90,91,93,97,98,105,109,110,112,116,117,16,17,18,40,41,43,45,101,106],"/crontab":[1,5,9,11,12,20,21,22,26,27,30,31,40,42,45,48,49,58,65,66,68,69,70,73,86,87,88,89,90,91,97,107,109,110,112,16,17,18,41,43,98,101,106],"/setting":[1,5,9,12,16,19,20,21,22,26,27,28,29,30,31,42,45,54,57,58,65,66,67,68,70,80,87,88,89,90,91,96,97,98,109,110,112,113,17,18,40,41,43,101,106],"/config":[1,5,19,20,21,22,30,40,42,45,55,56,64,66,68,89,90,91,106,110,16,17,18,41,43,98,101,109],"/script":[1,5,9,19,20,21,22,27,30,39,40,42,45,52,53,55,56,58,65,66,67,68,70,76,77,87,89,90,91,97,98,109,110,112,113,16,17,18,41,43,101,106],"/error":[5,9,20,30,35,36,65,110,1,16,17,18,21,40,41,42,43,45,89,98,101,106,109],"/login":[5,20,27,30,31,42,45,65,87,106,110,118,119,1,16,17,18,21,40,41,43,89,98,101,109],"/diff":[1,5,20,21,27,30,40,42,45,66,68,71,72,79,89,90,91,106,110,16,17,18,41,43,98,101,109],"/env":[1,5,9,11,20,21,22,26,27,30,42,45,58,65,66,67,68,70,86,87,88,89,90,91,92,99,100,106,109,110,112,113,16,17,18,40,41,43,98,101],"/log":[1,5,9,19,20,21,22,30,39,40,42,45,55,58,65,66,68,70,87,89,90,91,106,109,110,112,114,115,16,17,18,41,43,98,101],"/crontab/viewCreateModal":[5,12,20,24,27,30,42,47,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/crontab/viewManageModal":[1,5,6,9,11,12,20,22,24,26,27,30,42,58,65,66,70,86,87,88,89,109,110,112,16,17,18,21,40,41,43,45,98,101,106],"/subscription/logModal":[8,30,42,45,58,97,106,109,110,1,5,16,17,18,20,21,40,41,43,89,98,101],"/script/editNameModal":[5,20,22,23,27,30,42,55,58,65,66,67,83,87,109,110,112,113,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/notification":[5,20,27,30,42,65,66,84,87,110,1,16,17,18,21,40,41,43,45,89,98,101,106,109],"/dependence/logModal":[13,30,42,58,97,98,105,109,110,1,5,16,17,18,20,21,40,41,43,45,89,101,106],"/setting/checkUpdate":[30,31,42,44,45,58,97,98,106,109,110,1,5,16,17,18,20,21,40,41,43,89,101],"/script/renameModal":[5,20,27,30,42,58,65,87,108,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/dependence":[5,20,27,30,42,65,81,82,87,97,98,110,1,16,17,18,21,40,41,43,45,89,101,106,109],"/subscription/modal":[0,5,20,27,30,34,42,45,58,65,66,78,87,109,110,1,16,17,18,21,40,41,43,89,98,101,106],"/env/editNameModal":[5,20,27,30,42,46,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/systemLog":[5,12,19,30,42,57,103,110,1,16,17,18,20,21,40,41,43,45,89,98,101,106,109],"/crontab/logModal":[5,9,20,30,31,37,42,45,58,65,97,106,109,110,1,16,17,18,21,40,41,43,89,98,101],"/dependence/modal":[5,10,20,27,30,42,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/script/editModal":[5,20,22,27,30,39,40,41,42,45,55,58,61,65,66,87,97,98,106,109,110,1,16,17,18,21,43,89,101],"/script/saveModal":[5,20,27,30,42,58,65,87,104,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/appModal":[5,20,25,27,30,42,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/loginLog":[1,5,9,20,22,26,30,42,62,65,66,70,87,88,89,16,17,18,21,40,41,43,45,98,101,106,109,110],"/setting/progress":[30,38,42,58,67,109,1,5,16,17,18,20,21,40,41,43,45,89,98,101,106,110],"/setting/security":[5,9,20,27,30,42,58,59,60,65,67,87,96,109,110,112,113,1,16,17,18,21,40,41,43,45,89,98,101,106],"/dependence/type":[85,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/crontab/detail":[5,9,20,26,30,31,40,42,45,58,65,66,68,73,89,97,106,109,110,111,1,16,17,18,21,41,43,98,101],"/script/setting":[5,7,20,27,30,42,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/crontab/const":[50,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/crontab/modal":[5,20,27,30,42,45,58,65,66,69,87,102,109,110,1,16,17,18,21,40,41,43,89,98,101,106],"/setting/about":[2,3,5,9,20,30,65,1,16,17,18,21,40,41,42,43,45,89,98,101,106,109,110],"/setting/other":[5,16,20,27,30,31,42,45,58,65,66,67,74,75,78,80,87,97,98,106,109,110,112,113,1,17,18,21,40,41,43,89,101],"/crontab/type":[63,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/env/modal":[4,5,20,27,30,42,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/script/components/UnsupportedFilePreview":[32,33,42,1,5,16,17,18,20,21,30,40,41,43,45,89,98,101,106,109,110]}},{publicPath:"./"});null==i||i.forEach((function(t){var e,n=t.type,a=t.url;if("js"===n)(e=r("script")).src=a,e.async=!0;else{if("css"!==n)return;(e=r("link")).href=a,e.rel="preload",e.as="style"}t.attrs.forEach((function(t){e.setAttribute(t[0],t[1]||"")})),c.appendChild(e)}))}}();
1
+ !function(){"use strict";var t="/".replace(/([^/])$/,"$1/"),e=location.pathname,n=e.startsWith(t)&&decodeURI("/".concat(e.slice(t.length)));if(n){var a=document,c=a.head,r=a.createElement.bind(a),i=function(t,e,n){var a,c=e.r[t]||(null===(a=Object.entries(e.r).find((function(e){var n=e[0];return new RegExp("^".concat(n.replace(/\/:[^/]+/g,"/[^/]+").replace("/*","/.+"),"$")).test(t)})))||void 0===a?void 0:a[1]);return null==c?void 0:c.map((function(t){var a=e.f[t][1],c=e.f[t][0];return{type:c.split(".").pop(),url:"".concat(n.publicPath).concat(c),attrs:[["data-".concat(e.b),"".concat(e.p,":").concat(a)]]}}))}(n,{"p":"@whyour/qinglong","b":"webpack","f":[["src__pages__subscription__modal.46a69195.async.js",73],["119.89e2d610.async.js",119],["src__pages__setting__about.e6db5090.chunk.css",154],["src__pages__setting__about.3d3c019f.async.js",154],["src__pages__env__modal.b0dc95be.async.js",222],["255.12f03ab2.async.js",255],["src__pages__crontab__viewManageModal.d1f69531.async.js",349],["src__pages__script__setting.b3635f42.async.js",440],["src__pages__subscription__logModal.0caa7283.async.js",578],["691.187a388c.async.js",691],["src__pages__dependence__modal.53a4782a.async.js",803],["874.ae8edb1a.async.js",874],["1352.ab6da08e.async.js",1352],["src__pages__dependence__logModal.f123e2ac.async.js",1406],["src__pages__initialization__index.66819338.chunk.css",1554],["src__pages__initialization__index.5bd471c5.async.js",1554],["1571.94ddca13.async.js",1571],["layouts__index.1fce90e0.chunk.css",1717],["layouts__index.8451cde4.async.js",1717],["1742.6cbe5aca.async.js",1742],["1765.d8e002d7.async.js",1765],["1883.675b6a18.chunk.css",1883],["1885.e0d00d2d.async.js",1885],["2096.383c1047.async.js",2096],["2208.4c5a62d1.async.js",2208],["src__pages__setting__appModal.0305916d.async.js",2313],["2325.dfa32834.async.js",2325],["2338.d678967d.async.js",2338],["src__pages__setting__index.7cf46d4a.chunk.css",2340],["src__pages__setting__index.c8d1ca47.async.js",2340],["2821.be3dc88e.async.js",2821],["2890.9e373f5b.async.js",2890],["src__pages__script__components__UnsupportedFilePreview__index.d50aeff1.chunk.css",2892],["src__pages__script__components__UnsupportedFilePreview__index.39074c68.async.js",2892],["3191.cc1e31cd.async.js",3191],["src__pages__error__index.b047bb77.chunk.css",3217],["src__pages__error__index.367a8c76.async.js",3217],["src__pages__crontab__logModal.5fa54b25.async.js",3249],["src__pages__setting__progress.8823ac90.async.js",3308],["3382.a584a111.async.js",3382],["3383.041eee73.async.js",3383],["3390.fb4b6851.async.js",3390],["3481.333c2962.async.js",3481],["3600.7637c822.async.js",3600],["src__pages__setting__checkUpdate.c152dfaf.async.js",3830],["4046.7fbcfa02.async.js",4046],["src__pages__env__editNameModal.7c6528e4.async.js",4216],["src__pages__crontab__viewCreateModal.ffcf7a24.async.js",4453],["src__pages__crontab__index.5bbea517.chunk.css",4473],["src__pages__crontab__index.679a169c.async.js",4473],["src__pages__crontab__const.323d5124.async.js",4555],["src__pages__404.771168fc.async.js",4650],["4859.1b962b29.chunk.css",4859],["4859.93e63ea6.async.js",4859],["4902.54ecbdb5.async.js",4902],["4934.1ca6b6b0.async.js",4934],["5312.74b95311.async.js",5312],["5481.624d0e07.async.js",5481],["5520.ff2cfd6b.async.js",5520],["src__pages__setting__security.7c80dd0f.chunk.css",5530],["src__pages__setting__security.7623a492.async.js",5530],["src__pages__script__editModal.f1741417.async.js",5586],["src__pages__setting__loginLog.cea6056c.async.js",5722],["src__pages__crontab__type.db7c1858.async.js",5812],["src__pages__config__index.622b6ee8.async.js",5825],["5970.10ac4f16.async.js",5970],["6013.2d7bb12a.async.js",6013],["6016.9c379049.async.js",6016],["6035.5889ddc7.async.js",6035],["6159.55cb068a.async.js",6159],["6341.673fb65c.async.js",6341],["src__pages__diff__index.16e53710.chunk.css",6401],["src__pages__diff__index.013b7c75.async.js",6401],["6439.7ef6c5e3.async.js",6439],["src__pages__setting__other.28ecea01.chunk.css",6465],["src__pages__setting__other.45f67bd2.async.js",6465],["src__pages__script__index.60b6f827.chunk.css",6534],["src__pages__script__index.d834bef6.async.js",6534],["6646.5fc37228.async.js",6646],["6707.801b886b.async.js",6707],["6872.42f939f1.async.js",6872],["src__pages__setting__dependence.28ecea01.chunk.css",6877],["src__pages__setting__dependence.95dd01e7.async.js",6877],["src__pages__script__editNameModal.fb125740.async.js",7158],["src__pages__setting__notification.989e57d6.async.js",7213],["src__pages__dependence__type.e48c5c88.async.js",7243],["7253.4b9bf133.async.js",7253],["7285.d561cf26.async.js",7285],["7355.5e5e573b.async.js",7355],["7384.065ccae2.async.js",7384],["7508.3fffed15.chunk.css",7508],["7508.a31662a3.async.js",7508],["7528.d8b76d8a.async.js",7528],["7802.6b73f16a.async.js",7802],["src__pages__subscription__index.4b5150de.chunk.css",7953],["src__pages__subscription__index.d0ab2abc.async.js",7953],["7984.e6bb9378.async.js",7984],["8060.8b699029.async.js",8060],["8078.8586c875.async.js",8078],["src__pages__env__index.77923857.chunk.css",8247],["src__pages__env__index.a31f3fe1.async.js",8247],["8317.c44c1ebd.async.js",8317],["src__pages__crontab__modal.69adde20.async.js",8393],["src__pages__setting__systemLog.2e8cc7a0.async.js",8490],["src__pages__script__saveModal.d4890228.async.js",8673],["8826.f18157b7.async.js",8826],["8851.cf7e0ebc.async.js",8851],["8982.d2dba153.async.js",8982],["src__pages__script__renameModal.e1bbbb50.async.js",9064],["9066.605168f8.async.js",9066],["9313.37acaf13.async.js",9313],["src__pages__crontab__detail.543910fb.async.js",9558],["9730.30083c91.async.js",9730],["9761.627ca3b5.async.js",9761],["src__pages__log__index.9f2eae80.chunk.css",9818],["src__pages__log__index.cf00c9af.async.js",9818],["src__pages__dependence__index.ef46db37.chunk.css",9914],["src__pages__dependence__index.3d87ceac.async.js",9914],["src__pages__login__index.d00b91e8.chunk.css",9939],["src__pages__login__index.cd6e3152.async.js",9939]],"r":{"/*":[5,9,20,30,42,43,51,65,1,16,17,18,21,40,41,45,89,98,101,106,109,110],"/":[1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/initialization":[5,9,14,15,20,27,30,42,65,66,67,87,110,1,16,17,18,21,40,41,43,45,89,98,101,106,109],"/subscription":[1,5,9,20,21,22,26,27,30,34,42,45,58,65,66,68,70,78,87,88,89,90,91,94,95,97,98,106,109,110,112,16,17,18,40,41,43,101],"/dependence":[1,5,9,20,21,22,26,27,30,42,58,65,66,68,70,86,87,88,89,90,91,93,97,98,105,109,110,112,116,117,16,17,18,40,41,43,45,101,106],"/crontab":[1,5,9,11,12,20,21,22,26,27,30,31,40,42,45,48,49,58,65,66,68,69,70,73,86,87,88,89,90,91,97,107,109,110,112,16,17,18,41,43,98,101,106],"/setting":[1,5,9,12,16,19,20,21,22,26,27,28,29,30,31,42,45,54,57,58,65,66,67,68,70,80,87,88,89,90,91,96,97,98,109,110,112,113,17,18,40,41,43,101,106],"/config":[1,5,19,20,21,22,30,40,42,45,55,56,64,66,68,89,90,91,106,110,16,17,18,41,43,98,101,109],"/script":[1,5,9,19,20,21,22,27,30,39,40,42,45,52,53,55,56,58,65,66,67,68,70,76,77,87,89,90,91,97,98,109,110,112,113,16,17,18,41,43,101,106],"/error":[5,9,20,30,35,36,65,110,1,16,17,18,21,40,41,42,43,45,89,98,101,106,109],"/login":[5,20,27,30,31,42,45,65,87,106,110,118,119,1,16,17,18,21,40,41,43,89,98,101,109],"/diff":[1,5,20,21,27,30,40,42,45,66,68,71,72,79,89,90,91,106,110,16,17,18,41,43,98,101,109],"/env":[1,5,9,11,20,21,22,26,27,30,42,45,58,65,66,67,68,70,86,87,88,89,90,91,92,99,100,106,109,110,112,113,16,17,18,40,41,43,98,101],"/log":[1,5,9,19,20,21,22,30,39,40,42,45,55,58,65,66,68,70,87,89,90,91,106,109,110,112,114,115,16,17,18,41,43,98,101],"/crontab/viewCreateModal":[5,12,20,24,27,30,42,47,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/crontab/viewManageModal":[1,5,6,9,11,12,20,22,24,26,27,30,42,58,65,66,70,86,87,88,89,109,110,112,16,17,18,21,40,41,43,45,98,101,106],"/subscription/logModal":[8,30,42,45,58,97,106,109,110,1,5,16,17,18,20,21,40,41,43,89,98,101],"/script/editNameModal":[5,20,22,23,27,30,42,55,58,65,66,67,83,87,109,110,112,113,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/notification":[5,20,27,30,42,65,66,84,87,110,1,16,17,18,21,40,41,43,45,89,98,101,106,109],"/dependence/logModal":[13,30,42,58,97,98,105,109,110,1,5,16,17,18,20,21,40,41,43,45,89,101,106],"/setting/checkUpdate":[30,31,42,44,45,58,97,98,106,109,110,1,5,16,17,18,20,21,40,41,43,89,101],"/script/renameModal":[5,20,27,30,42,58,65,87,108,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/dependence":[5,20,27,30,42,65,81,82,87,97,98,110,1,16,17,18,21,40,41,43,45,89,101,106,109],"/subscription/modal":[0,5,20,27,30,34,42,45,58,65,66,78,87,109,110,1,16,17,18,21,40,41,43,89,98,101,106],"/env/editNameModal":[5,20,27,30,42,46,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/systemLog":[5,12,19,30,42,57,103,110,1,16,17,18,20,21,40,41,43,45,89,98,101,106,109],"/crontab/logModal":[5,9,20,30,31,37,42,45,58,65,97,106,109,110,1,16,17,18,21,40,41,43,89,98,101],"/dependence/modal":[5,10,20,27,30,42,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/script/editModal":[5,20,22,27,30,39,40,41,42,45,55,58,61,65,66,87,97,98,106,109,110,1,16,17,18,21,43,89,101],"/script/saveModal":[5,20,27,30,42,58,65,87,104,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/appModal":[5,20,25,27,30,42,58,65,66,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/setting/loginLog":[1,5,9,20,22,26,30,42,62,65,66,70,87,88,89,16,17,18,21,40,41,43,45,98,101,106,109,110],"/setting/progress":[30,38,42,58,67,109,1,5,16,17,18,20,21,40,41,43,45,89,98,101,106,110],"/setting/security":[5,9,20,27,30,42,58,59,60,65,67,87,96,109,110,112,113,1,16,17,18,21,40,41,43,45,89,98,101,106],"/dependence/type":[85,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/crontab/detail":[5,9,20,26,30,31,40,42,45,58,65,66,68,73,89,97,106,109,110,111,1,16,17,18,21,41,43,98,101],"/script/setting":[5,7,20,27,30,42,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/crontab/const":[50,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/crontab/modal":[5,20,27,30,42,45,58,65,66,69,87,102,109,110,1,16,17,18,21,40,41,43,89,98,101,106],"/setting/about":[2,3,5,9,20,30,65,1,16,17,18,21,40,41,42,43,45,89,98,101,106,109,110],"/setting/other":[5,16,20,27,30,31,42,45,58,65,66,67,74,75,78,80,87,97,98,106,109,110,112,113,1,17,18,21,40,41,43,89,101],"/crontab/type":[63,1,5,16,17,18,20,21,30,40,41,42,43,45,89,98,101,106,109,110],"/env/modal":[4,5,20,27,30,42,58,65,87,109,110,1,16,17,18,21,40,41,43,45,89,98,101,106],"/script/components/UnsupportedFilePreview":[32,33,42,1,5,16,17,18,20,21,30,40,41,43,45,89,98,101,106,109,110]}},{publicPath:"./"});null==i||i.forEach((function(t){var e,n=t.type,a=t.url;if("js"===n)(e=r("script")).src=a,e.async=!0;else{if("css"!==n)return;(e=r("link")).href=a,e.rel="preload",e.as="style"}t.attrs.forEach((function(t){e.setAttribute(t[0],t[1]||"")})),c.appendChild(e)}))}}();