feat: market face

This commit is contained in:
markyfsun 2024-04-27 23:01:47 +08:00
parent fe3ac3060a
commit 2e55924a19
5 changed files with 33 additions and 39 deletions

View File

@ -6,6 +6,7 @@ import {
SendArkElement,
SendFaceElement,
SendFileElement,
SendMarketFaceElement,
SendPicElement,
SendPttElement,
SendReplyElement,
@ -260,6 +261,17 @@ export class SendMsgElementConstructor {
}
}
static mface(emojiPackageId: number, emojiId: string, key: string):SendMarketFaceElement{
return {
elementType: ElementType.MFACE,
marketFaceElement: {
emojiPackageId,
emojiId,
key
},
}
}
static dice(resultId: number | null): SendFaceElement {
// 实际测试并不能控制结果

View File

@ -10,6 +10,7 @@ export enum ElementType {
FACE = 6,
REPLY = 7,
ARK = 10,
MFACE = 11,
}
export interface SendTextElement {
@ -91,6 +92,11 @@ export interface SendFaceElement {
faceElement: FaceElement
}
export interface SendMarketFaceElement {
elementType: ElementType.MFACE,
marketFaceElement: MarketFaceElement
}
export interface FileElement {
"fileMd5"?: "",
"fileName": string,
@ -128,7 +134,7 @@ export interface SendArkElement {
}
export type SendMessageElement = SendTextElement | SendPttElement |
SendPicElement | SendReplyElement | SendFaceElement | SendFileElement | SendVideoElement | SendArkElement
SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement
export enum AtType {
notAt = 0,
@ -238,42 +244,9 @@ export interface FaceElement {
}
export interface MarketFaceElement {
"itemType": 6,
"faceInfo": 1,
"emojiPackageId": 203875,
"subType": 3,
"mediaType": 0,
"imageWidth": 200,
"imageHeight": 200,
"faceName": string,
"emojiId": "094d53bd1c9ac5d35d04b08e8a6c992c",
"key": "a8b1dd0aebc8d910",
"param": null,
"mobileParam": null,
"sourceType": null,
"startTime": null,
"endTime": null,
"emojiType": 1,
"hasIpProduct": null,
"voiceItemHeightArr": null,
"sourceName": null,
"sourceJumpUrl": null,
"sourceTypeName": null,
"backColor": null,
"volumeColor": null,
"staticFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c_aio.png",
"dynamicFacePath": "E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c",
"supportSize": [
{
"width": 300,
"height": 300
},
{
"width": 200,
"height": 200
}
],
"apngSupportSize": null
"emojiPackageId": number,
"emojiId": string,
"key": string,
}
export interface VideoElement {
@ -420,6 +393,7 @@ export interface RawMessage {
arkElement: ArkElement;
grayTipElement: GrayTipElement;
faceElement: FaceElement;
mfaceElement: MarketFaceElement;
videoElement: VideoElement;
fileElement: FileElement;
marketFaceElement: MarketFaceElement;

View File

@ -155,7 +155,9 @@ export async function createSendElements(messageData: OB11MessageData[], target:
}
}
break;
case OB11MessageDataType.mface: {
sendElements.push(SendMsgElementConstructor.mface(sendMsg.data.emojiPackageId, sendMsg.data.emojiId, sendMsg.data.key))
}
case OB11MessageDataType.image:
case OB11MessageDataType.file:
case OB11MessageDataType.video:

View File

@ -224,6 +224,10 @@ export class OB11Constructor {
// const url = `https://p.qpic.cn/CDN_STATIC/0/data/imgcache/htdocs/club/item/parcel/item/${dir}/${md5}/300x300.gif?max_age=31536000`
const url = `https://gxh.vip.qq.com/club/item/parcel/item/${dir}/${md5}/raw300.gif`;
message_data["data"]["url"] = url;
message_data["data"]["emoji_id"] = element.marketFaceElement.emojiId
message_data["data"]["emoji_package_id"] = String(element.marketFaceElement.emojiPackageId)
message_data["data"]["key"] = element.marketFaceElement.key
} else if (element.markdownElement) {
message_data["type"] = OB11MessageDataType.markdown;
message_data["data"]["data"] = element.markdownElement.content;

View File

@ -125,7 +125,9 @@ export enum OB11MessageDataType {
export interface OB11MessageMFace{
type: OB11MessageDataType.mface,
data: {
text: string
emojiPackageId: number,
emojiId: string,
key: string
}
}