@karinjs/plugin-basic 1.4.1 → 1.4.4

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  render
3
- } from "../chunk-3BGTJVY4.js";
3
+ } from "../chunk-CDGQE6GF.js";
4
4
 
5
5
  // src/apps/logger.ts
6
6
  import fs from "fs";
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  cfg
3
- } from "../chunk-T6AZUG3I.js";
4
- import "../chunk-3BGTJVY4.js";
3
+ } from "../chunk-Y6AIY4HL.js";
4
+ import "../chunk-7IEYT4QX.js";
5
+ import "../chunk-CDGQE6GF.js";
5
6
 
6
7
  // src/apps/login.ts
7
8
  import karin, { common, contactFriend, logger, segment } from "node-karin";
@@ -1,5 +1,6 @@
1
1
  import * as node_karin from 'node-karin';
2
2
 
3
3
  declare const restarts: node_karin.Command<keyof node_karin.MessageEventMap>;
4
+ declare const restartTask: void | node_karin.Task;
4
5
 
5
- export { restarts };
6
+ export { restartTask, restarts };
@@ -1,10 +1,14 @@
1
1
  import {
2
2
  cfg
3
- } from "../chunk-T6AZUG3I.js";
4
- import "../chunk-3BGTJVY4.js";
3
+ } from "../chunk-Y6AIY4HL.js";
4
+ import "../chunk-7IEYT4QX.js";
5
+ import {
6
+ plugin
7
+ } from "../chunk-CDGQE6GF.js";
5
8
 
6
9
  // src/apps/restart.ts
7
- import { common, karin, logger, restart } from "node-karin";
10
+ import { common, karin, logger, restart, restartDirect } from "node-karin";
11
+ import cron from "node-cron";
8
12
  var restarts = karin.command(/^#重启$/, async (e) => {
9
13
  try {
10
14
  await e.reply(`\u5F00\u59CB\u91CD\u542F \u672C\u6B21\u8FD0\u884C\u65F6\u95F4: ${common.uptime()}`, { at: true });
@@ -17,6 +21,20 @@ var restarts = karin.command(/^#重启$/, async (e) => {
17
21
  return true;
18
22
  }
19
23
  }, { name: "\u91CD\u542F", perm: "admin" });
24
+ var createRestartTask = () => {
25
+ const Cron = cfg.get().restartTask;
26
+ if (Cron && +Cron === 0) return logger.info(`${logger.violet(`[\u63D2\u4EF6:${plugin.name}]`)} [\u5B9A\u65F6\u91CD\u542F] \u672A\u542F\u7528`);
27
+ if (!cron.validate(Cron)) return logger.info(`${logger.violet(`[\u63D2\u4EF6:${plugin.name}]`)} [\u5B9A\u65F6\u91CD\u542F] Cron\u8868\u8FBE\u5F0F\u9519\u8BEF`);
28
+ return karin.task(`[${plugin.name}][\u5B9A\u65F6\u91CD\u542F]`, Cron, async () => {
29
+ try {
30
+ await restartDirect();
31
+ } catch (err) {
32
+ logger.error(err);
33
+ }
34
+ }, { log: true });
35
+ };
36
+ var restartTask = createRestartTask();
20
37
  export {
38
+ restartTask,
21
39
  restarts
22
40
  };
@@ -7,8 +7,9 @@ import {
7
7
  } from "../chunk-ODFXVVIE.js";
8
8
  import {
9
9
  cfg
10
- } from "../chunk-T6AZUG3I.js";
11
- import "../chunk-3BGTJVY4.js";
10
+ } from "../chunk-Y6AIY4HL.js";
11
+ import "../chunk-7IEYT4QX.js";
12
+ import "../chunk-CDGQE6GF.js";
12
13
 
13
14
  // src/apps/status.ts
14
15
  import { karin } from "node-karin";
@@ -1,10 +1,12 @@
1
1
  import {
2
- cfg,
2
+ cfg
3
+ } from "../chunk-Y6AIY4HL.js";
4
+ import {
3
5
  sendToFirstAdmin
4
- } from "../chunk-T6AZUG3I.js";
6
+ } from "../chunk-7IEYT4QX.js";
5
7
  import {
6
8
  render
7
- } from "../chunk-3BGTJVY4.js";
9
+ } from "../chunk-CDGQE6GF.js";
8
10
 
9
11
  // src/apps/update.ts
10
12
  import fs from "fs";
@@ -102,6 +104,7 @@ var plugins = karin.command(/^#插件列表$/, async (e) => {
102
104
  }
103
105
  }, { name: "\u63D2\u4EF6\u5217\u8868", perm: "admin" });
104
106
  var updatePlugin = karin.command(/^#(全部)?(强制)?更新(.*)?$/, async (e) => {
107
+ if (!e.isMaster) return false;
105
108
  const [, all, force, name = "node-karin"] = e.msg.match(/^#(全部)?(强制)?更新(.*)?$/);
106
109
  const cmd = force ? "git reset --hard && git pull --allow-unrelated-histories" : "git pull";
107
110
  if (all) {
@@ -123,7 +126,10 @@ var updatePlugin = karin.command(/^#(全部)?(强制)?更新(.*)?$/, async (e) =
123
126
  let res;
124
127
  if (name !== "node-karin") {
125
128
  const info = getPluginInfo(name.trim());
126
- if (!info) return await e.reply("\u63D2\u4EF6\u672A\u5B89\u88C5~", { reply: true });
129
+ if (!info) {
130
+ await e.reply("\u63D2\u4EF6\u672A\u5B89\u88C5~", { reply: true });
131
+ return false;
132
+ }
127
133
  if (info.type === "app") return await e.reply("\u5E94\u7528\u63D2\u4EF6\u4E0D\u652F\u6301\u66F4\u65B0~", { reply: true });
128
134
  res = info.type === "git" ? await updateGitPlugin(info.dir, cmd, 120) : await updatePkg(info.name);
129
135
  } else {
@@ -140,7 +146,7 @@ ${msg}`, { at: true });
140
146
  \u66F4\u65B0\u6210\u529F
141
147
  ${res.data}`, { at: true });
142
148
  }
143
- });
149
+ }, { name: "\u66F4\u65B0\u63D2\u4EF6", priority: 100 });
144
150
  var check = karin.command(/^#检查更新/, async (e) => {
145
151
  let name = e.msg.replace(/^#检查更新/, "").trim();
146
152
  const index = Number(name);
@@ -0,0 +1,21 @@
1
+ // src/utils/utils.ts
2
+ import karin, { config, logger } from "node-karin";
3
+ var sendToFirstAdmin = async (selfId, message) => {
4
+ const list = config.master();
5
+ let master = list[0];
6
+ if (master === "console") {
7
+ master = list[1];
8
+ }
9
+ try {
10
+ if (!master) return false;
11
+ const a = await karin.sendMaster(selfId, master, message);
12
+ return a.messageId;
13
+ } catch (error) {
14
+ logger.bot("info", selfId, `[${master}] \u53D1\u9001\u4E3B\u52A8\u6D88\u606F\u5931\u8D25:`);
15
+ logger.error(error);
16
+ }
17
+ };
18
+
19
+ export {
20
+ sendToFirstAdmin
21
+ };
@@ -7,7 +7,7 @@ import { karinPathBase } from "node-karin";
7
7
  // package.json
8
8
  var package_default = {
9
9
  name: "@karinjs/plugin-basic",
10
- version: "1.4.1",
10
+ version: "1.4.4",
11
11
  description: "Karin\u7684\u57FA\u7840\u63D2\u4EF6,\u63D0\u4F9B\u6700\u57FA\u7840\u7684\u529F\u80FD",
12
12
  homepage: "https://github.com/KarinJS/karin-plugin-basic",
13
13
  bugs: {
@@ -38,10 +38,10 @@ var package_default = {
38
38
  },
39
39
  devDependencies: {
40
40
  "@karinjs/plugin-puppeteer": "^1.1.2",
41
- "@types/node": "^25.0.3",
41
+ "@types/node": "^25.2.3",
42
42
  eslint: "^9.39.2",
43
43
  neostandard: "^0.12.2",
44
- "node-karin": "^1.14.1",
44
+ "node-karin": "^1.14.3",
45
45
  tsup: "^8.5.1",
46
46
  tsx: "^4.21.0",
47
47
  typescript: "^5.9.3"
@@ -68,7 +68,8 @@ var package_default = {
68
68
  web: "dist/web.config.js"
69
69
  },
70
70
  dependencies: {
71
- "internal-ip": "^8.0.1"
71
+ "internal-ip": "^9.0.0",
72
+ "node-cron": "^4.2.1"
72
73
  }
73
74
  };
74
75
 
@@ -1,29 +1,11 @@
1
1
  import {
2
2
  plugin
3
- } from "./chunk-3BGTJVY4.js";
4
-
5
- // src/utils/utils.ts
6
- import karin, { config, logger } from "node-karin";
7
- var sendToFirstAdmin = async (selfId, message) => {
8
- const list = config.master();
9
- let master = list[0];
10
- if (master === "console") {
11
- master = list[1];
12
- }
13
- try {
14
- if (!master) return false;
15
- const a = await karin.sendMaster(selfId, master, message);
16
- return a.messageId;
17
- } catch (error) {
18
- logger.bot("info", selfId, `[${master}] \u53D1\u9001\u4E3B\u52A8\u6D88\u606F\u5931\u8D25:`);
19
- logger.error(error);
20
- }
21
- };
3
+ } from "./chunk-CDGQE6GF.js";
22
4
 
23
5
  // src/config/config.ts
24
6
  import fs from "fs";
25
7
  import path from "path";
26
- import { watch, filesByExt, requireFileSync, logger as logger2 } from "node-karin";
8
+ import { watch, filesByExt, requireFileSync, logger } from "node-karin";
27
9
  var Config = class {
28
10
  /** 配置缓存 */
29
11
  cache;
@@ -39,7 +21,7 @@ var Config = class {
39
21
  restart: true,
40
22
  domain: "",
41
23
  autoupdate: false,
42
- autorestart: 0
24
+ restartTask: 0
43
25
  };
44
26
  constructor() {
45
27
  this.init();
@@ -86,7 +68,7 @@ var Config = class {
86
68
  this.cache = result;
87
69
  return result;
88
70
  } catch (error) {
89
- logger2.error("\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6\u5931\u8D25\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E:", error);
71
+ logger.error("\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6\u5931\u8D25\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E:", error);
90
72
  return { ...this.defaultConfig };
91
73
  }
92
74
  }
@@ -94,13 +76,13 @@ var Config = class {
94
76
  * 写入配置
95
77
  * @param config 配置对象
96
78
  */
97
- write(config2) {
79
+ write(config) {
98
80
  try {
99
- const result = { ...this.defaultConfig, ...config2 };
81
+ const result = { ...this.defaultConfig, ...config };
100
82
  this.cache = result;
101
83
  fs.writeFileSync(this.configPath, JSON.stringify(result, null, 2));
102
84
  } catch (error) {
103
- logger2.error("\u5199\u5165\u914D\u7F6E\u6587\u4EF6\u5931\u8D25:", error);
85
+ logger.error("\u5199\u5165\u914D\u7F6E\u6587\u4EF6\u5931\u8D25:", error);
104
86
  throw error;
105
87
  }
106
88
  }
@@ -108,9 +90,9 @@ var Config = class {
108
90
  * 更新配置(合并现有配置)
109
91
  * @param config 要更新的配置项
110
92
  */
111
- update(config2) {
93
+ update(config) {
112
94
  const current = this.get();
113
- this.write({ ...current, ...config2 });
95
+ this.write({ ...current, ...config });
114
96
  }
115
97
  /**
116
98
  * 重置为默认配置
@@ -122,6 +104,5 @@ var Config = class {
122
104
  var cfg = new Config();
123
105
 
124
106
  export {
125
- sendToFirstAdmin,
126
107
  cfg
127
108
  };
package/dist/index.js CHANGED
@@ -7,22 +7,13 @@ import {
7
7
  initStat,
8
8
  uptime
9
9
  } from "./chunk-ODFXVVIE.js";
10
- import {
11
- cfg
12
- } from "./chunk-T6AZUG3I.js";
10
+ import "./chunk-7IEYT4QX.js";
13
11
  import {
14
12
  plugin
15
- } from "./chunk-3BGTJVY4.js";
13
+ } from "./chunk-CDGQE6GF.js";
16
14
 
17
15
  // src/index.ts
18
- import { logger, restartDirect } from "node-karin";
19
- var autorestart = +cfg.get().autorestart;
20
- if (autorestart && typeof autorestart === "number" && autorestart > 0) {
21
- setTimeout(() => {
22
- logger.info(`${logger.violet(`[\u63D2\u4EF6:${plugin.name}]`)} \u5F00\u59CB\u81EA\u52A8\u91CD\u542F...`);
23
- restartDirect();
24
- }, autorestart * 1e3);
25
- }
16
+ import { logger } from "node-karin";
26
17
  logger.info(`${logger.violet(`[\u63D2\u4EF6:${plugin.name}]`)} ${logger.green(plugin.version)} \u521D\u59CB\u5316\u5B8C\u6210~`);
27
18
  export {
28
19
  MB,
@@ -14,8 +14,8 @@ interface Config {
14
14
  domain: string;
15
15
  /** 是否自动更新 */
16
16
  autoupdate: boolean;
17
- /** 自动重启延迟时间,单位秒,0表示不自动重启 */
18
- autorestart: number | string;
17
+ /** 定时重启,0表示不定时重启 */
18
+ restartTask: number | string;
19
19
  }
20
20
 
21
21
  declare const _default: node_karin.DefineConfig<Config>;
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  cfg
3
- } from "./chunk-T6AZUG3I.js";
3
+ } from "./chunk-Y6AIY4HL.js";
4
+ import "./chunk-7IEYT4QX.js";
4
5
  import {
5
6
  plugin
6
- } from "./chunk-3BGTJVY4.js";
7
+ } from "./chunk-CDGQE6GF.js";
7
8
 
8
9
  // src/web.config.ts
9
10
  import { components, defineConfig } from "node-karin";
10
11
  var web_config_default = defineConfig({
11
12
  info: {
12
- id: plugin.name,
13
+ id: plugin.pkg.name,
13
14
  name: "\u57FA\u7840\u63D2\u4EF6",
14
15
  version: plugin.version,
15
16
  description: plugin.pkg.description,
@@ -61,11 +62,17 @@ var web_config_default = defineConfig({
61
62
  description: "\u662F\u5426\u542F\u7528\u81EA\u52A8\u66F4\u65B0",
62
63
  defaultSelected: config.autoupdate
63
64
  }),
64
- components.input.number("autorestart", {
65
+ components.input.string("restartTask", {
65
66
  color: "success",
66
- label: "\u81EA\u52A8\u91CD\u542F\u5EF6\u8FDF\u65F6\u95F4",
67
- description: "\u81EA\u52A8\u91CD\u542F\u5EF6\u8FDF\u65F6\u95F4\uFF0C\u5355\u4F4D\u79D2\uFF0C0\u8868\u793A\u4E0D\u81EA\u52A8\u91CD\u542F",
68
- defaultValue: config.autorestart + ""
67
+ label: "\u5B9A\u65F6\u91CD\u542F",
68
+ description: "\u4F7F\u7528cron\u8868\u8FBE\u5F0F\u8BBE\u7F6E\u5B9A\u65F6\u91CD\u542FKarin\uFF0C0\u8868\u793A\u4E0D\u81EA\u52A8\u91CD\u542F",
69
+ defaultValue: config.restartTask + "",
70
+ rules: [
71
+ {
72
+ regex: /^(0|(\S+\s){4}\S+)$/,
73
+ error: "\u8BF7\u8F93\u51650\u6216\u6709\u6548\u7684cron\u8868\u8FBE\u5F0F"
74
+ }
75
+ ]
69
76
  })
70
77
  ];
71
78
  return list;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@karinjs/plugin-basic",
3
- "version": "1.4.1",
3
+ "version": "1.4.4",
4
4
  "description": "Karin的基础插件,提供最基础的功能",
5
5
  "homepage": "https://github.com/KarinJS/karin-plugin-basic",
6
6
  "bugs": {
@@ -51,6 +51,7 @@
51
51
  "web": "dist/web.config.js"
52
52
  },
53
53
  "dependencies": {
54
- "internal-ip": "^8.0.1"
54
+ "internal-ip": "^9.0.0",
55
+ "node-cron": "^4.2.1"
55
56
  }
56
57
  }