mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
refactor
This commit is contained in:
parent
183eab2cf4
commit
c71885a29e
@ -1,3 +1,5 @@
|
|||||||
|
import ffmpeg from 'fluent-ffmpeg'
|
||||||
|
import faceConfig from './helper/face_config.json'
|
||||||
import {
|
import {
|
||||||
AtType,
|
AtType,
|
||||||
ElementType,
|
ElementType,
|
||||||
@ -13,22 +15,16 @@ import {
|
|||||||
SendTextElement,
|
SendTextElement,
|
||||||
SendVideoElement,
|
SendVideoElement,
|
||||||
} from './types'
|
} from './types'
|
||||||
import { promises as fs } from 'node:fs'
|
import { stat, writeFile, copyFile, unlink } from 'node:fs/promises'
|
||||||
import ffmpeg from 'fluent-ffmpeg'
|
|
||||||
import { calculateFileMD5, isGIF } from '../common/utils/file'
|
import { calculateFileMD5, isGIF } from '../common/utils/file'
|
||||||
import { defaultVideoThumb, getVideoInfo } from '../common/utils/video'
|
import { defaultVideoThumb, getVideoInfo } from '../common/utils/video'
|
||||||
import { encodeSilk } from '../common/utils/audio'
|
import { encodeSilk } from '../common/utils/audio'
|
||||||
import faceConfig from './helper/face_config.json'
|
|
||||||
import { Context } from 'cordis'
|
import { Context } from 'cordis'
|
||||||
import { isNullable } from 'cosmokit'
|
import { isNullable } from 'cosmokit'
|
||||||
|
|
||||||
export const mFaceCache = new Map<string, string>() // emojiId -> faceName
|
export const mFaceCache = new Map<string, string>() // emojiId -> faceName
|
||||||
|
|
||||||
export namespace SendMsgElementConstructor {
|
export namespace SendElementEntities {
|
||||||
export function poke(groupCode: string, uin: string) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
export function text(content: string): SendTextElement {
|
export function text(content: string): SendTextElement {
|
||||||
return {
|
return {
|
||||||
elementType: ElementType.TEXT,
|
elementType: ElementType.TEXT,
|
||||||
@ -123,7 +119,7 @@ export namespace SendMsgElementConstructor {
|
|||||||
|
|
||||||
export async function video(ctx: Context, filePath: string, fileName: string = '', diyThumbPath: string = ''): Promise<SendVideoElement> {
|
export async function video(ctx: Context, filePath: string, fileName: string = '', diyThumbPath: string = ''): Promise<SendVideoElement> {
|
||||||
try {
|
try {
|
||||||
await fs.stat(filePath)
|
await stat(filePath)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw `文件${filePath}异常,不存在`
|
throw `文件${filePath}异常,不存在`
|
||||||
}
|
}
|
||||||
@ -165,7 +161,7 @@ export namespace SendMsgElementConstructor {
|
|||||||
function useDefaultThumb() {
|
function useDefaultThumb() {
|
||||||
if (completed) return
|
if (completed) return
|
||||||
ctx.logger.info('获取视频封面失败,使用默认封面')
|
ctx.logger.info('获取视频封面失败,使用默认封面')
|
||||||
fs.writeFile(thumbPath, defaultVideoThumb)
|
writeFile(thumbPath, defaultVideoThumb)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
resolve(thumbPath)
|
resolve(thumbPath)
|
||||||
})
|
})
|
||||||
@ -176,7 +172,7 @@ export namespace SendMsgElementConstructor {
|
|||||||
ffmpeg(filePath)
|
ffmpeg(filePath)
|
||||||
.on('error', (err) => {
|
.on('error', (err) => {
|
||||||
if (diyThumbPath) {
|
if (diyThumbPath) {
|
||||||
fs.copyFile(diyThumbPath, thumbPath)
|
copyFile(diyThumbPath, thumbPath)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
completed = true
|
completed = true
|
||||||
resolve(thumbPath)
|
resolve(thumbPath)
|
||||||
@ -201,7 +197,7 @@ export namespace SendMsgElementConstructor {
|
|||||||
let thumbPath = new Map()
|
let thumbPath = new Map()
|
||||||
const _thumbPath = await createThumb
|
const _thumbPath = await createThumb
|
||||||
ctx.logger.info('生成视频缩略图', _thumbPath)
|
ctx.logger.info('生成视频缩略图', _thumbPath)
|
||||||
const thumbSize = (await fs.stat(_thumbPath)).size
|
const thumbSize = (await stat(_thumbPath)).size
|
||||||
// log("生成缩略图", _thumbPath)
|
// log("生成缩略图", _thumbPath)
|
||||||
thumbPath.set(0, _thumbPath)
|
thumbPath.set(0, _thumbPath)
|
||||||
const thumbMd5 = await calculateFileMD5(_thumbPath)
|
const thumbMd5 = await calculateFileMD5(_thumbPath)
|
||||||
@ -246,7 +242,7 @@ export namespace SendMsgElementConstructor {
|
|||||||
throw '文件异常,大小为0'
|
throw '文件异常,大小为0'
|
||||||
}
|
}
|
||||||
if (converted) {
|
if (converted) {
|
||||||
fs.unlink(silkPath).then()
|
unlink(silkPath)
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
elementType: ElementType.PTT,
|
elementType: ElementType.PTT,
|
@ -1,6 +1,6 @@
|
|||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { OB11ForwardMessage, OB11Message, OB11MessageData } from '../../types'
|
import { OB11ForwardMessage, OB11Message, OB11MessageData } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { MessageUnique } from '@/common/utils/messageUnique'
|
import { MessageUnique } from '@/common/utils/messageUnique'
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ export class GoCQHTTGetForwardMsgAction extends BaseAction<Payload, Response> {
|
|||||||
const msgList = data.msgList
|
const msgList = data.msgList
|
||||||
const messages = await Promise.all(
|
const messages = await Promise.all(
|
||||||
msgList.map(async (msg) => {
|
msgList.map(async (msg) => {
|
||||||
const resMsg = await OB11Constructor.message(this.ctx, msg)
|
const resMsg = await OB11Entities.message(this.ctx, msg)
|
||||||
resMsg.message_id = MessageUnique.createMsg({
|
resMsg.message_id = MessageUnique.createMsg({
|
||||||
chatType: msg.chatType,
|
chatType: msg.chatType,
|
||||||
peerUid: msg.peerUid,
|
peerUid: msg.peerUid,
|
||||||
|
@ -2,7 +2,7 @@ import BaseAction from '../BaseAction'
|
|||||||
import { OB11Message } from '../../types'
|
import { OB11Message } from '../../types'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { ChatType } from '@/ntqqapi/types'
|
import { ChatType } from '@/ntqqapi/types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { RawMessage } from '@/ntqqapi/types'
|
import { RawMessage } from '@/ntqqapi/types'
|
||||||
import { MessageUnique } from '@/common/utils/messageUnique'
|
import { MessageUnique } from '@/common/utils/messageUnique'
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ export default class GoCQHTTPGetGroupMsgHistory extends BaseAction<Payload, Resp
|
|||||||
msg.msgShortId = MessageUnique.createMsg({ chatType: msg.chatType, peerUid: msg.peerUid }, msg.msgId)
|
msg.msgShortId = MessageUnique.createMsg({ chatType: msg.chatType, peerUid: msg.peerUid }, msg.msgId)
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
const ob11MsgList = await Promise.all(msgList.map((msg) => OB11Constructor.message(this.ctx, msg)))
|
const ob11MsgList = await Promise.all(msgList.map((msg) => OB11Entities.message(this.ctx, msg)))
|
||||||
return { messages: ob11MsgList }
|
return { messages: ob11MsgList }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { OB11User } from '../../types'
|
import { OB11User } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { getBuildVersion } from '@/common/utils'
|
import { getBuildVersion } from '@/common/utils'
|
||||||
import { OB11UserSex } from '../../types'
|
import { OB11UserSex } from '../../types'
|
||||||
@ -33,7 +33,7 @@ export default class GoCQHTTPGetStrangerInfo extends BaseAction<Payload, OB11Use
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
const data = { ...extendData, ...(await this.ctx.ntUserApi.getUserDetailInfo(uid)) }
|
const data = { ...extendData, ...(await this.ctx.ntUserApi.getUserDetailInfo(uid)) }
|
||||||
return OB11Constructor.stranger(data)
|
return OB11Entities.stranger(data)
|
||||||
} else {
|
} else {
|
||||||
const user_id = payload.user_id.toString()
|
const user_id = payload.user_id.toString()
|
||||||
const extendData = await this.ctx.ntUserApi.getUserDetailInfoByUinV2(user_id)
|
const extendData = await this.ctx.ntUserApi.getUserDetailInfoByUinV2(user_id)
|
||||||
@ -52,7 +52,7 @@ export default class GoCQHTTPGetStrangerInfo extends BaseAction<Payload, OB11Use
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
const data = { ...extendData, ...(await this.ctx.ntUserApi.getUserDetailInfo(uid)) }
|
const data = { ...extendData, ...(await this.ctx.ntUserApi.getUserDetailInfo(uid)) }
|
||||||
return OB11Constructor.stranger(data)
|
return OB11Entities.stranger(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import fs from 'node:fs'
|
import fs from 'node:fs'
|
||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { SendMsgElementConstructor } from '@/ntqqapi/constructor'
|
import { SendElementEntities } from '@/ntqqapi/entities'
|
||||||
import { ChatType, SendFileElement } from '@/ntqqapi/types'
|
import { ChatType, SendFileElement } from '@/ntqqapi/types'
|
||||||
import { uri2local } from '@/common/utils'
|
import { uri2local } from '@/common/utils'
|
||||||
import { Peer } from '@/ntqqapi/types'
|
import { Peer } from '@/ntqqapi/types'
|
||||||
@ -28,7 +28,7 @@ export class GoCQHTTPUploadGroupFile extends BaseAction<Payload, null> {
|
|||||||
if (!downloadResult.success) {
|
if (!downloadResult.success) {
|
||||||
throw new Error(downloadResult.errMsg)
|
throw new Error(downloadResult.errMsg)
|
||||||
}
|
}
|
||||||
const sendFileEle = await SendMsgElementConstructor.file(this.ctx, downloadResult.path, payload.name, payload.folder_id)
|
const sendFileEle = await SendElementEntities.file(this.ctx, downloadResult.path, payload.name, payload.folder_id)
|
||||||
await sendMsg(this.ctx, {
|
await sendMsg(this.ctx, {
|
||||||
chatType: ChatType.group,
|
chatType: ChatType.group,
|
||||||
peerUid: payload.group_id?.toString()!,
|
peerUid: payload.group_id?.toString()!,
|
||||||
@ -62,7 +62,7 @@ export class GoCQHTTPUploadPrivateFile extends BaseAction<Payload, null> {
|
|||||||
if (!downloadResult.success) {
|
if (!downloadResult.success) {
|
||||||
throw new Error(downloadResult.errMsg)
|
throw new Error(downloadResult.errMsg)
|
||||||
}
|
}
|
||||||
const sendFileEle: SendFileElement = await SendMsgElementConstructor.file(this.ctx, downloadResult.path, payload.name)
|
const sendFileEle: SendFileElement = await SendElementEntities.file(this.ctx, downloadResult.path, payload.name)
|
||||||
await sendMsg(this.ctx, peer, [sendFileEle], [], true)
|
await sendMsg(this.ctx, peer, [sendFileEle], [], true)
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { OB11Group } from '../../types'
|
import { OB11Group } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ class GetGroupInfo extends BaseAction<Payload, OB11Group> {
|
|||||||
protected async _handle(payload: Payload) {
|
protected async _handle(payload: Payload) {
|
||||||
const group = (await this.ctx.ntGroupApi.getGroups()).find(e => e.groupCode == payload.group_id.toString())
|
const group = (await this.ctx.ntGroupApi.getGroups()).find(e => e.groupCode == payload.group_id.toString())
|
||||||
if (group) {
|
if (group) {
|
||||||
return OB11Constructor.group(group)
|
return OB11Entities.group(group)
|
||||||
} else {
|
} else {
|
||||||
throw `群${payload.group_id}不存在`
|
throw `群${payload.group_id}不存在`
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { OB11Group } from '../../types'
|
import { OB11Group } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class GetGroupList extends BaseAction<Payload, OB11Group[]> {
|
|||||||
|
|
||||||
protected async _handle(payload: Payload) {
|
protected async _handle(payload: Payload) {
|
||||||
const groupList = await this.ctx.ntGroupApi.getGroups(payload?.no_cache === true || payload?.no_cache === 'true')
|
const groupList = await this.ctx.ntGroupApi.getGroups(payload?.no_cache === true || payload?.no_cache === 'true')
|
||||||
return OB11Constructor.groups(groupList)
|
return OB11Entities.groups(groupList)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { OB11GroupMember } from '../../types'
|
import { OB11GroupMember } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { selfInfo } from '@/common/globalVars'
|
import { selfInfo } from '@/common/globalVars'
|
||||||
import { isNullable } from 'cosmokit'
|
import { isNullable } from 'cosmokit'
|
||||||
@ -22,7 +22,7 @@ class GetGroupMemberInfo extends BaseAction<Payload, OB11GroupMember> {
|
|||||||
//log('群成员详细信息结果', info)
|
//log('群成员详细信息结果', info)
|
||||||
Object.assign(member, info)
|
Object.assign(member, info)
|
||||||
}
|
}
|
||||||
const ret = OB11Constructor.groupMember(payload.group_id.toString(), member)
|
const ret = OB11Entities.groupMember(payload.group_id.toString(), member)
|
||||||
const self = await this.ctx.ntGroupApi.getGroupMember(payload.group_id.toString(), selfInfo.uid)
|
const self = await this.ctx.ntGroupApi.getGroupMember(payload.group_id.toString(), selfInfo.uid)
|
||||||
if (self?.role === 3 || self?.role === 4) {
|
if (self?.role === 3 || self?.role === 4) {
|
||||||
const webGroupMembers = await this.ctx.ntWebApi.getGroupMembers(payload.group_id.toString())
|
const webGroupMembers = await this.ctx.ntWebApi.getGroupMembers(payload.group_id.toString())
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { OB11GroupMember } from '../../types'
|
import { OB11GroupMember } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { selfInfo } from '@/common/globalVars'
|
import { selfInfo } from '@/common/globalVars'
|
||||||
@ -17,7 +17,7 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
|
|||||||
const groupMembersArr = Array.from(groupMembers.values())
|
const groupMembersArr = Array.from(groupMembers.values())
|
||||||
|
|
||||||
let _groupMembers = groupMembersArr.map(item => {
|
let _groupMembers = groupMembersArr.map(item => {
|
||||||
return OB11Constructor.groupMember(payload.group_id.toString(), item)
|
return OB11Entities.groupMember(payload.group_id.toString(), item)
|
||||||
})
|
})
|
||||||
|
|
||||||
const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>()
|
const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { OB11Message } from '../../types'
|
import { OB11Message } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { MessageUnique } from '@/common/utils/messageUnique'
|
import { MessageUnique } from '@/common/utils/messageUnique'
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ class GetMsg extends BaseAction<PayloadType, OB11Message> {
|
|||||||
chatType: msgIdWithPeer.Peer.chatType
|
chatType: msgIdWithPeer.Peer.chatType
|
||||||
}
|
}
|
||||||
const msg = this.adapter.getMsgCache(msgIdWithPeer.MsgId) ?? (await this.ctx.ntMsgApi.getMsgsByMsgId(peer, [msgIdWithPeer.MsgId])).msgList[0]
|
const msg = this.adapter.getMsgCache(msgIdWithPeer.MsgId) ?? (await this.ctx.ntMsgApi.getMsgsByMsgId(peer, [msgIdWithPeer.MsgId])).msgList[0]
|
||||||
const retMsg = await OB11Constructor.message(this.ctx, msg)
|
const retMsg = await OB11Entities.message(this.ctx, msg)
|
||||||
retMsg.message_id = MessageUnique.createMsg(peer, msg.msgId)!
|
retMsg.message_id = MessageUnique.createMsg(peer, msg.msgId)!
|
||||||
retMsg.message_seq = retMsg.message_id
|
retMsg.message_seq = retMsg.message_id
|
||||||
retMsg.real_id = retMsg.message_id
|
retMsg.real_id = retMsg.message_id
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import BaseAction from '../BaseAction'
|
import BaseAction from '../BaseAction'
|
||||||
import { OB11User } from '../../types'
|
import { OB11User } from '../../types'
|
||||||
import { OB11Constructor } from '../../constructor'
|
import { OB11Entities } from '../../entities'
|
||||||
import { ActionName } from '../types'
|
import { ActionName } from '../types'
|
||||||
import { getBuildVersion } from '@/common/utils'
|
import { getBuildVersion } from '@/common/utils'
|
||||||
|
|
||||||
@ -14,9 +14,9 @@ export class GetFriendList extends BaseAction<Payload, OB11User[]> {
|
|||||||
protected async _handle(payload: Payload) {
|
protected async _handle(payload: Payload) {
|
||||||
const refresh = payload?.no_cache === true || payload?.no_cache === 'true'
|
const refresh = payload?.no_cache === true || payload?.no_cache === 'true'
|
||||||
if (getBuildVersion() >= 26702) {
|
if (getBuildVersion() >= 26702) {
|
||||||
return OB11Constructor.friendsV2(await this.ctx.ntFriendApi.getBuddyV2(refresh))
|
return OB11Entities.friendsV2(await this.ctx.ntFriendApi.getBuddyV2(refresh))
|
||||||
}
|
}
|
||||||
return OB11Constructor.friends(await this.ctx.ntFriendApi.getFriends(refresh))
|
return OB11Entities.friends(await this.ctx.ntFriendApi.getFriends(refresh))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ export class GetFriendWithCategory extends BaseAction<void, any> {
|
|||||||
protected async _handle(payload: void) {
|
protected async _handle(payload: void) {
|
||||||
if (getBuildVersion() >= 26702) {
|
if (getBuildVersion() >= 26702) {
|
||||||
//全新逻辑
|
//全新逻辑
|
||||||
return OB11Constructor.friendsV2(await this.ctx.ntFriendApi.getBuddyV2ExWithCate(true))
|
return OB11Entities.friendsV2(await this.ctx.ntFriendApi.getBuddyV2ExWithCate(true))
|
||||||
} else {
|
} else {
|
||||||
throw new Error('this ntqq version not support, must be 26702 or later')
|
throw new Error('this ntqq version not support, must be 26702 or later')
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Service, Context } from 'cordis'
|
import { Service, Context } from 'cordis'
|
||||||
import { OB11Constructor } from './constructor'
|
import { OB11Entities } from './entities'
|
||||||
import {
|
import {
|
||||||
GroupNotify,
|
GroupNotify,
|
||||||
GroupNotifyTypes,
|
GroupNotifyTypes,
|
||||||
@ -203,7 +203,7 @@ class OneBot11Adapter extends Service {
|
|||||||
message.msgShortId = MessageUnique.createMsg(peer, message.msgId)
|
message.msgShortId = MessageUnique.createMsg(peer, message.msgId)
|
||||||
this.addMsgCache(message)
|
this.addMsgCache(message)
|
||||||
|
|
||||||
OB11Constructor.message(this.ctx, message)
|
OB11Entities.message(this.ctx, message)
|
||||||
.then((msg) => {
|
.then((msg) => {
|
||||||
if (!this.config.debug && msg.message.length === 0) {
|
if (!this.config.debug && msg.message.length === 0) {
|
||||||
return
|
return
|
||||||
@ -219,13 +219,13 @@ class OneBot11Adapter extends Service {
|
|||||||
})
|
})
|
||||||
.catch((e) => this.ctx.logger.error('constructMessage error: ', e.stack.toString()))
|
.catch((e) => this.ctx.logger.error('constructMessage error: ', e.stack.toString()))
|
||||||
|
|
||||||
OB11Constructor.GroupEvent(this.ctx, message).then((groupEvent) => {
|
OB11Entities.groupEvent(this.ctx, message).then((groupEvent) => {
|
||||||
if (groupEvent) {
|
if (groupEvent) {
|
||||||
this.dispatch(groupEvent)
|
this.dispatch(groupEvent)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
OB11Constructor.PrivateEvent(this.ctx, message).then((privateEvent) => {
|
OB11Entities.privateEvent(this.ctx, message).then((privateEvent) => {
|
||||||
if (privateEvent) {
|
if (privateEvent) {
|
||||||
this.dispatch(privateEvent)
|
this.dispatch(privateEvent)
|
||||||
}
|
}
|
||||||
@ -240,7 +240,7 @@ class OneBot11Adapter extends Service {
|
|||||||
if (!oriMessageId) {
|
if (!oriMessageId) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
OB11Constructor.RecallEvent(this.ctx, message, oriMessageId).then((recallEvent) => {
|
OB11Entities.recallEvent(this.ctx, message, oriMessageId).then((recallEvent) => {
|
||||||
if (recallEvent) {
|
if (recallEvent) {
|
||||||
this.dispatch(recallEvent)
|
this.dispatch(recallEvent)
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ import { OB11GroupTitleEvent } from './event/notice/OB11GroupTitleEvent'
|
|||||||
import { OB11GroupCardEvent } from './event/notice/OB11GroupCardEvent'
|
import { OB11GroupCardEvent } from './event/notice/OB11GroupCardEvent'
|
||||||
import { OB11GroupDecreaseEvent } from './event/notice/OB11GroupDecreaseEvent'
|
import { OB11GroupDecreaseEvent } from './event/notice/OB11GroupDecreaseEvent'
|
||||||
import { OB11GroupMsgEmojiLikeEvent } from './event/notice/OB11MsgEmojiLikeEvent'
|
import { OB11GroupMsgEmojiLikeEvent } from './event/notice/OB11MsgEmojiLikeEvent'
|
||||||
import { mFaceCache } from '../ntqqapi/constructor'
|
import { mFaceCache } from '../ntqqapi/entities'
|
||||||
import { OB11FriendAddNoticeEvent } from './event/notice/OB11FriendAddNoticeEvent'
|
import { OB11FriendAddNoticeEvent } from './event/notice/OB11FriendAddNoticeEvent'
|
||||||
import { OB11FriendRecallNoticeEvent } from './event/notice/OB11FriendRecallNoticeEvent'
|
import { OB11FriendRecallNoticeEvent } from './event/notice/OB11FriendRecallNoticeEvent'
|
||||||
import { OB11GroupRecallNoticeEvent } from './event/notice/OB11GroupRecallNoticeEvent'
|
import { OB11GroupRecallNoticeEvent } from './event/notice/OB11GroupRecallNoticeEvent'
|
||||||
@ -48,7 +48,7 @@ import { omit, isNullable } from 'cosmokit'
|
|||||||
import { Context } from 'cordis'
|
import { Context } from 'cordis'
|
||||||
import { selfInfo } from '@/common/globalVars'
|
import { selfInfo } from '@/common/globalVars'
|
||||||
|
|
||||||
export namespace OB11Constructor {
|
export namespace OB11Entities {
|
||||||
export async function message(ctx: Context, msg: RawMessage): Promise<OB11Message> {
|
export async function message(ctx: Context, msg: RawMessage): Promise<OB11Message> {
|
||||||
let config = getConfigUtil().getConfig()
|
let config = getConfigUtil().getConfig()
|
||||||
const {
|
const {
|
||||||
@ -319,7 +319,7 @@ export namespace OB11Constructor {
|
|||||||
return resMsg
|
return resMsg
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function PrivateEvent(ctx: Context, msg: RawMessage): Promise<OB11BaseNoticeEvent | void> {
|
export async function privateEvent(ctx: Context, msg: RawMessage): Promise<OB11BaseNoticeEvent | void> {
|
||||||
if (msg.chatType !== ChatType.friend) {
|
if (msg.chatType !== ChatType.friend) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -352,7 +352,7 @@ export namespace OB11Constructor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function GroupEvent(ctx: Context, msg: RawMessage): Promise<OB11GroupNoticeEvent | void> {
|
export async function groupEvent(ctx: Context, msg: RawMessage): Promise<OB11GroupNoticeEvent | void> {
|
||||||
if (msg.chatType !== ChatType.group) {
|
if (msg.chatType !== ChatType.group) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -607,7 +607,7 @@ export namespace OB11Constructor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function RecallEvent(
|
export async function recallEvent(
|
||||||
ctx: Context,
|
ctx: Context,
|
||||||
msg: RawMessage,
|
msg: RawMessage,
|
||||||
shortId: number
|
shortId: number
|
||||||
@ -638,13 +638,13 @@ export namespace OB11Constructor {
|
|||||||
user_id: parseInt(friend.uin),
|
user_id: parseInt(friend.uin),
|
||||||
nickname: friend.nick,
|
nickname: friend.nick,
|
||||||
remark: friend.remark,
|
remark: friend.remark,
|
||||||
sex: OB11Constructor.sex(friend.sex!),
|
sex: sex(friend.sex!),
|
||||||
level: (friend.qqLevel && calcQQLevel(friend.qqLevel)) || 0,
|
level: (friend.qqLevel && calcQQLevel(friend.qqLevel)) || 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function friends(friends: User[]): OB11User[] {
|
export function friends(friends: User[]): OB11User[] {
|
||||||
return friends.map(OB11Constructor.friend)
|
return friends.map(friend)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function friendsV2(friends: FriendV2[]): OB11User[] {
|
export function friendsV2(friends: FriendV2[]): OB11User[] {
|
||||||
@ -689,7 +689,7 @@ export namespace OB11Constructor {
|
|||||||
user_id: parseInt(member.uin),
|
user_id: parseInt(member.uin),
|
||||||
nickname: member.nick,
|
nickname: member.nick,
|
||||||
card: member.cardName,
|
card: member.cardName,
|
||||||
sex: OB11Constructor.sex(member.sex!),
|
sex: sex(member.sex!),
|
||||||
age: 0,
|
age: 0,
|
||||||
area: '',
|
area: '',
|
||||||
level: '0',
|
level: '0',
|
||||||
@ -701,7 +701,7 @@ export namespace OB11Constructor {
|
|||||||
card_changeable: true,
|
card_changeable: true,
|
||||||
is_robot: member.isRobot,
|
is_robot: member.isRobot,
|
||||||
shut_up_timestamp: member.shutUpTime,
|
shut_up_timestamp: member.shutUpTime,
|
||||||
role: OB11Constructor.groupMemberRole(member.role),
|
role: groupMemberRole(member.role),
|
||||||
title: member.memberSpecialTitle || '',
|
title: member.memberSpecialTitle || '',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -711,7 +711,7 @@ export namespace OB11Constructor {
|
|||||||
...user,
|
...user,
|
||||||
user_id: parseInt(user.uin),
|
user_id: parseInt(user.uin),
|
||||||
nickname: user.nick,
|
nickname: user.nick,
|
||||||
sex: OB11Constructor.sex(user.sex!),
|
sex: sex(user.sex!),
|
||||||
age: 0,
|
age: 0,
|
||||||
qid: user.qid,
|
qid: user.qid,
|
||||||
login_days: 0,
|
login_days: 0,
|
||||||
@ -719,10 +719,6 @@ export namespace OB11Constructor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function groupMembers(group: Group): OB11GroupMember[] {
|
|
||||||
return group.members.map((m) => OB11Constructor.groupMember(group.groupCode, m))
|
|
||||||
}
|
|
||||||
|
|
||||||
export function group(group: Group): OB11Group {
|
export function group(group: Group): OB11Group {
|
||||||
return {
|
return {
|
||||||
group_id: parseInt(group.groupCode),
|
group_id: parseInt(group.groupCode),
|
||||||
@ -733,6 +729,6 @@ export namespace OB11Constructor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function groups(groups: Group[]): OB11Group[] {
|
export function groups(groups: Group[]): OB11Group[] {
|
||||||
return groups.map(OB11Constructor.group)
|
return groups.map(group)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,7 +15,7 @@ import {
|
|||||||
} from '../types'
|
} from '../types'
|
||||||
import { decodeCQCode } from '../cqcode'
|
import { decodeCQCode } from '../cqcode'
|
||||||
import { Peer } from '@/ntqqapi/types/msg'
|
import { Peer } from '@/ntqqapi/types/msg'
|
||||||
import { SendMsgElementConstructor } from '@/ntqqapi/constructor'
|
import { SendElementEntities } from '@/ntqqapi/entities'
|
||||||
import { MessageUnique } from '@/common/utils/messageUnique'
|
import { MessageUnique } from '@/common/utils/messageUnique'
|
||||||
import { selfInfo } from '@/common/globalVars'
|
import { selfInfo } from '@/common/globalVars'
|
||||||
import { uri2local } from '@/common/utils'
|
import { uri2local } from '@/common/utils'
|
||||||
@ -37,7 +37,7 @@ export async function createSendElements(
|
|||||||
case OB11MessageDataType.text: {
|
case OB11MessageDataType.text: {
|
||||||
const text = sendMsg.data?.text
|
const text = sendMsg.data?.text
|
||||||
if (text) {
|
if (text) {
|
||||||
sendElements.push(SendMsgElementConstructor.text(sendMsg.data!.text))
|
sendElements.push(SendElementEntities.text(sendMsg.data!.text))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@ -63,7 +63,7 @@ export async function createSendElements(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isAdmin && remainAtAllCount > 0) {
|
if (isAdmin && remainAtAllCount > 0) {
|
||||||
sendElements.push(SendMsgElementConstructor.at(atQQ, atQQ, AtType.atAll, '@全体成员'))
|
sendElements.push(SendElementEntities.at(atQQ, atQQ, AtType.atAll, '@全体成员'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (peer.chatType === ChatType.group) {
|
else if (peer.chatType === ChatType.group) {
|
||||||
@ -71,14 +71,14 @@ export async function createSendElements(
|
|||||||
if (atMember) {
|
if (atMember) {
|
||||||
const display = `@${atMember.cardName || atMember.nick}`
|
const display = `@${atMember.cardName || atMember.nick}`
|
||||||
sendElements.push(
|
sendElements.push(
|
||||||
SendMsgElementConstructor.at(atQQ, atMember.uid, AtType.atUser, display),
|
SendElementEntities.at(atQQ, atMember.uid, AtType.atUser, display),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
const atNmae = sendMsg.data?.name
|
const atNmae = sendMsg.data?.name
|
||||||
const uid = await ctx.ntUserApi.getUidByUin(atQQ) || ''
|
const uid = await ctx.ntUserApi.getUidByUin(atQQ) || ''
|
||||||
const display = atNmae ? `@${atNmae}` : ''
|
const display = atNmae ? `@${atNmae}` : ''
|
||||||
sendElements.push(
|
sendElements.push(
|
||||||
SendMsgElementConstructor.at(atQQ, uid, AtType.atUser, display),
|
SendElementEntities.at(atQQ, uid, AtType.atUser, display),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ export async function createSendElements(
|
|||||||
)).msgList[0]
|
)).msgList[0]
|
||||||
if (replyMsg) {
|
if (replyMsg) {
|
||||||
sendElements.push(
|
sendElements.push(
|
||||||
SendMsgElementConstructor.reply(
|
SendElementEntities.reply(
|
||||||
replyMsg.msgSeq,
|
replyMsg.msgSeq,
|
||||||
replyMsg.msgId,
|
replyMsg.msgId,
|
||||||
replyMsg.senderUin!,
|
replyMsg.senderUin!,
|
||||||
@ -112,13 +112,13 @@ export async function createSendElements(
|
|||||||
case OB11MessageDataType.face: {
|
case OB11MessageDataType.face: {
|
||||||
const faceId = sendMsg.data?.id
|
const faceId = sendMsg.data?.id
|
||||||
if (faceId) {
|
if (faceId) {
|
||||||
sendElements.push(SendMsgElementConstructor.face(parseInt(faceId)))
|
sendElements.push(SendElementEntities.face(parseInt(faceId)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.mface: {
|
case OB11MessageDataType.mface: {
|
||||||
sendElements.push(
|
sendElements.push(
|
||||||
SendMsgElementConstructor.mface(
|
SendElementEntities.mface(
|
||||||
+sendMsg.data.emoji_package_id,
|
+sendMsg.data.emoji_package_id,
|
||||||
sendMsg.data.emoji_id,
|
sendMsg.data.emoji_id,
|
||||||
sendMsg.data.key,
|
sendMsg.data.key,
|
||||||
@ -128,7 +128,7 @@ export async function createSendElements(
|
|||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.image: {
|
case OB11MessageDataType.image: {
|
||||||
const res = await SendMsgElementConstructor.pic(
|
const res = await SendElementEntities.pic(
|
||||||
ctx,
|
ctx,
|
||||||
(await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })).path,
|
(await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })).path,
|
||||||
sendMsg.data.summary || '',
|
sendMsg.data.summary || '',
|
||||||
@ -140,7 +140,7 @@ export async function createSendElements(
|
|||||||
break
|
break
|
||||||
case OB11MessageDataType.file: {
|
case OB11MessageDataType.file: {
|
||||||
const { path, fileName } = await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })
|
const { path, fileName } = await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })
|
||||||
sendElements.push(await SendMsgElementConstructor.file(ctx, path, fileName))
|
sendElements.push(await SendElementEntities.file(ctx, path, fileName))
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.video: {
|
case OB11MessageDataType.video: {
|
||||||
@ -150,18 +150,18 @@ export async function createSendElements(
|
|||||||
const uri2LocalRes = await uri2local(thumb)
|
const uri2LocalRes = await uri2local(thumb)
|
||||||
if (uri2LocalRes.success) thumb = uri2LocalRes.path
|
if (uri2LocalRes.success) thumb = uri2LocalRes.path
|
||||||
}
|
}
|
||||||
const res = await SendMsgElementConstructor.video(ctx, path, fileName, thumb)
|
const res = await SendElementEntities.video(ctx, path, fileName, thumb)
|
||||||
deleteAfterSentFiles.push(res.videoElement.filePath)
|
deleteAfterSentFiles.push(res.videoElement.filePath)
|
||||||
sendElements.push(res)
|
sendElements.push(res)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.voice: {
|
case OB11MessageDataType.voice: {
|
||||||
const { path } = await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })
|
const { path } = await handleOb11FileLikeMessage(ctx, sendMsg, { deleteAfterSentFiles })
|
||||||
sendElements.push(await SendMsgElementConstructor.ptt(ctx, path))
|
sendElements.push(await SendElementEntities.ptt(ctx, path))
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.json: {
|
case OB11MessageDataType.json: {
|
||||||
sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data))
|
sendElements.push(SendElementEntities.ark(sendMsg.data.data))
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.poke: {
|
case OB11MessageDataType.poke: {
|
||||||
@ -170,12 +170,12 @@ export async function createSendElements(
|
|||||||
break
|
break
|
||||||
case OB11MessageDataType.dice: {
|
case OB11MessageDataType.dice: {
|
||||||
const resultId = sendMsg.data?.result
|
const resultId = sendMsg.data?.result
|
||||||
sendElements.push(SendMsgElementConstructor.dice(resultId))
|
sendElements.push(SendElementEntities.dice(resultId))
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case OB11MessageDataType.RPS: {
|
case OB11MessageDataType.RPS: {
|
||||||
const resultId = sendMsg.data?.result
|
const resultId = sendMsg.data?.result
|
||||||
sendElements.push(SendMsgElementConstructor.rps(resultId))
|
sendElements.push(SendElementEntities.rps(resultId))
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user