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.
- package/LICENSE +340 -0
- package/README.md +54 -0
- package/lib/alemon/app.js +38 -0
- package/lib/alemon/apps.js +121 -0
- package/lib/alemon/buffer.js +38 -0
- package/lib/alemon/dealmsg.js +423 -0
- package/lib/alemon/dialogue.js +61 -0
- package/lib/alemon/index.js +40 -0
- package/lib/alemon/message.js +27 -0
- package/lib/alemon/plugin.js +44 -0
- package/lib/alemon/puppeteer.js +226 -0
- package/lib/alemon/qrcode.js +66 -0
- package/lib/alemon/screenshot.js +126 -0
- package/lib/alemon/typings.js +96 -0
- package/lib/config.js +25 -0
- package/lib/discord/alemon/api.js +44 -0
- package/lib/discord/alemon/bot.js +11 -0
- package/lib/discord/alemon/conversation.js +7 -0
- package/lib/discord/alemon/message/PUBLIC_GUILD_MESSAGES.js +185 -0
- package/lib/discord/alemon/segment.js +62 -0
- package/lib/discord/index.js +50 -0
- package/lib/discord/login.js +99 -0
- package/lib/index.js +12 -0
- package/lib/kook/alemon/bot.js +11 -0
- package/lib/kook/alemon/conversation.js +56 -0
- package/lib/kook/alemon/message/PUBLIC_GUILD_MESSAGES.js +195 -0
- package/lib/kook/alemon/segment.js +90 -0
- package/lib/kook/index.js +39 -0
- package/lib/kook/login.js +53 -0
- package/lib/login.js +112 -0
- package/lib/main.js +106 -0
- package/lib/ntqq/alemon/bot.js +11 -0
- package/lib/ntqq/alemon/conversation.js +18 -0
- package/lib/ntqq/alemon/message/C2C_MESSAGE_CREATE.js +142 -0
- package/lib/ntqq/alemon/message/GROUP_AT_MESSAGE_CREATE.js +218 -0
- package/lib/ntqq/alemon/segment.js +29 -0
- package/lib/ntqq/alemon/types.js +1 -0
- package/lib/ntqq/index.js +77 -0
- package/lib/ntqq/login.js +74 -0
- package/lib/ntqq/sdk/api.js +158 -0
- package/lib/ntqq/sdk/config.js +46 -0
- package/lib/ntqq/sdk/index.js +5 -0
- package/lib/ntqq/sdk/intents.js +69 -0
- package/lib/ntqq/sdk/types.js +1 -0
- package/lib/ntqq/sdk/typings.js +9 -0
- package/lib/ntqq/sdk/web/client.js +89 -0
- package/lib/ntqq/sdk/web/img.js +76 -0
- package/lib/ntqq/sdk/web/index.js +4 -0
- package/lib/ntqq/sdk/web/ip.js +24 -0
- package/lib/ntqq/sdk/wss.js +178 -0
- package/lib/qq/alemon/apidoc.js +216 -0
- package/lib/qq/alemon/bot.js +11 -0
- package/lib/qq/alemon/console.js +13 -0
- package/lib/qq/alemon/conversation.js +139 -0
- package/lib/qq/alemon/doc.js +93 -0
- package/lib/qq/alemon/e.js +41 -0
- package/lib/qq/alemon/message/AUDIO_ACTION.js +57 -0
- package/lib/qq/alemon/message/DIRECT_MESSAGE.js +202 -0
- package/lib/qq/alemon/message/FORUMS_EVENT.js +66 -0
- package/lib/qq/alemon/message/GUILDS.js +65 -0
- package/lib/qq/alemon/message/GUILD_MEMBERS.js +153 -0
- package/lib/qq/alemon/message/GUILD_MESSAGES.js +50 -0
- package/lib/qq/alemon/message/GUILD_MESSAGE_REACTIONS.js +37 -0
- package/lib/qq/alemon/message/INTERACTION.js +36 -0
- package/lib/qq/alemon/message/MESSAGE.js +303 -0
- package/lib/qq/alemon/message/MESSAGE_AUDIT.js +41 -0
- package/lib/qq/alemon/message/OPEN_FORUMS_EVENT.js +74 -0
- package/lib/qq/alemon/message/PUBLIC_GUILD_MESSAGES.js +52 -0
- package/lib/qq/alemon/permissions.js +43 -0
- package/lib/qq/alemon/privatechat.js +78 -0
- package/lib/qq/alemon/segment.js +25 -0
- package/lib/qq/alemon/types.js +25 -0
- package/lib/qq/index.js +44 -0
- package/lib/qq/login.js +151 -0
- package/lib/types.js +5 -0
- package/lib/villa/alemon/conversation.js +48 -0
- package/lib/villa/alemon/message/GUILDS.js +124 -0
- package/lib/villa/alemon/message/GUILD_MEMBERS.js +128 -0
- package/lib/villa/alemon/message/GUILD_MESSAGE_REACTIONS.js +127 -0
- package/lib/villa/alemon/message/MESSAGES.js +334 -0
- package/lib/villa/alemon/message/MESSAGE_AUDIT.js +128 -0
- package/lib/villa/alemon/message/e.js +41 -0
- package/lib/villa/alemon/segment.js +34 -0
- package/lib/villa/index.js +46 -0
- package/lib/villa/login.js +62 -0
- package/package.json +63 -0
- package/types/alemon/app.d.ts +22 -0
- package/types/alemon/apps.d.ts +41 -0
- package/types/alemon/buffer.d.ts +13 -0
- package/types/alemon/dealmsg.d.ts +41 -0
- package/types/alemon/dialogue.d.ts +55 -0
- package/types/alemon/index.d.ts +40 -0
- package/types/alemon/message.d.ts +17 -0
- package/types/alemon/plugin.d.ts +69 -0
- package/types/alemon/puppeteer.d.ts +53 -0
- package/types/alemon/qrcode.d.ts +20 -0
- package/types/alemon/screenshot.d.ts +23 -0
- package/types/alemon/typings.d.ts +525 -0
- package/types/config.d.ts +12 -0
- package/types/discord/alemon/api.d.ts +11 -0
- package/types/discord/alemon/bot.d.ts +6 -0
- package/types/discord/alemon/conversation.d.ts +6 -0
- package/types/discord/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +7 -0
- package/types/discord/alemon/segment.d.ts +46 -0
- package/types/discord/index.d.ts +1 -0
- package/types/discord/login.d.ts +7 -0
- package/types/index.d.ts +6 -0
- package/types/kook/alemon/bot.d.ts +8 -0
- package/types/kook/alemon/conversation.d.ts +7 -0
- package/types/kook/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +6 -0
- package/types/kook/alemon/segment.d.ts +66 -0
- package/types/kook/index.d.ts +5 -0
- package/types/kook/login.d.ts +7 -0
- package/types/login.d.ts +18 -0
- package/types/main.d.ts +15 -0
- package/types/ntqq/alemon/bot.d.ts +8 -0
- package/types/ntqq/alemon/conversation.d.ts +8 -0
- package/types/ntqq/alemon/message/C2C_MESSAGE_CREATE.d.ts +2 -0
- package/types/ntqq/alemon/message/GROUP_AT_MESSAGE_CREATE.d.ts +8 -0
- package/types/ntqq/alemon/segment.d.ts +20 -0
- package/types/ntqq/alemon/types.d.ts +11 -0
- package/types/ntqq/index.d.ts +1 -0
- package/types/ntqq/login.d.ts +6 -0
- package/types/ntqq/sdk/api.d.ts +44 -0
- package/types/ntqq/sdk/config.d.ts +23 -0
- package/types/ntqq/sdk/index.d.ts +5 -0
- package/types/ntqq/sdk/intents.d.ts +2 -0
- package/types/ntqq/sdk/types.d.ts +11 -0
- package/types/ntqq/sdk/typings.d.ts +17 -0
- package/types/ntqq/sdk/web/client.d.ts +8 -0
- package/types/ntqq/sdk/web/img.d.ts +20 -0
- package/types/ntqq/sdk/web/index.d.ts +4 -0
- package/types/ntqq/sdk/web/ip.d.ts +5 -0
- package/types/ntqq/sdk/wss.d.ts +35 -0
- package/types/qq/alemon/apidoc.d.ts +154 -0
- package/types/qq/alemon/bot.d.ts +8 -0
- package/types/qq/alemon/console.d.ts +1 -0
- package/types/qq/alemon/conversation.d.ts +5 -0
- package/types/qq/alemon/doc.d.ts +93 -0
- package/types/qq/alemon/e.d.ts +38 -0
- package/types/qq/alemon/message/AUDIO_ACTION.d.ts +15 -0
- package/types/qq/alemon/message/DIRECT_MESSAGE.d.ts +16 -0
- package/types/qq/alemon/message/FORUMS_EVENT.d.ts +25 -0
- package/types/qq/alemon/message/GUILDS.d.ts +19 -0
- package/types/qq/alemon/message/GUILD_MEMBERS.d.ts +11 -0
- package/types/qq/alemon/message/GUILD_MESSAGES.d.ts +12 -0
- package/types/qq/alemon/message/GUILD_MESSAGE_REACTIONS.d.ts +9 -0
- package/types/qq/alemon/message/INTERACTION.d.ts +8 -0
- package/types/qq/alemon/message/MESSAGE.d.ts +16 -0
- package/types/qq/alemon/message/MESSAGE_AUDIT.d.ts +9 -0
- package/types/qq/alemon/message/OPEN_FORUMS_EVENT.d.ts +28 -0
- package/types/qq/alemon/message/PUBLIC_GUILD_MESSAGES.d.ts +12 -0
- package/types/qq/alemon/permissions.d.ts +29 -0
- package/types/qq/alemon/privatechat.d.ts +14 -0
- package/types/qq/alemon/segment.d.ts +19 -0
- package/types/qq/alemon/types.d.ts +82 -0
- package/types/qq/index.d.ts +6 -0
- package/types/qq/login.d.ts +6 -0
- package/types/types.d.ts +85 -0
- package/types/villa/alemon/conversation.d.ts +7 -0
- package/types/villa/alemon/message/GUILDS.d.ts +10 -0
- package/types/villa/alemon/message/GUILD_MEMBERS.d.ts +14 -0
- package/types/villa/alemon/message/GUILD_MESSAGE_REACTIONS.d.ts +7 -0
- package/types/villa/alemon/message/MESSAGES.d.ts +7 -0
- package/types/villa/alemon/message/MESSAGE_AUDIT.d.ts +10 -0
- package/types/villa/alemon/message/e.d.ts +37 -0
- package/types/villa/alemon/segment.d.ts +26 -0
- package/types/villa/index.d.ts +1 -0
- 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
|
+
};
|