alemonjs 1.0.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 (169) hide show
  1. package/LICENSE +340 -0
  2. package/README.md +54 -0
  3. package/lib/alemon/app.js +38 -0
  4. package/lib/alemon/apps.js +121 -0
  5. package/lib/alemon/buffer.js +38 -0
  6. package/lib/alemon/dealmsg.js +423 -0
  7. package/lib/alemon/dialogue.js +61 -0
  8. package/lib/alemon/index.js +40 -0
  9. package/lib/alemon/message.js +27 -0
  10. package/lib/alemon/plugin.js +44 -0
  11. package/lib/alemon/puppeteer.js +226 -0
  12. package/lib/alemon/qrcode.js +66 -0
  13. package/lib/alemon/screenshot.js +126 -0
  14. package/lib/alemon/typings.js +96 -0
  15. package/lib/config.js +25 -0
  16. package/lib/discord/alemon/api.js +44 -0
  17. package/lib/discord/alemon/bot.js +11 -0
  18. package/lib/discord/alemon/conversation.js +7 -0
  19. package/lib/discord/alemon/message/PUBLIC_GUILD_MESSAGES.js +185 -0
  20. package/lib/discord/alemon/segment.js +62 -0
  21. package/lib/discord/index.js +50 -0
  22. package/lib/discord/login.js +99 -0
  23. package/lib/index.js +12 -0
  24. package/lib/kook/alemon/bot.js +11 -0
  25. package/lib/kook/alemon/conversation.js +56 -0
  26. package/lib/kook/alemon/message/PUBLIC_GUILD_MESSAGES.js +195 -0
  27. package/lib/kook/alemon/segment.js +90 -0
  28. package/lib/kook/index.js +39 -0
  29. package/lib/kook/login.js +53 -0
  30. package/lib/login.js +112 -0
  31. package/lib/main.js +106 -0
  32. package/lib/ntqq/alemon/bot.js +11 -0
  33. package/lib/ntqq/alemon/conversation.js +18 -0
  34. package/lib/ntqq/alemon/message/C2C_MESSAGE_CREATE.js +142 -0
  35. package/lib/ntqq/alemon/message/GROUP_AT_MESSAGE_CREATE.js +218 -0
  36. package/lib/ntqq/alemon/segment.js +29 -0
  37. package/lib/ntqq/alemon/types.js +1 -0
  38. package/lib/ntqq/index.js +77 -0
  39. package/lib/ntqq/login.js +74 -0
  40. package/lib/ntqq/sdk/api.js +158 -0
  41. package/lib/ntqq/sdk/config.js +46 -0
  42. package/lib/ntqq/sdk/index.js +5 -0
  43. package/lib/ntqq/sdk/intents.js +69 -0
  44. package/lib/ntqq/sdk/types.js +1 -0
  45. package/lib/ntqq/sdk/typings.js +9 -0
  46. package/lib/ntqq/sdk/web/client.js +89 -0
  47. package/lib/ntqq/sdk/web/img.js +76 -0
  48. package/lib/ntqq/sdk/web/index.js +4 -0
  49. package/lib/ntqq/sdk/web/ip.js +24 -0
  50. package/lib/ntqq/sdk/wss.js +178 -0
  51. package/lib/qq/alemon/apidoc.js +216 -0
  52. package/lib/qq/alemon/bot.js +11 -0
  53. package/lib/qq/alemon/console.js +13 -0
  54. package/lib/qq/alemon/conversation.js +139 -0
  55. package/lib/qq/alemon/doc.js +93 -0
  56. package/lib/qq/alemon/e.js +41 -0
  57. package/lib/qq/alemon/message/AUDIO_ACTION.js +57 -0
  58. package/lib/qq/alemon/message/DIRECT_MESSAGE.js +202 -0
  59. package/lib/qq/alemon/message/FORUMS_EVENT.js +66 -0
  60. package/lib/qq/alemon/message/GUILDS.js +65 -0
  61. package/lib/qq/alemon/message/GUILD_MEMBERS.js +153 -0
  62. package/lib/qq/alemon/message/GUILD_MESSAGES.js +50 -0
  63. package/lib/qq/alemon/message/GUILD_MESSAGE_REACTIONS.js +37 -0
  64. package/lib/qq/alemon/message/INTERACTION.js +36 -0
  65. package/lib/qq/alemon/message/MESSAGE.js +303 -0
  66. package/lib/qq/alemon/message/MESSAGE_AUDIT.js +41 -0
  67. package/lib/qq/alemon/message/OPEN_FORUMS_EVENT.js +74 -0
  68. package/lib/qq/alemon/message/PUBLIC_GUILD_MESSAGES.js +52 -0
  69. package/lib/qq/alemon/permissions.js +43 -0
  70. package/lib/qq/alemon/privatechat.js +78 -0
  71. package/lib/qq/alemon/segment.js +25 -0
  72. package/lib/qq/alemon/types.js +25 -0
  73. package/lib/qq/index.js +44 -0
  74. package/lib/qq/login.js +151 -0
  75. package/lib/types.js +5 -0
  76. package/lib/villa/alemon/conversation.js +48 -0
  77. package/lib/villa/alemon/message/GUILDS.js +124 -0
  78. package/lib/villa/alemon/message/GUILD_MEMBERS.js +128 -0
  79. package/lib/villa/alemon/message/GUILD_MESSAGE_REACTIONS.js +127 -0
  80. package/lib/villa/alemon/message/MESSAGES.js +334 -0
  81. package/lib/villa/alemon/message/MESSAGE_AUDIT.js +128 -0
  82. package/lib/villa/alemon/message/e.js +41 -0
  83. package/lib/villa/alemon/segment.js +34 -0
  84. package/lib/villa/index.js +46 -0
  85. package/lib/villa/login.js +62 -0
  86. package/package.json +63 -0
  87. package/types/alemon/app.d.ts +22 -0
  88. package/types/alemon/apps.d.ts +41 -0
  89. package/types/alemon/buffer.d.ts +13 -0
  90. package/types/alemon/dealmsg.d.ts +41 -0
  91. package/types/alemon/dialogue.d.ts +55 -0
  92. package/types/alemon/index.d.ts +40 -0
  93. package/types/alemon/message.d.ts +17 -0
  94. package/types/alemon/plugin.d.ts +69 -0
  95. package/types/alemon/puppeteer.d.ts +53 -0
  96. package/types/alemon/qrcode.d.ts +20 -0
  97. package/types/alemon/screenshot.d.ts +23 -0
  98. package/types/alemon/typings.d.ts +525 -0
  99. package/types/config.d.ts +12 -0
  100. package/types/discord/alemon/api.d.ts +11 -0
  101. package/types/discord/alemon/bot.d.ts +6 -0
  102. package/types/discord/alemon/conversation.d.ts +6 -0
  103. package/types/discord/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +7 -0
  104. package/types/discord/alemon/segment.d.ts +46 -0
  105. package/types/discord/index.d.ts +1 -0
  106. package/types/discord/login.d.ts +7 -0
  107. package/types/index.d.ts +6 -0
  108. package/types/kook/alemon/bot.d.ts +8 -0
  109. package/types/kook/alemon/conversation.d.ts +7 -0
  110. package/types/kook/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +6 -0
  111. package/types/kook/alemon/segment.d.ts +66 -0
  112. package/types/kook/index.d.ts +5 -0
  113. package/types/kook/login.d.ts +7 -0
  114. package/types/login.d.ts +18 -0
  115. package/types/main.d.ts +15 -0
  116. package/types/ntqq/alemon/bot.d.ts +8 -0
  117. package/types/ntqq/alemon/conversation.d.ts +8 -0
  118. package/types/ntqq/alemon/message/C2C_MESSAGE_CREATE.d.ts +2 -0
  119. package/types/ntqq/alemon/message/GROUP_AT_MESSAGE_CREATE.d.ts +8 -0
  120. package/types/ntqq/alemon/segment.d.ts +20 -0
  121. package/types/ntqq/alemon/types.d.ts +11 -0
  122. package/types/ntqq/index.d.ts +1 -0
  123. package/types/ntqq/login.d.ts +6 -0
  124. package/types/ntqq/sdk/api.d.ts +44 -0
  125. package/types/ntqq/sdk/config.d.ts +23 -0
  126. package/types/ntqq/sdk/index.d.ts +5 -0
  127. package/types/ntqq/sdk/intents.d.ts +2 -0
  128. package/types/ntqq/sdk/types.d.ts +11 -0
  129. package/types/ntqq/sdk/typings.d.ts +17 -0
  130. package/types/ntqq/sdk/web/client.d.ts +8 -0
  131. package/types/ntqq/sdk/web/img.d.ts +20 -0
  132. package/types/ntqq/sdk/web/index.d.ts +4 -0
  133. package/types/ntqq/sdk/web/ip.d.ts +5 -0
  134. package/types/ntqq/sdk/wss.d.ts +35 -0
  135. package/types/qq/alemon/apidoc.d.ts +154 -0
  136. package/types/qq/alemon/bot.d.ts +8 -0
  137. package/types/qq/alemon/console.d.ts +1 -0
  138. package/types/qq/alemon/conversation.d.ts +5 -0
  139. package/types/qq/alemon/doc.d.ts +93 -0
  140. package/types/qq/alemon/e.d.ts +38 -0
  141. package/types/qq/alemon/message/AUDIO_ACTION.d.ts +15 -0
  142. package/types/qq/alemon/message/DIRECT_MESSAGE.d.ts +16 -0
  143. package/types/qq/alemon/message/FORUMS_EVENT.d.ts +25 -0
  144. package/types/qq/alemon/message/GUILDS.d.ts +19 -0
  145. package/types/qq/alemon/message/GUILD_MEMBERS.d.ts +11 -0
  146. package/types/qq/alemon/message/GUILD_MESSAGES.d.ts +12 -0
  147. package/types/qq/alemon/message/GUILD_MESSAGE_REACTIONS.d.ts +9 -0
  148. package/types/qq/alemon/message/INTERACTION.d.ts +8 -0
  149. package/types/qq/alemon/message/MESSAGE.d.ts +16 -0
  150. package/types/qq/alemon/message/MESSAGE_AUDIT.d.ts +9 -0
  151. package/types/qq/alemon/message/OPEN_FORUMS_EVENT.d.ts +28 -0
  152. package/types/qq/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +12 -0
  153. package/types/qq/alemon/permissions.d.ts +29 -0
  154. package/types/qq/alemon/privatechat.d.ts +14 -0
  155. package/types/qq/alemon/segment.d.ts +19 -0
  156. package/types/qq/alemon/types.d.ts +82 -0
  157. package/types/qq/index.d.ts +6 -0
  158. package/types/qq/login.d.ts +6 -0
  159. package/types/types.d.ts +85 -0
  160. package/types/villa/alemon/conversation.d.ts +7 -0
  161. package/types/villa/alemon/message/GUILDS.d.ts +10 -0
  162. package/types/villa/alemon/message/GUILD_MEMBERS.d.ts +14 -0
  163. package/types/villa/alemon/message/GUILD_MESSAGE_REACTIONS.d.ts +7 -0
  164. package/types/villa/alemon/message/MESSAGES.d.ts +7 -0
  165. package/types/villa/alemon/message/MESSAGE_AUDIT.d.ts +10 -0
  166. package/types/villa/alemon/message/e.d.ts +37 -0
  167. package/types/villa/alemon/segment.d.ts +26 -0
  168. package/types/villa/index.d.ts +1 -0
  169. package/types/villa/login.d.ts +7 -0
@@ -0,0 +1,41 @@
1
+ export const now_e = {
2
+ /**
3
+ * 卡片
4
+ * @param obj
5
+ * @returns
6
+ */
7
+ replyCard: async (arr) => {
8
+ console.info('待实现');
9
+ return false;
10
+ },
11
+ /**
12
+ * 引用消息
13
+ * @param mid
14
+ * @param boj
15
+ * @returns
16
+ */
17
+ replyByMid: async (mid, msg) => {
18
+ console.info('待实现');
19
+ return false;
20
+ },
21
+ /**
22
+ * 发送表情表态
23
+ * @param mid
24
+ * @param boj { emoji_type: number; emoji_id: string }
25
+ * @returns
26
+ */
27
+ replyEmoji: async (mid, boj) => {
28
+ console.info('待实现');
29
+ return false;
30
+ },
31
+ /**
32
+ * 删除表情表态
33
+ * @param mid
34
+ * @param boj { emoji_type: number; emoji_id: string }
35
+ * @returns
36
+ */
37
+ deleteEmoji: async (mid, boj) => {
38
+ console.info('待实现');
39
+ return false;
40
+ }
41
+ };
@@ -0,0 +1,34 @@
1
+ export const segmentVilla = {
2
+ /**
3
+ * 艾特某人
4
+ * @param uid
5
+ * @returns
6
+ */
7
+ at: function (uid) {
8
+ return `<@!${uid}>`;
9
+ },
10
+ /**
11
+ * 艾特全体
12
+ * @returns
13
+ */
14
+ atAll: function atAll() {
15
+ return `<@!everyone>`;
16
+ },
17
+ /**
18
+ * 子频道引用
19
+ * @param channel_id
20
+ * @returns
21
+ */
22
+ atChannel: function (channel_id) {
23
+ return `<#${channel_id}>`;
24
+ },
25
+ /**
26
+ * 蓝链接
27
+ * @param name
28
+ * @param url
29
+ * @returns
30
+ */
31
+ link: function (name, url) {
32
+ return `[${name}](${url})`;
33
+ }
34
+ };
@@ -0,0 +1,46 @@
1
+ import { callBackByVilla } from './alemon/conversation.js';
2
+ import { checkRobotByVilla } from './login.js';
3
+ import { createClient, Client, hmacSha256 } from 'mys-villa';
4
+ import { getBotConfigByKey } from '../login.js';
5
+ export async function createAlemonByVilla() {
6
+ /**
7
+ * 登录
8
+ */
9
+ if (await checkRobotByVilla().catch(err => {
10
+ console.error(err);
11
+ process.exit();
12
+ })) {
13
+ /**
14
+ * 读取配置
15
+ */
16
+ const cfg = getBotConfigByKey('villa');
17
+ if ((cfg.pub_key ?? '') != '') {
18
+ cfg.secret = hmacSha256(cfg.secret, cfg.pub_key);
19
+ }
20
+ createClient({
21
+ bot_id: cfg.bot_id,
22
+ bot_secret: cfg.secret,
23
+ callback_port: cfg.port ?? 8080,
24
+ callback_url: cfg.url ?? '/api/mys/callback',
25
+ img_url: cfg.img_url ?? '/api/mys/img',
26
+ IMAGE_DIR: cfg.IMAGE_DIR ?? '/data/mys/img'
27
+ }, callBackByVilla, async () => {
28
+ console.info('[HELLO] 欢迎使用大别野');
29
+ });
30
+ /**
31
+ * 获取ip4
32
+ */
33
+ const ip = await Client.getIP();
34
+ if (ip) {
35
+ console.info(`[OPEN] ${cfg.http ?? 'http'}://${ip}:${cfg.port ?? 8080}${cfg.url ?? '/api/mys/callback'}`);
36
+ // 启动清除机制
37
+ Client.autoClearImages(600000);
38
+ }
39
+ else {
40
+ console.error('公网IP识别失败~暂无法支持运行');
41
+ return;
42
+ }
43
+ return true;
44
+ }
45
+ return false;
46
+ }
@@ -0,0 +1,62 @@
1
+ import prompts from 'prompts';
2
+ import { setBotConfigByKey, getBotConfigByKey } from '../login.js';
3
+ import { getToml, writeToml } from '../config.js';
4
+ /**
5
+ * 登录配置
6
+ * @param Bcf
7
+ * @param val
8
+ * @returns
9
+ */
10
+ export async function checkRobotByVilla() {
11
+ // 重写登录
12
+ if (process.argv.indexOf('login') == -1) {
13
+ // 启动
14
+ const config = getBotConfigByKey('villa');
15
+ // 存在
16
+ if ((config ?? '') !== '' &&
17
+ (config.bot_id ?? '') !== '' &&
18
+ (config.secret ?? '') !== '') {
19
+ setBotConfigByKey('villa', config);
20
+ return true;
21
+ }
22
+ }
23
+ console.info('[LOGIN]', '-----------------------');
24
+ const timeoutId = setTimeout(() => {
25
+ throw '超过1分钟未完成登录';
26
+ }, 60000);
27
+ const { bot_id, secret } = await prompts([
28
+ {
29
+ type: 'password',
30
+ name: 'bot_id',
31
+ message: 'bot_id: ',
32
+ validate: (value) => value !== '' && typeof value === 'string' ? true : 'bot_id: '
33
+ },
34
+ {
35
+ type: 'password',
36
+ name: 'secret',
37
+ message: 'secret: ',
38
+ validate: (value) => value !== '' && typeof value === 'string' ? true : 'secret: '
39
+ }
40
+ ]).catch((err) => {
41
+ console.error(err);
42
+ process.exit();
43
+ });
44
+ if (!bot_id || !secret)
45
+ return false;
46
+ clearTimeout(timeoutId);
47
+ // 得到已变更的配置
48
+ const db = getBotConfigByKey('villa');
49
+ // 得到配置
50
+ const data = getToml();
51
+ data.villa = {
52
+ ...db,
53
+ // 覆盖新配置
54
+ bot_id,
55
+ secret
56
+ };
57
+ // 写入配置
58
+ writeToml(data);
59
+ // 设置配置
60
+ setBotConfigByKey('villa', data.villa);
61
+ return true;
62
+ }
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "alemonjs",
3
+ "version": "1.0.0",
4
+ "description": "阿柠檬框架",
5
+ "author": "ningmengchongshui",
6
+ "main": "lib/index.js",
7
+ "license": "GPL-2.0",
8
+ "type": "module",
9
+ "scripts": {
10
+ "app": "ts-node index.ts",
11
+ "login": "ts-node index.ts login",
12
+ "tsc": "npx tsc",
13
+ "format": "prettier --write .",
14
+ "lint": "eslint . --ext .js,.ts --fix --ignore-path .gitignore"
15
+ },
16
+ "dependencies": {
17
+ "@discordjs/builders": "^1.6.3",
18
+ "@discordjs/core": "^0.6.0",
19
+ "@discordjs/rest": "^1.7.1",
20
+ "@iarna/toml": "^2.2.5",
21
+ "alemon-rollup": "^1.0.0",
22
+ "axios": "^1.4.0",
23
+ "discord.js": "^14.11.0",
24
+ "image-size": "^1.0.2",
25
+ "kook-ws": "^1.0.4",
26
+ "lodash": "^4.17.21",
27
+ "mys-villa": "^1.1.8",
28
+ "prompts": "^2.4.2",
29
+ "puppeteer": "^20.7.1",
30
+ "qq-channel": "^1.0.0",
31
+ "qq-guild-bot": "^2.9.5",
32
+ "qrcode": "^1.5.3"
33
+ },
34
+ "devDependencies": {
35
+ "@types/lodash": "^4.14.186",
36
+ "@types/node": "^20.2.4",
37
+ "@types/progress": "^2.0.5",
38
+ "@types/qrcode": "^1.5.0",
39
+ "@types/ws": "^8.5.5",
40
+ "@typescript-eslint/eslint-plugin": "^5.60.0",
41
+ "@typescript-eslint/parser": "^5.60.0",
42
+ "eslint": "^8.43.0",
43
+ "eslint-config-prettier": "^8.8.0",
44
+ "eslint-plugin-prettier": "^4.2.1",
45
+ "prettier": "^2.8.8",
46
+ "ts-node": "^10.9.1",
47
+ "typescript": ">=5.0.4 <5.1.0"
48
+ },
49
+ "types": "types",
50
+ "files": [
51
+ "lib",
52
+ "types"
53
+ ],
54
+ "publishConfig": {
55
+ "registry": "https://registry.npmjs.org"
56
+ },
57
+ "engines": {
58
+ "node": ">=16.3.0"
59
+ },
60
+ "keywords": [
61
+ "alemon"
62
+ ]
63
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 得到应用
3
+ * @param key 插件名
4
+ * @returns
5
+ */
6
+ export declare function getApp(key: any): object;
7
+ /**
8
+ * 设置应用
9
+ * @param key 插件名
10
+ * @param value 应用合集
11
+ */
12
+ export declare function setApp(key: any, value: any): void;
13
+ /**
14
+ * 删除应用
15
+ * @param key 插件名
16
+ */
17
+ export declare function delApp(key: any): void;
18
+ /**
19
+ * 得到应用
20
+ * @returns
21
+ */
22
+ export declare function getAppKey(): any[];
@@ -0,0 +1,41 @@
1
+ import { setAppsHelp } from './dealmsg.js';
2
+ /**
3
+ * 得到执行路径
4
+ * @param url
5
+ * @returns
6
+ */
7
+ export declare function getAppPath(url: string | URL): string;
8
+ /**
9
+ * 得到执行目录
10
+ * @param {} url
11
+ * @returns
12
+ */
13
+ export declare function getAppName(url: string | URL): string;
14
+ /**
15
+ * 创建应用对象
16
+ * @param AppName
17
+ * @returns
18
+ */
19
+ export declare function createApp(AppName: string): {
20
+ /**
21
+ * 设置指令json地址
22
+ * @param rt = '/src'
23
+ */
24
+ setHelp: typeof setAppsHelp;
25
+ /**
26
+ * 重定义消息
27
+ * @param fnc
28
+ * @returns
29
+ */
30
+ setMessage: (fnc: (...args: any[]) => any) => boolean;
31
+ /**
32
+ * 创建应用
33
+ * @param app 应用对象
34
+ */
35
+ component: (dirObject?: object) => boolean;
36
+ /**
37
+ * 挂起应用
38
+ * @returns
39
+ */
40
+ mount: (instruct?: string) => void;
41
+ };
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /**
3
+ * 异步请求图片
4
+ * @param url
5
+ * @returns
6
+ */
7
+ export declare function getUrlbuffer(url: string): Promise<Buffer>;
8
+ /**
9
+ * 读取本地图片
10
+ * @param path 根路径
11
+ * @returns
12
+ */
13
+ export declare function getPathBuffer(path: string): Buffer;
@@ -0,0 +1,41 @@
1
+ import { AMessage } from './typings.js';
2
+ /**
3
+ * 设置指令json地址
4
+ * @param rt '/help'
5
+ */
6
+ export declare function setAppsHelp(rt?: string): void;
7
+ /**
8
+ * 得到机器人帮助
9
+ * @param AppName
10
+ * @returns
11
+ */
12
+ export declare function getPluginHelp(AppName: string): any;
13
+ /**
14
+ * 应用初始化
15
+ * @returns
16
+ */
17
+ export declare function appsInit(): Promise<void>;
18
+ export declare function getMergedRegex(): RegExp;
19
+ export declare function getAppDir(): string;
20
+ /**
21
+ * 初始化应用 mount = ture 则直接应用
22
+ * @param param0 { mount = false, address = '/application' }
23
+ * @returns
24
+ */
25
+ export declare function loadInit(val?: {
26
+ mount?: boolean;
27
+ address?: string;
28
+ }): Promise<void>;
29
+ /**
30
+ * 指令匹配
31
+ * @param e
32
+ * @returns
33
+ */
34
+ export declare function InstructionMatching(e: AMessage): Promise<boolean>;
35
+ /**
36
+ * 不匹配指令的方法
37
+ * 只用匹配类型函数
38
+ * @param e
39
+ * @returns
40
+ */
41
+ export declare function typeMessage(e: AMessage): Promise<boolean>;
@@ -0,0 +1,55 @@
1
+ import { AMessage } from './typings.js';
2
+ /**
3
+ * 对话处理函数类型
4
+ */
5
+ export interface SockesType {
6
+ [key: string]: any;
7
+ }
8
+ /**
9
+ * 对话状态类型
10
+ */
11
+ export type ConversationState = {
12
+ /**
13
+ * 会话次数
14
+ */
15
+ step: number;
16
+ /**
17
+ * 携带的数据
18
+ */
19
+ data: any;
20
+ /**
21
+ * 携带的方法
22
+ */
23
+ fnc: (...args: any[]) => any;
24
+ };
25
+ /**
26
+ * 对话接口
27
+ */
28
+ export type ConversationHandler = (e: AMessage, state: ConversationState) => Promise<void>;
29
+ /**
30
+ * 对话集
31
+ */
32
+ export type conversationHandlersMap = Map<string, ConversationHandler>;
33
+ /**
34
+ * 注册对话处理器
35
+ */
36
+ export declare const conversationHandlers: conversationHandlersMap;
37
+ /**
38
+ * 获取对话状态
39
+ * @param userId 根据id获取
40
+ * @returns
41
+ */
42
+ export declare const getConversationState: (userId: string) => Promise<ConversationState | null>;
43
+ /**
44
+ * 保存对话状态
45
+ * @param userId
46
+ * @param state
47
+ * @returns
48
+ */
49
+ export declare const setConversationState: (userId: string, state: ConversationState) => Promise<void>;
50
+ /**
51
+ * 删除对话状态
52
+ * @param userId
53
+ * @returns
54
+ */
55
+ export declare const deleteConversationState: (userId: string) => Promise<void>;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 插件
3
+ */
4
+ export * from './plugin.js';
5
+ /**
6
+ * 应用
7
+ */
8
+ export * from './apps.js';
9
+ /**
10
+ * 消息
11
+ */
12
+ export * from './message.js';
13
+ /**
14
+ * 对话机
15
+ */
16
+ export * from './dialogue.js';
17
+ /**
18
+ * 接口
19
+ */
20
+ export * from './qrcode.js';
21
+ /**
22
+ * 模块加载
23
+ */
24
+ export * from './dealmsg.js';
25
+ /**
26
+ * 浏览器
27
+ */
28
+ export * from './puppeteer.js';
29
+ /**
30
+ * 截图
31
+ */
32
+ export * from './screenshot.js';
33
+ /**
34
+ * 类型
35
+ */
36
+ export * from './typings.js';
37
+ /**
38
+ * 二进制
39
+ */
40
+ export * from './buffer.js';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 得到消息
3
+ * @param key 插件名
4
+ * @returns
5
+ */
6
+ export declare function getMessage(key: string): any;
7
+ /**
8
+ * 设置消息
9
+ * @param key 插件名
10
+ * @param fnc 方法
11
+ */
12
+ export declare function setMessage(key: string, fnc: (...args: any[]) => any): void;
13
+ /**
14
+ * 删除消息
15
+ * @param key 插件名
16
+ */
17
+ export declare function delMessage(key: string): void;
@@ -0,0 +1,69 @@
1
+ import { EventEnum, EventType } from './typings.js';
2
+ export interface PluginInitType {
3
+ event?: (typeof EventEnum)[number];
4
+ eventType?: (typeof EventType)[number];
5
+ priority?: number;
6
+ name?: string;
7
+ dsc?: string;
8
+ rule?: PluginRuleType[];
9
+ }
10
+ export interface PluginRuleType {
11
+ /**
12
+ * 正则
13
+ */
14
+ reg?: RegExp | string;
15
+ /**
16
+ * 方法(函数)
17
+ */
18
+ fnc: string;
19
+ /**
20
+ * 指令示范
21
+ */
22
+ dsc?: string;
23
+ /**
24
+ * 指令文档
25
+ */
26
+ doc?: string;
27
+ /**
28
+ * 优先级
29
+ */
30
+ priority?: number;
31
+ }
32
+ export declare class plugin {
33
+ /**
34
+ * 模块名
35
+ */
36
+ name?: string;
37
+ /**
38
+ * 模块说明
39
+ */
40
+ dsc?: string;
41
+ /**
42
+ * 事件枚举
43
+ */
44
+ event?: (typeof EventEnum)[number];
45
+ /**
46
+ * 事件类型
47
+ */
48
+ eventType?: (typeof EventType)[number];
49
+ /**
50
+ * 匹配优先级
51
+ */
52
+ priority?: number;
53
+ /**
54
+ * 匹配集
55
+ */
56
+ rule?: PluginRuleType[];
57
+ /**
58
+ * @param name 类名标记
59
+ * @param event 事件类型
60
+ * @param eventType 消息类型
61
+ * @param priority 优先级 数字越小优先级越高
62
+ * @param rule.reg 命令正则 RegExp | string
63
+ * @param rule.fnc 命令函数 function
64
+ * @param rule.dsc 指令示范 sdc
65
+ * @param rule.doc 指令文档 doc
66
+ * @param rule.priority 优先级 数字越小优先级越高
67
+ */
68
+ constructor({ name, event, eventType, priority, rule }: PluginInitType);
69
+ }
@@ -0,0 +1,53 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import puppeteer, { PuppeteerLaunchOptions, ScreenshotOptions } from 'puppeteer';
3
+ /**
4
+ * 配置浏览器参数
5
+ * @param val
6
+ */
7
+ export declare function setLanchConfig(val: PuppeteerLaunchOptions): void;
8
+ /**
9
+ * 得到pup配置
10
+ * @returns
11
+ */
12
+ export declare function getLanchConfig(): puppeteer.PuppeteerLaunchOptions;
13
+ /**
14
+ * 启动检查
15
+ * @returns
16
+ */
17
+ export declare function pupStartCheck(): Promise<boolean>;
18
+ /**
19
+ * 截图并返回buffer
20
+ * @param htmlPath 绝对路径
21
+ * @param tab 截图元素位
22
+ * @param type 图片类型
23
+ * @param quality 清晰度
24
+ * @param timeout 响应检查
25
+ * @returns
26
+ */
27
+ export declare function screenshotByFile(htmlPath: string | Buffer | URL, Options: {
28
+ SOptions: ScreenshotOptions;
29
+ tab?: string;
30
+ timeout?: number;
31
+ }): Promise<string | false | Buffer>;
32
+ /**
33
+ * url截图选项
34
+ */
35
+ export interface urlScreenshotOptions {
36
+ url: string;
37
+ time?: number;
38
+ rand?: ScreenshotOptions;
39
+ params?: any;
40
+ tab?: string;
41
+ cache?: boolean;
42
+ }
43
+ /**
44
+ * 截图
45
+ * @param val
46
+ * @returns
47
+ */
48
+ export declare function screenshotByUrl(val: urlScreenshotOptions): Promise<string | false | Buffer>;
49
+ /**
50
+ * 启动浏览器
51
+ * @returns
52
+ */
53
+ export declare function startChrom(): Promise<boolean>;
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /**
3
+ * 链接转化为二维码
4
+ * @param text 链接
5
+ * @param localpath 可选,要保存的路径
6
+ * @returns
7
+ */
8
+ export declare function createQrcode(text: string, localpath?: string): Promise<false | Buffer>;
9
+ /**
10
+ * 读取buffer文件
11
+ * @param localpath 读取地址
12
+ * @returns
13
+ */
14
+ export declare const getBuffer: (localpath: string) => Promise<Buffer>;
15
+ /**
16
+ * 写入buffer
17
+ * @param localpath 写入地址
18
+ * @param bufferData 数据
19
+ */
20
+ export declare const setBuffer: (localpath: string, bufferData: Buffer) => void;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 如果control为真则需重新用art渲染
3
+ * @param Options
4
+ * @returns
5
+ */
6
+ export declare function createStr(Options: {
7
+ /**
8
+ * 插件名
9
+ */
10
+ AppName: string;
11
+ /**
12
+ * 模板地址模板地址
13
+ */
14
+ tplFile: string;
15
+ /**
16
+ * 任意数据对象
17
+ */
18
+ data?: any;
19
+ }): {
20
+ control: boolean;
21
+ AdressHtml: string;
22
+ template: any;
23
+ };