wechaty-web-panel 1.6.111 → 1.6.113

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 (109) hide show
  1. package/dist/bot/chatgpt/index.js +235 -0
  2. package/dist/bot/coze/sdk/index.js +110 -0
  3. package/dist/bot/dify/sdk/index.js +461 -0
  4. package/dist/bot/dify/sdk/office.js +319 -0
  5. package/dist/bot/fastgpt/index.js +98 -0
  6. package/dist/bot/qanything/index.js +136 -0
  7. package/dist/botInstance/coze.js +167 -0
  8. package/dist/botInstance/cozev3.js +157 -0
  9. package/dist/botInstance/dify.js +160 -0
  10. package/dist/botInstance/fastgpt.js +130 -0
  11. package/dist/botInstance/gpt4v.js +95 -0
  12. package/dist/botInstance/officialOpenAi.js +186 -0
  13. package/dist/botInstance/qany.js +144 -0
  14. package/dist/botInstance/sdk/chatGPT4V.js +89 -0
  15. package/dist/botInstance/sdk/coze.js +200 -0
  16. package/dist/botInstance/sdk/difyClient.js +354 -0
  17. package/dist/botInstance/sdk/pTimeout.js +97 -0
  18. package/dist/botInstance/sdk/qanything.js +137 -0
  19. package/dist/botInstance/sdk/quick-lru.js +237 -0
  20. package/dist/common/hook.js +66 -0
  21. package/dist/common/index.js +513 -0
  22. package/dist/common/multiReply.js +158 -0
  23. package/dist/common/reply.js +23 -0
  24. package/dist/const/puppet-type.js +71 -0
  25. package/dist/db/aiDb.js +27 -0
  26. package/dist/db/aichatDb.js +84 -0
  27. package/dist/db/chatHistory.js +137 -0
  28. package/dist/db/configDb.js +97 -0
  29. package/dist/db/global.js +62 -0
  30. package/dist/db/gptConfig.js +85 -0
  31. package/dist/db/nedb.js +88 -0
  32. package/dist/db/puppetDb.js +58 -0
  33. package/dist/db/roomDb.js +83 -0
  34. package/dist/db/rssConfig.js +82 -0
  35. package/dist/db/rssHistory.js +88 -0
  36. package/dist/db/userDb.js +27 -0
  37. package/dist/handlers/on-callback-message.js +183 -0
  38. package/dist/handlers/on-error.js +5 -0
  39. package/dist/handlers/on-friend.js +62 -0
  40. package/dist/handlers/on-heartbeat.js +20 -0
  41. package/dist/handlers/on-login.js +58 -0
  42. package/dist/handlers/on-logout.js +17 -0
  43. package/dist/handlers/on-message.js +644 -0
  44. package/dist/handlers/on-ready.js +36 -0
  45. package/dist/handlers/on-record-message.js +56 -0
  46. package/dist/handlers/on-roomjoin.js +42 -0
  47. package/dist/handlers/on-roomleave.js +12 -0
  48. package/dist/handlers/on-roomtopic.js +16 -0
  49. package/dist/handlers/on-scan.js +64 -0
  50. package/dist/handlers/on-verifycode.js +42 -0
  51. package/dist/index.js +81 -69306
  52. package/dist/lib/contentCensor.js +23 -0
  53. package/dist/lib/index.js +562 -0
  54. package/dist/lib/oss.js +43 -0
  55. package/dist/lib/s3oss.js +33 -0
  56. package/dist/mcp/mcp-server.js +26 -0
  57. package/dist/mcp/src/config/database.js +51 -0
  58. package/dist/mcp/src/index.js +238 -0
  59. package/dist/mcp/src/mcp/schemas.js +178 -0
  60. package/dist/mcp/src/mcp/server.js +421 -0
  61. package/dist/mcp/src/mcp/streamable-server.js +690 -0
  62. package/dist/mcp/src/models/ChatMessage.js +151 -0
  63. package/dist/mcp/src/models/Friend.js +64 -0
  64. package/dist/mcp/src/models/Group.js +55 -0
  65. package/dist/mcp/src/models/GroupMember.js +67 -0
  66. package/dist/mcp/src/models/index.js +27 -0
  67. package/dist/mcp/src/scripts/migrate.js +21 -0
  68. package/dist/mcp/src/services/ChatDataService.js +284 -0
  69. package/dist/mcp/src/services/McpService.js +521 -0
  70. package/dist/mcp/src/services/McpTools.js +504 -0
  71. package/dist/mcp/streamable-examples.js +283 -0
  72. package/dist/mcp/streamable-server.js +79 -0
  73. package/dist/mcp/test-mcp.js +64 -0
  74. package/dist/mcp/test-streamable-server.js +86 -0
  75. package/dist/package-json.js +89 -0
  76. package/dist/proxy/aibotk.js +829 -0
  77. package/dist/proxy/api.js +431 -0
  78. package/dist/proxy/apib.js +587 -0
  79. package/dist/proxy/bot/chatgpt.js +38 -0
  80. package/dist/proxy/bot/coze.js +38 -0
  81. package/dist/proxy/bot/cozev3.js +38 -0
  82. package/dist/proxy/bot/dify.js +38 -0
  83. package/dist/proxy/bot/dispatch.js +81 -0
  84. package/dist/proxy/bot/fastgpt.js +27 -0
  85. package/dist/proxy/bot/qany.js +27 -0
  86. package/dist/proxy/config.js +14 -0
  87. package/dist/proxy/cozeAi.js +60 -0
  88. package/dist/proxy/cozeV3Ai.js +60 -0
  89. package/dist/proxy/difyAi.js +58 -0
  90. package/dist/proxy/fastgpt.js +55 -0
  91. package/dist/proxy/mqtt.js +275 -0
  92. package/dist/proxy/multimodal.js +122 -0
  93. package/dist/proxy/openAi.js +63 -0
  94. package/dist/proxy/outapi.js +62 -0
  95. package/dist/proxy/qAnyAi.js +57 -0
  96. package/dist/proxy/superagent.js +200 -0
  97. package/dist/proxy/tencent-open.js +255 -0
  98. package/dist/service/event-dispatch-service.js +309 -0
  99. package/dist/service/gpt4vService.js +45 -0
  100. package/dist/service/msg-filter-service.js +121 -0
  101. package/dist/service/msg-filters.js +645 -0
  102. package/dist/service/room-async-service.js +455 -0
  103. package/dist/task/index.js +535 -0
  104. package/dist/task/rss.js +174 -0
  105. package/package.json +3 -3
  106. package/src/package-json.js +3 -3
  107. package/tsconfig.json +3 -12
  108. package/dist/index.d.ts +0 -9
  109. package/tsconfig.cjs.json +0 -12
@@ -0,0 +1,71 @@
1
+ import { getPuppetInfo } from "../db/puppetDb.js";
2
+ export const PUPPET_MAP = {
3
+ // https://github.com/wechaty/puppet-wechat4u
4
+ 'PuppetWechat4u': '基于wechat4u的网页版api协议',
5
+ // https://github.com/wechaty/puppet-wechat
6
+ 'PuppetWechat': '网页版hook协议',
7
+ // https://github.com/wechaty/puppet-padlocal
8
+ 'PuppetPadlocal': 'PadLocal协议',
9
+ // https://github.com/wechaty/puppet-engine
10
+ 'PuppetEngine': '基于大恩hook的engine协议',
11
+ // https://github.com/wechaty/puppet-official-account
12
+ 'PuppetOA': '公众号协议',
13
+ // https://github.com/wechaty/puppet-xp
14
+ 'PuppetXp': 'windows xp协议',
15
+ // https://github.com/wechaty/puppet-gitter
16
+ 'PuppetGitter': 'gitter协议',
17
+ // https://github.com/wechaty/puppet-whatsapp
18
+ 'PuppetWhatsapp': 'whatsapp协议',
19
+ // https://github.com/leochen-g/puppet-walnut-gateway
20
+ 'PuppetWalnut': '硬核桃5G消息协议',
21
+ // https://github.com/wechaty/puppet-discord
22
+ 'PuppetDiscord': 'Discord协议',
23
+ // https://github.com/wechaty/puppet-oicq
24
+ 'PuppetOICQ': '基于OICQ的qq协议',
25
+ // https://github.com/wechaty/puppet-lark
26
+ 'PuppetLark': '飞书协议',
27
+ 'PuppetService': '企微协议',
28
+ 'PuppetMatrix': 'ipad协议',
29
+ };
30
+ // 需要处理换行的puppet 主要是 windows 平台下需要把\n 换成\r\n
31
+ export const WRAP_REPLACE_PUPPET = [
32
+ 'PuppetEngine', 'PuppetXp'
33
+ ];
34
+ export const SEND_APP_MSG_PUPPET = [
35
+ 'PuppetEngine',
36
+ 'PuppetXp',
37
+ 'PuppetPadlocal',
38
+ 'PuppetWalnut',
39
+ 'PuppetOICQ',
40
+ 'PuppetLark',
41
+ 'PuppetOA',
42
+ 'PuppetWhatsapp',
43
+ 'PuppetDiscord'
44
+ ];
45
+ export async function getPuppetEol() {
46
+ const puppetInfo = await getPuppetInfo();
47
+ if (puppetInfo.puppetType === 'PuppetXp' || puppetInfo.puppetType === 'PuppetEngine') {
48
+ return '\r';
49
+ }
50
+ return '\n';
51
+ }
52
+ /**
53
+ * 判断是不是windows平台
54
+ * @return {Promise<boolean>}
55
+ */
56
+ export async function isWindowsPlatform() {
57
+ const puppetInfo = await getPuppetInfo();
58
+ if (puppetInfo.puppetType === 'PuppetXp' || puppetInfo.puppetType === 'PuppetEngine') {
59
+ return true;
60
+ }
61
+ return false;
62
+ }
63
+ /**
64
+ * 判断是否是web 协议
65
+ * @return {Promise<boolean>}
66
+ */
67
+ export async function isNotWebPuppet() {
68
+ const puppetInfo = await getPuppetInfo();
69
+ return puppetInfo.puppetType === 'PuppetWechat4u' && puppetInfo.puppetType === 'PuppetWechat';
70
+ }
71
+ //# sourceMappingURL=puppet-type.js.map
@@ -0,0 +1,27 @@
1
+ import nedb from './nedb.js';
2
+ const adb = nedb();
3
+ async function addAibotConfig(info) {
4
+ try {
5
+ let doc = await adb.insert(info);
6
+ return doc;
7
+ }
8
+ catch (error) {
9
+ console.log('插入数据错误', error);
10
+ }
11
+ }
12
+ async function getAibotConfig() {
13
+ try {
14
+ let search = await adb.find({});
15
+ return search[0];
16
+ }
17
+ catch (error) {
18
+ console.log('查询数据错误', error);
19
+ }
20
+ }
21
+ export { addAibotConfig };
22
+ export { getAibotConfig };
23
+ export default {
24
+ addAibotConfig,
25
+ getAibotConfig,
26
+ };
27
+ //# sourceMappingURL=aiDb.js.map
@@ -0,0 +1,84 @@
1
+ import nedb from "./nedb.js";
2
+ import path from "path";
3
+ import os from "os";
4
+ import globalConfig from "./global.js";
5
+ import fs from "fs";
6
+ let rdb = null;
7
+ function initDb() {
8
+ if (!rdb) {
9
+ const baseDir = path.join(os.homedir(), path.sep, ".wechaty", "wechaty-panel-cache", globalConfig.getApikey(), path.sep);
10
+ const dbpath = baseDir + "aichat.db";
11
+ console.log('聊天记录路径:如果开启了记录会存到此处,未开启不会记录,所有记录都是存在本地', dbpath);
12
+ if (fs.existsSync(dbpath)) {
13
+ // fs.unlinkSync(dbpath);
14
+ }
15
+ rdb = nedb(dbpath);
16
+ }
17
+ }
18
+ /**
19
+ * 记录群聊天记录 记录格式
20
+ * { contactName: '', contactId: '', roomName: '', roomId: '', input: '输入的问题', output: '输出内容', time: '时间' }
21
+ * @param info
22
+ * @returns {Promise<unknown>}
23
+ */
24
+ export async function addAichatRecord(info) {
25
+ try {
26
+ initDb();
27
+ let doc = await rdb.insert(info);
28
+ return doc;
29
+ }
30
+ catch (error) {
31
+ console.log("插入数据错误", error);
32
+ }
33
+ }
34
+ /**
35
+ * 获取指定群的聊天记录
36
+ * @param room
37
+ * @returns {Promise<*>}
38
+ */
39
+ export async function getAichatRecord(query) {
40
+ try {
41
+ let search = await rdb.find(query);
42
+ return search;
43
+ }
44
+ catch (error) {
45
+ console.log("查询数据错误", error);
46
+ }
47
+ }
48
+ /**
49
+ * 清楚指定群的聊天记录
50
+ * @param roomName
51
+ * @returns {Promise<void>}
52
+ */
53
+ export async function removeRecord(query) {
54
+ try {
55
+ let search = await rdb.remove(query, { multi: true });
56
+ return search;
57
+ }
58
+ catch (e) {
59
+ console.log("error", e);
60
+ }
61
+ }
62
+ /**
63
+ * 获取指定群聊的所有聊天内容
64
+ * @param rooName
65
+ * @param day 取的天数
66
+ * @returns {Promise<*>}
67
+ */
68
+ export async function getAichatQuestion(query, day) {
69
+ try {
70
+ let list = await getAichatRecord(query);
71
+ list = list.filter(item => {
72
+ return item.time >= new Date().getTime() - day * 24 * 60 * 60 * 1000;
73
+ });
74
+ let question = "";
75
+ list.forEach((item) => {
76
+ question = question + "|" + item.input;
77
+ });
78
+ return question;
79
+ }
80
+ catch (e) {
81
+ console.log("error", e);
82
+ }
83
+ }
84
+ //# sourceMappingURL=aichatDb.js.map
@@ -0,0 +1,137 @@
1
+ import nedb from './nedb.js';
2
+ import path from "path";
3
+ import os from "os";
4
+ import globalConfig from "./global.js";
5
+ import fs from "fs";
6
+ import dayjs from "dayjs";
7
+ let rdb = null;
8
+ function initDb() {
9
+ if (!rdb) {
10
+ const baseDir = path.join(os.homedir(), path.sep, ".wechaty", "wechaty-panel-cache", globalConfig.getApikey(), path.sep);
11
+ const dbpath = baseDir + "chatHistory.db";
12
+ // if (fs.existsSync(dbpath)) {
13
+ // fs.unlinkSync(dbpath);
14
+ // }
15
+ rdb = nedb(dbpath);
16
+ }
17
+ }
18
+ function delDb() {
19
+ if (rdb) {
20
+ const baseDir = path.join(os.homedir(), path.sep, ".wechaty", "wechaty-panel-cache", globalConfig.getApikey(), path.sep);
21
+ const dbpath = baseDir + "chatHistory.db";
22
+ if (fs.existsSync(dbpath)) {
23
+ fs.unlinkSync(dbpath);
24
+ }
25
+ rdb = null;
26
+ }
27
+ }
28
+ /**
29
+ * 记录聊天记录 记录格式
30
+ * { conversionId: '', conversionName: '', isRoom: false, isRobot: false, content: '内容', chatName: '用户名', chatId: '', time: '时间' }
31
+ * @param info
32
+ * @returns {Promise<unknown>}
33
+ */
34
+ export async function addHistory(info) {
35
+ try {
36
+ initDb();
37
+ let doc = rdb && await rdb.insert(info);
38
+ return doc;
39
+ }
40
+ catch (error) {
41
+ console.log('插入数据错误', error);
42
+ }
43
+ }
44
+ /**
45
+ * 获取指定群的聊天记录
46
+ * @param conversionId
47
+ * @returns {Promise<*>}
48
+ */
49
+ export async function getHistoryByConversionId(conversionId) {
50
+ try {
51
+ let search = rdb && await rdb.find({ conversionId }) || [];
52
+ return search;
53
+ }
54
+ catch (error) {
55
+ console.log('查询数据错误', error);
56
+ }
57
+ }
58
+ export async function getHistoryByConversionName(conversionName) {
59
+ try {
60
+ let search = rdb ? await rdb.find({ conversionName }) : [];
61
+ return search;
62
+ }
63
+ catch (error) {
64
+ console.log('查询数据错误', error);
65
+ }
66
+ }
67
+ /**
68
+ * 清楚指定群的聊天记录
69
+ * @param conversionId
70
+ * @returns {Promise<void>}
71
+ */
72
+ export async function removeHistory(conversionId) {
73
+ try {
74
+ let search = await rdb.remove({ conversionId }, { multi: true });
75
+ return search;
76
+ }
77
+ catch (e) {
78
+ console.log("error", e);
79
+ }
80
+ }
81
+ export function clearHistory() {
82
+ try {
83
+ delDb();
84
+ }
85
+ catch (e) {
86
+ console.log("error", e);
87
+ }
88
+ }
89
+ /**
90
+ * 按照时间获取指定群聊的所有聊天内容
91
+ * @param rooName
92
+ * @param day 取的天数
93
+ * @returns {Promise<*>}
94
+ */
95
+ export async function getHistoryByTime({ id, name }, day) {
96
+ try {
97
+ let list = [];
98
+ list = await getHistoryByConversionId(id);
99
+ if (!list.length) {
100
+ list = await getHistoryByConversionName(name);
101
+ }
102
+ list = list.filter(item => {
103
+ if (day === 0) {
104
+ return item.time >= dayjs().startOf('day').unix();
105
+ }
106
+ else {
107
+ return item.time >= dayjs().unix() - day * 60 * 60;
108
+ }
109
+ });
110
+ list.sort((a, b) => (a.time - b.time));
111
+ return list;
112
+ }
113
+ catch (e) {
114
+ console.log("error", e);
115
+ }
116
+ }
117
+ /**
118
+ * 按照数量获取指定群聊的所有聊天内容
119
+ * @param rooName
120
+ * @param day 取的天数
121
+ * @returns {Promise<*>}
122
+ */
123
+ export async function getHistoryByNum({ id, name }, num) {
124
+ try {
125
+ let list = [];
126
+ list = await getHistoryByConversionId(id);
127
+ if (!list.length) {
128
+ list = await getHistoryByConversionName(name);
129
+ }
130
+ list.sort((a, b) => (b.time - a.time));
131
+ return list.splice(0, num);
132
+ }
133
+ catch (e) {
134
+ console.log("error", e);
135
+ }
136
+ }
137
+ //# sourceMappingURL=chatHistory.js.map
@@ -0,0 +1,97 @@
1
+ import nedb from './nedb.js';
2
+ const cdb = nedb();
3
+ /**
4
+ * 添加配置文件
5
+ * @param {*} config
6
+ */
7
+ async function addConfig(info) {
8
+ try {
9
+ let doc = await cdb.insert(info);
10
+ return doc;
11
+ }
12
+ catch (error) {
13
+ console.log('插入数据错误', error);
14
+ }
15
+ }
16
+ /**
17
+ * 更新配置文件
18
+ * @param {*} config
19
+ */
20
+ async function updateConfig(config) {
21
+ try {
22
+ let res = await allConfig();
23
+ if (res) {
24
+ await cdb.remove({ id: config.id }, { multi: true });
25
+ return await addConfig(config);
26
+ }
27
+ else {
28
+ return await addConfig(config);
29
+ }
30
+ }
31
+ catch (error) {
32
+ console.log('配置文件更新失败', error);
33
+ }
34
+ }
35
+ /**
36
+ * 获取所有配置
37
+ */
38
+ async function allConfig() {
39
+ try {
40
+ let search = await cdb.find();
41
+ return search[0];
42
+ }
43
+ catch (error) {
44
+ console.log('查询数据错误', error);
45
+ }
46
+ }
47
+ /**
48
+ * 每日任务
49
+ */
50
+ async function dayTaskSchedule() {
51
+ try {
52
+ let res = await cdb.find({});
53
+ return res[0].dayTaskSchedule;
54
+ }
55
+ catch (error) {
56
+ console.log('获取每日任务', error);
57
+ }
58
+ }
59
+ /**
60
+ * 群资讯
61
+ */
62
+ async function roomNewsSchedule() {
63
+ try {
64
+ let res = await cdb.find.find({});
65
+ return res[0].roomNewsSchedule;
66
+ }
67
+ catch (error) {
68
+ console.log('获取每日任务', error);
69
+ }
70
+ }
71
+ /**
72
+ * 群任务
73
+ */
74
+ async function roomTaskSchedule() {
75
+ try {
76
+ let res = await cdb.find.find({});
77
+ return res[0].roomTaskSchedule;
78
+ }
79
+ catch (error) {
80
+ console.log('获取每日任务', error);
81
+ }
82
+ }
83
+ export { addConfig };
84
+ export { updateConfig };
85
+ export { allConfig };
86
+ export { dayTaskSchedule };
87
+ export { roomNewsSchedule };
88
+ export { roomTaskSchedule };
89
+ export default {
90
+ addConfig,
91
+ updateConfig,
92
+ allConfig,
93
+ dayTaskSchedule,
94
+ roomNewsSchedule,
95
+ roomTaskSchedule,
96
+ };
97
+ //# sourceMappingURL=configDb.js.map
@@ -0,0 +1,62 @@
1
+ class Config {
2
+ constructor() {
3
+ this.apiKey = '';
4
+ this.qrcodeKey = ''; // 企微二维码key
5
+ this.verifyCode = ''; // 企微验证码
6
+ this.verifyId = ''; // 企微验证码id
7
+ this.gptconfig = [];
8
+ this.allTasks = [];
9
+ }
10
+ getAllTasks() {
11
+ return this.allTasks;
12
+ }
13
+ updateAllTasks(list) {
14
+ this.allTasks = list;
15
+ }
16
+ getVerifyId() {
17
+ return this.verifyId;
18
+ }
19
+ setVerifyId(val) {
20
+ this.verifyId = val;
21
+ }
22
+ getVerifyCode() {
23
+ return this.verifyCode;
24
+ }
25
+ setVerifyCode(val) {
26
+ this.verifyCode = val;
27
+ }
28
+ getQrKey() {
29
+ return this.qrcodeKey;
30
+ }
31
+ setQrKey(val) {
32
+ this.qrcodeKey = val;
33
+ }
34
+ getApikey() {
35
+ return this.apiKey;
36
+ }
37
+ setApikey(val) {
38
+ this.apiKey = val;
39
+ }
40
+ getAllGptConfig() {
41
+ return this.gptconfig;
42
+ }
43
+ updateAllGptConfig(list) {
44
+ this.gptconfig = list;
45
+ }
46
+ getGptConfigById(id) {
47
+ return this.gptconfig.find(item => item.id === id);
48
+ }
49
+ updateOneGptConfig(id, info) {
50
+ this.gptconfig = this.gptconfig.map(item => {
51
+ if (item.id === id) {
52
+ return info;
53
+ }
54
+ return item;
55
+ });
56
+ }
57
+ }
58
+ if (!global.configHandler) {
59
+ global.configHandler = new Config();
60
+ }
61
+ export default global.configHandler;
62
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1,85 @@
1
+ import nedb from "./nedb.js";
2
+ import path from "path";
3
+ import os from "os";
4
+ import fs from 'fs';
5
+ import globalConfig from "./global.js";
6
+ let rdb = null;
7
+ function initDb() {
8
+ if (!rdb) {
9
+ const baseDir = path.join(os.homedir(), path.sep, ".wechaty", "wechaty-panel-cache", globalConfig.getApikey(), path.sep);
10
+ const dbpath = baseDir + "gptconfig.db";
11
+ if (fs.existsSync(dbpath)) {
12
+ fs.unlinkSync(dbpath);
13
+ }
14
+ rdb = nedb(dbpath);
15
+ }
16
+ }
17
+ /**
18
+ * 存储gpt配置
19
+ * { contactName: '', contactId: '', roomName: '', roomId: '', input: '输入的问题', output: '输出内容', time: '时间' }
20
+ * @param info
21
+ * @returns {Promise<unknown>}
22
+ */
23
+ export async function addGptConfig(info) {
24
+ try {
25
+ initDb();
26
+ let doc = await rdb.insert(info);
27
+ return doc;
28
+ }
29
+ catch (error) {
30
+ console.log("插入数据错误", error);
31
+ }
32
+ }
33
+ /**
34
+ * 获取指定群的聊天记录
35
+ * @param room
36
+ * @returns {Promise<*>}
37
+ */
38
+ export async function getAllGptConfig() {
39
+ try {
40
+ initDb();
41
+ let search = await rdb.find({});
42
+ return search;
43
+ }
44
+ catch (error) {
45
+ console.log("查询数据错误", error);
46
+ }
47
+ }
48
+ export async function getGptConfigById(id) {
49
+ try {
50
+ initDb();
51
+ let search = await rdb.find({ id });
52
+ return search[0];
53
+ }
54
+ catch (error) {
55
+ console.log("查询数据错误", error);
56
+ }
57
+ }
58
+ export async function updateAllGptConfig(infos) {
59
+ try {
60
+ initDb();
61
+ for (const item of infos) {
62
+ await rdb.update({ _id: item._id }, item, { upsert: true });
63
+ }
64
+ }
65
+ catch (error) {
66
+ console.log('更新失败', error);
67
+ }
68
+ }
69
+ export async function updateOneGptConfig(id, info) {
70
+ try {
71
+ let search = await rdb.update({ id }, { ...info });
72
+ return search;
73
+ }
74
+ catch (error) {
75
+ console.log("查询数据错误", error);
76
+ }
77
+ }
78
+ export function resetData() {
79
+ const baseDir = path.join(os.homedir(), path.sep, ".wechaty", "wechaty-panel-cache", globalConfig.getApikey(), path.sep);
80
+ const dbpath = baseDir + "gptconfig.db";
81
+ if (fs.existsSync(dbpath)) {
82
+ fs.unlinkSync(dbpath);
83
+ }
84
+ }
85
+ //# sourceMappingURL=gptConfig.js.map
@@ -0,0 +1,88 @@
1
+ import Datastore from 'nedb';
2
+ function DB(database) {
3
+ let options = {
4
+ filename: database,
5
+ autoload: true,
6
+ };
7
+ this.db = new Datastore(options);
8
+ }
9
+ DB.prototype.limit = function (offset, limit) {
10
+ this.offset = offset || 0;
11
+ this.limit = limit || 15;
12
+ return this;
13
+ };
14
+ DB.prototype.sort = function (orderby) {
15
+ this.orderby = orderby;
16
+ return this;
17
+ };
18
+ DB.prototype.find = function (query, select) {
19
+ return new Promise((resolve, reject) => {
20
+ let stmt = this.db.find(query || {});
21
+ if (this.orderby !== undefined) {
22
+ stmt.sort(this.orderby);
23
+ }
24
+ if (this.offset !== undefined) {
25
+ stmt.skip(this.offset).limit(this.limit);
26
+ }
27
+ if (select != undefined) {
28
+ stmt.projection(select || {});
29
+ }
30
+ stmt.exec((err, docs) => {
31
+ if (err) {
32
+ return reject(err);
33
+ }
34
+ resolve(docs);
35
+ });
36
+ });
37
+ };
38
+ DB.prototype.findOne = function (query, select) {
39
+ return new Promise((resolve, reject) => {
40
+ let stmt = this.db.findOne(query || {});
41
+ if (this.sort !== undefined) {
42
+ stmt.sort(this.sort);
43
+ }
44
+ if (select != undefined) {
45
+ stmt.projection(select || {});
46
+ }
47
+ stmt.exec((err, doc) => {
48
+ if (err) {
49
+ return reject(err);
50
+ }
51
+ resolve(doc);
52
+ });
53
+ });
54
+ };
55
+ DB.prototype.insert = function (values) {
56
+ return new Promise((resolve, reject) => {
57
+ this.db.insert(values, (err, newDoc) => {
58
+ if (err) {
59
+ return reject(err);
60
+ }
61
+ resolve(newDoc);
62
+ });
63
+ });
64
+ };
65
+ DB.prototype.update = function (query, values, options) {
66
+ return new Promise((resolve, reject) => {
67
+ this.db.update(query || {}, values || {}, options || {}, (err, numAffected) => {
68
+ if (err) {
69
+ return reject(err);
70
+ }
71
+ resolve(numAffected);
72
+ });
73
+ });
74
+ };
75
+ DB.prototype.remove = function (query, options) {
76
+ return new Promise((resolve, reject) => {
77
+ this.db.remove(query || {}, options || {}, (err, numAffected) => {
78
+ if (err) {
79
+ return reject(err);
80
+ }
81
+ resolve(numAffected);
82
+ });
83
+ });
84
+ };
85
+ export default (database) => {
86
+ return new DB(database);
87
+ };
88
+ //# sourceMappingURL=nedb.js.map
@@ -0,0 +1,58 @@
1
+ import nedb from './nedb.js';
2
+ const pdb = nedb();
3
+ /**
4
+ *
5
+ * @param info {{puppetType}}
6
+ * @return {Promise<unknown>}
7
+ */
8
+ export async function addPuppetInfo(info) {
9
+ try {
10
+ let doc = await pdb.insert(info);
11
+ return doc;
12
+ }
13
+ catch (error) {
14
+ console.log('插入数据错误', error);
15
+ }
16
+ }
17
+ /**
18
+ * 更新配置文件
19
+ * @param {*} config
20
+ */
21
+ export async function updatePuppetConfig(config) {
22
+ try {
23
+ let res = await allPuppetConfig();
24
+ if (res) {
25
+ let up = await pdb.update({ id: config.id }, config);
26
+ return up;
27
+ }
28
+ else {
29
+ let add = await addPuppetInfo(config);
30
+ return add;
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.log('puppet更新失败', error);
35
+ }
36
+ }
37
+ /**
38
+ * 获取所有配置
39
+ */
40
+ export async function allPuppetConfig() {
41
+ try {
42
+ let search = await pdb.find();
43
+ return search[0];
44
+ }
45
+ catch (error) {
46
+ console.log('查询数据错误', error);
47
+ }
48
+ }
49
+ export async function getPuppetInfo() {
50
+ try {
51
+ let search = await pdb.find({});
52
+ return search[0];
53
+ }
54
+ catch (error) {
55
+ console.log('查询数据错误', error);
56
+ }
57
+ }
58
+ //# sourceMappingURL=puppetDb.js.map