Skip to content

Commit e0fd977

Browse files
committed
add: qq json support
1 parent 66e8c55 commit e0fd977

File tree

3 files changed

+23
-45
lines changed

3 files changed

+23
-45
lines changed

apps/qqbot/src/adapter/MessageAction.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class SendMessageAction extends SendMessageActionBase<BotTypes> {
4747
};
4848
}
4949

50-
if (this._replyToMessageId) {
50+
if (this._replyToMessageId && !this._replyToMessageId) {
5151
params.message.push({
5252
type: 'reply',
5353
data: {
@@ -73,6 +73,14 @@ export class SendMessageAction extends SendMessageActionBase<BotTypes> {
7373
break;
7474
}
7575

76+
if (this._jsonMessage) {
77+
params.message.push({
78+
type: 'json',
79+
data: {
80+
data: this._jsonMessage
81+
}
82+
});
83+
}
7684
if (this._text) {
7785
params.message.push({
7886
type: 'text',

packages/botcore/src/modules/help.ts

Lines changed: 7 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -44,50 +44,13 @@ ${enableOfficialServers ? `本 Bot 主要基于 AquaDX.Net 制作,同时支持
4444
bot.registerCommand('help', async (event) => {
4545
const reply = event.reply()
4646
.setHtml(BASE_HELP)
47-
.disableLinkPreview();
48-
const bundle = reply.addBundledMessage()
49-
.setPrompt('[帮助]')
50-
.setTitle('AquaDX Bot 帮助')
51-
.setSummary('点击打开查看');
52-
bundle.addNode()
53-
.setText('AquaDX.Net 查分 & maimai 歌曲查询 Bot');
54-
bundle.addNode()
55-
.setText(`绑定账号\n
56-
使用 /bind AquaDX 的用户名${enableOfficialServers ? ' 或 国服微信二维码识别出来的文字 或 AIME 卡背后的 20 位数字(国际服)' : ''} 来绑定账号
57-
支持一个人同时绑定多个账号,可以通过 /profile 来查看和切换绑定的账号
58-
通过 /delprofile 来删除绑定的账号`);
59-
bundle.addNode()
60-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-7CA05F143AB8AF466089F2E46BB8596A/0');
61-
bundle.addNode()
62-
.setText(`查歌\n
63-
使用 /search 歌曲名称或者别名 来搜索歌曲信息`);
64-
bundle.addNode()
65-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-982C14B7AFCAE5703FFD54CDBF48BA0D/0');
66-
bundle.addNode()
67-
.setText(`使用 /query 歌曲名称或者别名 来搜索自己的成绩`);
68-
bundle.addNode()
69-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-EC20A1DFC2DC00B71EC1FF14FB4E9E36/0');
70-
bundle.addNode()
71-
.setText(`牌子进度和图片生成\n
72-
输入 牌子名称进度 来查询牌子进度,比如说 霸者进度`);
73-
bundle.addNode()
74-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-EF0CFF2A2F1CC481B3EF66DBEF99D6C6/0');
75-
bundle.addNode()
76-
.setText(`输入 牌子名称完成表 来查询指定的牌子 🟣Master 以上难度歌曲的完成情况,将生成图片发送`);
77-
bundle.addNode()
78-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-BFE9C0EB1C78A8DDD6F1BDE11E2ADAEC/0');
79-
bundle.addNode()
80-
.setText(`输入 难度完成表 来查询指定难度所有歌曲的完成情况,将生成图片发送,比如说 13 完成表`);
81-
bundle.addNode()
82-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-128CF43E4CBC765FF8BA0A9AA1D19F8E/0');
83-
bundle.addNode()
84-
.setText(`使用 /b50 来生成 B50 成绩图`);
85-
bundle.addNode()
86-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-ED24950271F20D78C8242D975894A29D/0');
87-
bundle.addNode()
88-
.setText(`输入 难度成绩表 来查询指定难度前 100 首成绩最好的歌,比如说 13 成绩表`);
89-
bundle.addNode()
90-
.addPhoto('https://gchat.qpic.cn/gchatpic_new/0/0-0-D9C5CFA4A973B66FEDF514B398373577/0');
47+
.disableLinkPreview()
48+
.setJsonMessage(`{"app":"com.tencent.multimsg","config":{"autosize":1,"forward":1,"round":1,"type":"normal","width":300},
49+
"desc":"[帮助]","extra":"{\\"filename\\":\\"7479b09c-c396-4bc5-8d71-f5ab8b94b693\\",\\"tsum\\":17}\\n",
50+
"meta":{"detail":{"news":[{"text":"绑定账号"},{"text":"查歌"},{"text":"牌子进度和图片生成"},{"text":"B50"},{"text":"难度成绩表"}],
51+
"resid":"62jGM7bzGvGrCGQ9HddeIJ5Q/MUGf/GhmNgyQbTaFbCM0j//KZfuzXJwBLg2bI1K",
52+
"source":"AquaDX Bot 帮助","summary":"点击打开查看",
53+
"uniseq":"7479b09c-c396-4bc5-8d71-f5ab8b94b693"}},"prompt":"[帮助]","ver":"0.0.0.5","view":"contact"}`);
9154
await reply.dispatch();
9255
return true;
9356
});

packages/botfirm/src/MessageAction.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export abstract class SendMessageAction<T extends BotTypes> extends Dispatchable
5555
protected _fileType: 'audio' | 'document' | 'photo' = null;
5656
protected _templatedMessage: TemplatedMessage<T> = null;
5757
protected _bundledMessage: BundledMessageBase<T> = null;
58+
protected _jsonMessage: string = null;
5859

5960
public addPhoto(file: T['SendableFile']) {
6061
this._fileType = 'photo';
@@ -80,6 +81,12 @@ export abstract class SendMessageAction<T extends BotTypes> extends Dispatchable
8081
return this._bundledMessage;
8182
}
8283

84+
// 仅在 QQ 中支持
85+
public setJsonMessage(json: string) {
86+
this._jsonMessage = json;
87+
return this;
88+
}
89+
8390
// 仅在 QQ 官 Bot 中支持,弃用
8491
public setTemplatedMessage(template: T['MessageTemplateID'], values: Record<string, string>) {
8592
this._templatedMessage = new TemplatedMessage(template, values);

0 commit comments

Comments
 (0)