From b7855e91f6c237814ef6bfffb05683f77a390a70 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Thu, 25 Apr 2024 23:25:38 +0800 Subject: [PATCH] feat: msg emoji like --- src/ntqqapi/api/msg.ts | 11 ++++++++++ .../event/notice/OB11MsgEmojiLikeEvent.ts | 21 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/onebot11/event/notice/OB11MsgEmojiLikeEvent.ts diff --git a/src/ntqqapi/api/msg.ts b/src/ntqqapi/api/msg.ts index 8f186ed..e0350fd 100644 --- a/src/ntqqapi/api/msg.ts +++ b/src/ntqqapi/api/msg.ts @@ -16,6 +16,17 @@ export interface Peer { } export class NTQQMsgApi { + static async setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set: boolean=true){ + // nt_qq//global//nt_data//Emoji//emoji-resource//sysface_res/apng/ 下可以看到所有QQ表情预览 + // nt_qq\global\nt_data\Emoji\emoji-resource\face_config.json 里面有所有表情的id, 自带表情id是QSid, 标准emoji表情id是QCid + // 其实以官方文档为准是最好的,https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType + return await callNTQQApi({ + methodName: NTQQApiMethod.EMOJI_LIKE, + args: [{ + peer, msgSeq, emojiId, emojiType: emojiId.length > 3 ? "2" : "1", setEmoji: set + }, null] + }) + } static async getMultiMsg(peer: Peer, rootMsgId: string, parentMsgId: string) { return await callNTQQApi({ methodName: NTQQApiMethod.GET_MULTI_MSG, diff --git a/src/onebot11/event/notice/OB11MsgEmojiLikeEvent.ts b/src/onebot11/event/notice/OB11MsgEmojiLikeEvent.ts new file mode 100644 index 0000000..0351f46 --- /dev/null +++ b/src/onebot11/event/notice/OB11MsgEmojiLikeEvent.ts @@ -0,0 +1,21 @@ +import {OB11GroupNoticeEvent} from "./OB11GroupNoticeEvent"; + +export interface MsgEmojiLike { + emoji_id: string, + count: number +} + +export class OB11GroupMsgEmojiLikeEvent extends OB11GroupNoticeEvent { + notice_type = "group_msg_emoji_like"; + message_id: number; + sub_type: "ban" | "lift_ban"; + likes: MsgEmojiLike[] + + constructor(groupId: number, userId: number, messageId: number, likes: MsgEmojiLike[]) { + super(); + this.group_id = groupId; + this.user_id = userId; // 可为空,表示是对别人的消息操作,如果是对bot自己的消息则不为空 + this.message_id = messageId; + this.likes = likes; + } +}