From eb7f7a90c23c9e84ef8b86faaf16bf306090ac14 Mon Sep 17 00:00:00 2001 From: Shigma <1700011071@pku.edu.cn> Date: Wed, 12 May 2021 02:48:21 +0800 Subject: [PATCH] feat(chat): support qq faces --- packages/adapter-discord/src/utils.ts | 2 +- packages/adapter-onebot/package.json | 1 + packages/adapter-onebot/src/utils.ts | 6 +++--- packages/plugin-chat/client/utils/message.vue | 7 ++++++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/adapter-discord/src/utils.ts b/packages/adapter-discord/src/utils.ts index 0f7dfb8ea2..2eeb1d2604 100644 --- a/packages/adapter-discord/src/utils.ts +++ b/packages/adapter-discord/src/utils.ts @@ -43,7 +43,7 @@ export async function adaptMessage(bot: DiscordBot, meta: DC.Message, session: P everyone: meta.mention_everyone, users: meta.mentions.map(adaptUser), roles: meta.mention_roles.map(id => ({ id })), - channels: meta.mention_channels.map(data => ({ + channels: (meta.mention_channels || []).map(data => ({ channelId: data.id, channelName: data.name, groupId: data.guild_id, diff --git a/packages/adapter-onebot/package.json b/packages/adapter-onebot/package.json index bd5d67125d..318db95d5d 100644 --- a/packages/adapter-onebot/package.json +++ b/packages/adapter-onebot/package.json @@ -37,6 +37,7 @@ "dependencies": { "axios": "^0.21.1", "koishi-utils": "^4.2.2", + "qface": "1.1.0", "ws": "^7.4.5" } } diff --git a/packages/adapter-onebot/src/utils.ts b/packages/adapter-onebot/src/utils.ts index b08674adb0..4032663b20 100644 --- a/packages/adapter-onebot/src/utils.ts +++ b/packages/adapter-onebot/src/utils.ts @@ -1,6 +1,7 @@ import { CQBot } from './bot' import { Adapter, Session } from 'koishi-core' import { Logger, camelCase, renameProperty, paramCase, segment } from 'koishi-utils' +import * as qface from 'qface' import * as Koishi from 'koishi-core' import * as OneBot from './types' @@ -42,9 +43,8 @@ export function adaptMessage(message: OneBot.Message): Koishi.MessageInfo { mention.everyone = true return segment('at', { type: 'all' }) }, - reply(data) { - return segment('quote', data) - }, + face: ({ id }) => segment('face', { id, url: qface.getUrl(id) }), + reply: (data) => segment('quote', data), }), } } diff --git a/packages/plugin-chat/client/utils/message.vue b/packages/plugin-chat/client/utils/message.vue index de70ba6005..fb81792ae2 100644 --- a/packages/plugin-chat/client/utils/message.vue +++ b/packages/plugin-chat/client/utils/message.vue @@ -3,6 +3,7 @@ @@ -20,7 +21,6 @@ defineProps<{ }>() const segmentTypes = { - face: '表情', record: '语音', video: '短视频', image: '图片', @@ -50,6 +50,11 @@ const segmentTypes = { max-height: 320px; max-width: 100%; } + + img.face { + height: 1.25rem; + vertical-align: middle; + } }