From 983d2462d405d0c2b76ff8608b81946ae95fd032 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Sat, 23 Mar 2024 00:00:43 +0800 Subject: [PATCH] refactor: action folder feat: group card event feat: group title event --- src/common/config.ts | 2 +- src/ntqqapi/api/user.ts | 47 ++++++++++++++ src/ntqqapi/api/webapi.ts | 7 +-- src/ntqqapi/hook.ts | 48 +++++++++----- src/ntqqapi/ntcall.ts | 55 ---------------- src/ntqqapi/types/msg.ts | 4 ++ src/onebot11/action/BaseAction.ts | 2 +- .../action/{utils.ts => OB11Response.ts} | 0 src/onebot11/action/{ => file}/GetFile.ts | 28 ++++++--- src/onebot11/action/{ => file}/GetImage.ts | 2 +- src/onebot11/action/{ => file}/GetRecord.ts | 2 +- .../action/go-cqhttp/SendForwardMsg.ts | 2 +- .../action/{ => group}/GetGroupInfo.ts | 10 +-- .../action/{ => group}/GetGroupList.ts | 10 +-- .../action/{ => group}/GetGroupMemberInfo.ts | 16 ++--- .../action/{ => group}/GetGroupMemberList.ts | 12 ++-- .../action/{ => group}/GetGuildList.ts | 4 +- .../action/{ => group}/SendGroupMsg.ts | 8 +-- .../action/{ => group}/SetGroupAddRequest.ts | 8 +-- .../action/{ => group}/SetGroupAdmin.ts | 10 +-- .../action/{ => group}/SetGroupBan.ts | 8 +-- .../action/{ => group}/SetGroupCard.ts | 8 +-- .../action/{ => group}/SetGroupKick.ts | 8 +-- .../action/{ => group}/SetGroupLeave.ts | 8 +-- .../action/{ => group}/SetGroupName.ts | 6 +- .../action/{ => group}/SetGroupWholeBan.ts | 6 +- src/onebot11/action/index.ts | 62 +++++++++---------- src/onebot11/action/{ => msg}/DeleteMsg.ts | 8 +-- src/onebot11/action/{ => msg}/GetMsg.ts | 10 +-- .../action/{ => msg}/MarkMsgAsRead.ts | 4 +- src/onebot11/action/{ => msg}/SendMsg.ts | 28 ++++----- .../action/{ => msg}/SendPrivateMsg.ts | 4 +- .../action/{ => system}/CanSendImage.ts | 2 +- .../action/{ => system}/CanSendRecord.ts | 4 +- .../action/{ => system}/CleanCache.ts | 10 +-- .../action/{ => system}/GetLoginInfo.ts | 10 +-- src/onebot11/action/{ => system}/GetStatus.ts | 8 +-- .../action/{ => system}/GetVersionInfo.ts | 8 +-- .../action/{ => user}/GetFriendList.ts | 10 +-- src/onebot11/action/{ => user}/SendLike.ts | 10 +-- .../action/{ => user}/SetFriendAddRequest.ts | 6 +- src/onebot11/constructor.ts | 43 ++++++++++++- .../event/notice/OB11GroupCardEvent.ts | 16 +++++ .../event/notice/OB11GroupTitleEvent.ts | 15 +++++ src/onebot11/event/notice/OB11PokeEvent.ts | 1 - src/onebot11/server/http.ts | 2 +- src/onebot11/server/ws/ReverseWebsocket.ts | 2 +- src/onebot11/server/ws/WebsocketServer.ts | 2 +- src/onebot11/server/ws/reply.ts | 2 +- 49 files changed, 337 insertions(+), 251 deletions(-) rename src/onebot11/action/{utils.ts => OB11Response.ts} (100%) rename src/onebot11/action/{ => file}/GetFile.ts (77%) rename src/onebot11/action/{ => file}/GetImage.ts (77%) rename src/onebot11/action/{ => file}/GetRecord.ts (92%) rename src/onebot11/action/{ => group}/GetGroupInfo.ts (68%) rename src/onebot11/action/{ => group}/GetGroupList.ts (52%) rename src/onebot11/action/{ => group}/GetGroupMemberInfo.ts (69%) rename src/onebot11/action/{ => group}/GetGroupMemberList.ts (70%) rename src/onebot11/action/{ => group}/GetGuildList.ts (72%) rename src/onebot11/action/{ => group}/SendGroupMsg.ts (62%) rename src/onebot11/action/{ => group}/SetGroupAddRequest.ts (76%) rename src/onebot11/action/{ => group}/SetGroupAdmin.ts (73%) rename src/onebot11/action/{ => group}/SetGroupBan.ts (76%) rename src/onebot11/action/{ => group}/SetGroupCard.ts (74%) rename src/onebot11/action/{ => group}/SetGroupKick.ts (75%) rename src/onebot11/action/{ => group}/SetGroupLeave.ts (70%) rename src/onebot11/action/{ => group}/SetGroupName.ts (72%) rename src/onebot11/action/{ => group}/SetGroupWholeBan.ts (75%) rename src/onebot11/action/{ => msg}/DeleteMsg.ts (70%) rename src/onebot11/action/{ => msg}/GetMsg.ts (77%) rename src/onebot11/action/{ => msg}/MarkMsgAsRead.ts (77%) rename src/onebot11/action/{ => msg}/SendMsg.ts (96%) rename src/onebot11/action/{ => msg}/SendPrivateMsg.ts (75%) rename src/onebot11/action/{ => system}/CanSendImage.ts (83%) rename src/onebot11/action/{ => system}/CanSendRecord.ts (78%) rename src/onebot11/action/{ => system}/CleanCache.ts (94%) rename src/onebot11/action/{ => system}/GetLoginInfo.ts (52%) rename src/onebot11/action/{ => system}/GetStatus.ts (62%) rename src/onebot11/action/{ => system}/GetVersionInfo.ts (66%) rename src/onebot11/action/{ => user}/GetFriendList.ts (52%) rename src/onebot11/action/{ => user}/SendLike.ts (76%) rename src/onebot11/action/{ => user}/SetFriendAddRequest.ts (76%) create mode 100644 src/onebot11/event/notice/OB11GroupCardEvent.ts create mode 100644 src/onebot11/event/notice/OB11GroupTitleEvent.ts diff --git a/src/common/config.ts b/src/common/config.ts index f1613b4..84442bb 100644 --- a/src/common/config.ts +++ b/src/common/config.ts @@ -6,7 +6,7 @@ import path from "node:path"; import {selfInfo} from "./data"; import {DATA_DIR} from "./utils"; -export const HOOK_LOG = false; +export const HOOK_LOG = true; export const ALLOW_SEND_TEMP_MSG = false; diff --git a/src/ntqqapi/api/user.ts b/src/ntqqapi/api/user.ts index 0d00e8b..d484a2c 100644 --- a/src/ntqqapi/api/user.ts +++ b/src/ntqqapi/api/user.ts @@ -2,6 +2,7 @@ import {callNTQQApi, GeneralCallResult, NTQQApiClass, NTQQApiMethod} from "../nt import {SelfInfo, User} from "../types"; import {ReceiveCmdS} from "../hook"; import {uidMaps} from "../../common/data"; +import {NTQQWindowApi, NTQQWindows} from "./window"; export class NTQQUserApi{ @@ -53,4 +54,50 @@ export class NTQQUserApi{ return info } + static async getPSkey() { + return await callNTQQApi({ + className: NTQQApiClass.GROUP_HOME_WORK, + methodName: NTQQApiMethod.UPDATE_SKEY, + args: [ + { + domain: "qun.qq.com" + } + ] + }) + } + static async getSkey(groupName: string, groupCode: string): Promise<{data: string}> { + return await NTQQWindowApi.openWindow<{data: string}>(NTQQWindows.GroupHomeWorkWindow, [{ + groupName, + groupCode, + "source": "funcbar" + }], ReceiveCmdS.SKEY_UPDATE, 1); + // return await callNTQQApi({ + // className: NTQQApiClass.GROUP_HOME_WORK, + // methodName: NTQQApiMethod.UPDATE_SKEY, + // args: [ + // { + // domain: "qun.qq.com" + // } + // ] + // }) + // return await callNTQQApi({ + // methodName: NTQQApiMethod.GET_SKEY, + // args: [ + // { + // "domains": [ + // "qzone.qq.com", + // "qlive.qq.com", + // "qun.qq.com", + // "gamecenter.qq.com", + // "vip.qq.com", + // "qianbao.qq.com", + // "qidian.qq.com" + // ], + // "isForNewPCQQ": false + // }, + // null + // ] + // }) + } + } \ No newline at end of file diff --git a/src/ntqqapi/api/webapi.ts b/src/ntqqapi/api/webapi.ts index 97130c0..74d397e 100644 --- a/src/ntqqapi/api/webapi.ts +++ b/src/ntqqapi/api/webapi.ts @@ -1,7 +1,6 @@ -import {net, session} from "electron"; -import {NTQQApi} from "../ntcall"; import {groups} from "../../common/data"; import {log} from "../../common/utils"; +import {NTQQUserApi} from "./user"; export class WebApi{ private static bkn: string; @@ -43,9 +42,9 @@ export class WebApi{ private async init(){ if (!WebApi.bkn) { const group = groups[0]; - WebApi.skey = (await NTQQApi.getSkey(group.groupName, group.groupCode)).data; + WebApi.skey = (await NTQQUserApi.getSkey(group.groupName, group.groupCode)).data; WebApi.bkn = this.genBkn(WebApi.skey); - let cookie = await NTQQApi.getPSkey(); + let cookie = await NTQQUserApi.getPSkey(); const pskeyRegex = /p_skey=([^;]+)/; const match = cookie.match(pskeyRegex); const pskeyValue = match ? match[1] : null; diff --git a/src/ntqqapi/hook.ts b/src/ntqqapi/hook.ts index de7274f..14c7997 100644 --- a/src/ntqqapi/hook.ts +++ b/src/ntqqapi/hook.ts @@ -1,7 +1,7 @@ import {BrowserWindow} from 'electron'; import {NTQQApiClass} from "./ntcall"; import {NTQQMsgApi, sendMessagePool} from "./api/msg" -import {ChatType, Group, RawMessage, User} from "./types"; +import {ChatType, Group, GroupMember, RawMessage, User} from "./types"; import {friends, groups, selfInfo, tempGroupCodeMap, uidMaps} from "../common/data"; import {OB11GroupDecreaseEvent} from "../onebot11/event/notice/OB11GroupDecreaseEvent"; import {v4 as uuidv4} from "uuid" @@ -12,6 +12,7 @@ import {dbUtil} from "../common/db"; import {NTQQGroupApi} from "./api/group"; import {log} from "../common/utils/log"; import {sleep} from "../common/utils/helper"; +import {OB11GroupCardEvent} from "../onebot11/event/notice/OB11GroupCardEvent"; export let hookApiCallbacks: Record void> = {} @@ -25,6 +26,7 @@ export let ReceiveCmdS = { USER_DETAIL_INFO: "nodeIKernelProfileListener/onProfileDetailInfoChanged", GROUPS: "nodeIKernelGroupListener/onGroupListUpdate", GROUPS_UNIX: "onGroupListUpdate", + GROUP_MEMBER_INFO_UPDATE: "nodeIKernelGroupListener/onMemberInfoChange", FRIENDS: "onBuddyListChange", MEDIA_DOWNLOAD_COMPLETE: "nodeIKernelMsgListener/onRichMediaDownloadComplete", UNREAD_GROUP_NOTIFY: "nodeIKernelGroupListener/onGroupNotifiesUnreadCountUpdated", @@ -192,7 +194,7 @@ export function removeReceiveHook(id: string) { let activatedGroups: string[] = []; async function updateGroups(_groups: Group[], needUpdate: boolean = true) { for (let group of _groups) { - // log("update group", group) + log("update group", group) if (!activatedGroups.includes(group.groupCode)) { NTQQMsgApi.activateGroupChat(group.groupCode).then((r) => { activatedGroups.push(group.groupCode); @@ -221,12 +223,13 @@ async function updateGroups(_groups: Group[], needUpdate: boolean = true) { } } -async function processGroupEvent(payload) { +async function processGroupEvent(payload: {groupList: Group[]}) { try { const newGroupList = payload.groupList; for (const group of newGroupList) { let existGroup = groups.find(g => g.groupCode == group.groupCode); if (existGroup) { + if (existGroup.memberCount > group.memberCount) { const oldMembers = existGroup.members; @@ -242,39 +245,50 @@ async function processGroupEvent(payload) { for (const member of oldMembers) { if (!newMembersSet.has(member.uin)) { - postOB11Event(new OB11GroupDecreaseEvent(group.groupCode, parseInt(member.uin))); + postOB11Event(new OB11GroupDecreaseEvent(parseInt(group.groupCode), parseInt(member.uin))); break; } } } + } } updateGroups(newGroupList, false).then(); } catch (e) { updateGroups(payload.groupList).then(); - console.log(e); + log("更新群信息错误", e.stack.toString()); } } // 群列表变动 -registerReceiveHook<{ groupList: Group[], updateType: number }>(ReceiveCmdS.GROUPS, (payload) => { +registerReceiveHook<{ groupList: Group[], updateType: number }>([ReceiveCmdS.GROUPS, ReceiveCmdS.GROUPS_UNIX], (payload) => { + log("群列表变动", payload) if (payload.updateType != 2) { updateGroups(payload.groupList).then(); } else { - if (process.platform == "win32") { - processGroupEvent(payload).then(); - } + processGroupEvent(payload).then(); } }) -registerReceiveHook<{ groupList: Group[], updateType: number }>(ReceiveCmdS.GROUPS_UNIX, (payload) => { - if (payload.updateType != 2) { - updateGroups(payload.groupList).then(); - } else { - if (process.platform != "win32") { - processGroupEvent(payload).then(); - } - } + +registerReceiveHook<{groupCode: string, dataSource: number, members: Set}>(ReceiveCmdS.GROUP_MEMBER_INFO_UPDATE, (payload) => { + const groupCode = payload.groupCode; + const members = Array.from(payload.members.values()); + // log("群成员变动", groupCode, payload.members.keys(), payload.members.values()) + // const existGroup = groups.find(g => g.groupCode == groupCode); + // if (existGroup) { + // log("对比群成员", existGroup.members, members) + // for (const member of members) { + // const existMember = existGroup.members.find(m => m.uin == member.uin); + // if (existMember) { + // log("对比群名片", existMember.cardName, member.cardName) + // if (existMember.cardName != member.cardName) { + // postOB11Event(new OB11GroupCardEvent(parseInt(existGroup.groupCode), parseInt(member.uin), member.cardName, existMember.cardName)); + // } + // Object.assign(existMember, member); + // } + // } + // } }) // 好友列表变动 diff --git a/src/ntqqapi/ntcall.ts b/src/ntqqapi/ntcall.ts index 2b1436f..b7efc15 100644 --- a/src/ntqqapi/ntcall.ts +++ b/src/ntqqapi/ntcall.ts @@ -186,59 +186,4 @@ export class NTQQApi { ] }) } - - static async getSkey(groupName: string, groupCode: string): Promise<{data: string}> { - return await NTQQWindowApi.openWindow<{data: string}>(NTQQWindows.GroupHomeWorkWindow, [{ - groupName, - groupCode, - "source": "funcbar" - }], ReceiveCmdS.SKEY_UPDATE, 1); - // return await callNTQQApi({ - // className: NTQQApiClass.GROUP_HOME_WORK, - // methodName: NTQQApiMethod.UPDATE_SKEY, - // args: [ - // { - // domain: "qun.qq.com" - // } - // ] - // }) - // return await callNTQQApi({ - // methodName: NTQQApiMethod.GET_SKEY, - // args: [ - // { - // "domains": [ - // "qzone.qq.com", - // "qlive.qq.com", - // "qun.qq.com", - // "gamecenter.qq.com", - // "vip.qq.com", - // "qianbao.qq.com", - // "qidian.qq.com" - // ], - // "isForNewPCQQ": false - // }, - // null - // ] - // }) - } - - static async getPSkey() { - return await callNTQQApi({ - className: NTQQApiClass.GROUP_HOME_WORK, - methodName: NTQQApiMethod.UPDATE_SKEY, - args: [ - { - domain: "qun.qq.com" - } - ] - }) - } - - static async addGroupDigest(groupCode: string, msgSeq: string) { - return await new WebApi().addGroupDigest(groupCode, msgSeq); - } - - static async getGroupDigest(groupCode: string) { - return await new WebApi().getGroupDigest(groupCode); - } } \ No newline at end of file diff --git a/src/ntqqapi/types/msg.ts b/src/ntqqapi/types/msg.ts index 53e056d..0cfc04a 100644 --- a/src/ntqqapi/types/msg.ts +++ b/src/ntqqapi/types/msg.ts @@ -180,6 +180,7 @@ export interface PicElement { export enum GrayTipElementSubType { INVITE_NEW_MEMBER = 12, + MEMBER_NEW_TITLE = 17 } export interface GrayTipElement { @@ -196,6 +197,9 @@ export interface GrayTipElement { groupElement: TipGroupElement, xmlElement: { content: string; + }, + jsonGrayTipElement:{ + jsonStr: string; } } diff --git a/src/onebot11/action/BaseAction.ts b/src/onebot11/action/BaseAction.ts index b33124e..46af0b5 100644 --- a/src/onebot11/action/BaseAction.ts +++ b/src/onebot11/action/BaseAction.ts @@ -1,5 +1,5 @@ import {ActionName, BaseCheckResult} from "./types" -import {OB11Response} from "./utils" +import {OB11Response} from "./OB11Response" import {OB11Return} from "../types"; import {log} from "../../common/utils/log"; diff --git a/src/onebot11/action/utils.ts b/src/onebot11/action/OB11Response.ts similarity index 100% rename from src/onebot11/action/utils.ts rename to src/onebot11/action/OB11Response.ts diff --git a/src/onebot11/action/GetFile.ts b/src/onebot11/action/file/GetFile.ts similarity index 77% rename from src/onebot11/action/GetFile.ts rename to src/onebot11/action/file/GetFile.ts index dee07f5..f9045ee 100644 --- a/src/onebot11/action/GetFile.ts +++ b/src/onebot11/action/file/GetFile.ts @@ -1,10 +1,11 @@ -import BaseAction from "./BaseAction"; +import BaseAction from "../BaseAction"; import fs from "fs/promises"; -import {dbUtil} from "../../common/db"; -import {getConfigUtil} from "../../common/config"; -import {log, sleep, uri2local} from "../../common/utils"; -import {NTQQFileApi} from "../../ntqqapi/api/file"; -import {ActionName} from "./types"; +import {dbUtil} from "../../../common/db"; +import {getConfigUtil} from "../../../common/config"; +import {log, sleep, uri2local} from "../../../common/utils"; +import {NTQQFileApi} from "../../../ntqqapi/api/file"; +import {ActionName} from "../types"; +import {FileElement, RawMessage, VideoElement} from "../../../ntqqapi/types"; export interface GetFilePayload { file: string // 文件名或者fileUuid @@ -20,6 +21,14 @@ export interface GetFileResponse { export class GetFileBase extends BaseAction { + private getElement(msg: RawMessage): {id: string, element: VideoElement | FileElement}{ + let element = msg.elements.find(e=>e.fileElement) + if (!element){ + element = msg.elements.find(e=>e.videoElement) + return {id: element.elementId, element: element.videoElement} + } + return {id: element.elementId, element: element.fileElement} + } protected async _handle(payload: GetFilePayload): Promise { const cache = await dbUtil.getFileCache(payload.file) const {autoDeleteFile, enableLocalFile2Url, autoDeleteFileSecond} = getConfigUtil().getConfig() @@ -49,18 +58,17 @@ export class GetFileBase extends BaseAction { let msg = await dbUtil.getMsgByLongId(cache.msgId) if (msg){ log("找到了文件 msg", msg) - const element = msg.elements.find(e=>e.fileElement) + let element = this.getElement(msg); log("找到了文件 element", element); // 构建下载函数 await NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid, - element.elementId, "", "", true) + element.id, "", "", true) await sleep(1000); msg = await dbUtil.getMsgByLongId(cache.msgId) log("下载完成后的msg", msg) - cache.filePath = msg?.elements.find(e=>e.fileElement)?.fileElement?.filePath + cache.filePath = this.getElement(msg).element.filePath dbUtil.addFileCache(payload.file, cache).then() } - } } diff --git a/src/onebot11/action/GetImage.ts b/src/onebot11/action/file/GetImage.ts similarity index 77% rename from src/onebot11/action/GetImage.ts rename to src/onebot11/action/file/GetImage.ts index 18e19ed..e55a4ef 100644 --- a/src/onebot11/action/GetImage.ts +++ b/src/onebot11/action/file/GetImage.ts @@ -1,5 +1,5 @@ import {GetFileBase} from "./GetFile"; -import {ActionName} from "./types"; +import {ActionName} from "../types"; export default class GetImage extends GetFileBase { diff --git a/src/onebot11/action/GetRecord.ts b/src/onebot11/action/file/GetRecord.ts similarity index 92% rename from src/onebot11/action/GetRecord.ts rename to src/onebot11/action/file/GetRecord.ts index ce841d6..568c472 100644 --- a/src/onebot11/action/GetRecord.ts +++ b/src/onebot11/action/file/GetRecord.ts @@ -1,5 +1,5 @@ import {GetFileBase, GetFilePayload, GetFileResponse} from "./GetFile"; -import {ActionName} from "./types"; +import {ActionName} from "../types"; interface Payload extends GetFilePayload { out_format: 'mp3' | 'amr' | 'wma' | 'm4a' | 'spx' | 'ogg' | 'wav' | 'flac' diff --git a/src/onebot11/action/go-cqhttp/SendForwardMsg.ts b/src/onebot11/action/go-cqhttp/SendForwardMsg.ts index 6512090..67a2564 100644 --- a/src/onebot11/action/go-cqhttp/SendForwardMsg.ts +++ b/src/onebot11/action/go-cqhttp/SendForwardMsg.ts @@ -1,4 +1,4 @@ -import SendMsg from "../SendMsg"; +import SendMsg from "../msg/SendMsg"; import {OB11PostSendMsg} from "../../types"; import {ActionName} from "../types"; diff --git a/src/onebot11/action/GetGroupInfo.ts b/src/onebot11/action/group/GetGroupInfo.ts similarity index 68% rename from src/onebot11/action/GetGroupInfo.ts rename to src/onebot11/action/group/GetGroupInfo.ts index 952972c..e36158d 100644 --- a/src/onebot11/action/GetGroupInfo.ts +++ b/src/onebot11/action/group/GetGroupInfo.ts @@ -1,8 +1,8 @@ -import {OB11Group} from '../types'; -import {getGroup} from "../../common/data"; -import {OB11Constructor} from "../constructor"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import {OB11Group} from '../../types'; +import {getGroup} from "../../../common/data"; +import {OB11Constructor} from "../../constructor"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; interface PayloadType { group_id: number diff --git a/src/onebot11/action/GetGroupList.ts b/src/onebot11/action/group/GetGroupList.ts similarity index 52% rename from src/onebot11/action/GetGroupList.ts rename to src/onebot11/action/group/GetGroupList.ts index 4e88671..5c3eb49 100644 --- a/src/onebot11/action/GetGroupList.ts +++ b/src/onebot11/action/group/GetGroupList.ts @@ -1,8 +1,8 @@ -import {OB11Group} from '../types'; -import {OB11Constructor} from "../constructor"; -import {groups} from "../../common/data"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import {OB11Group} from '../../types'; +import {OB11Constructor} from "../../constructor"; +import {groups} from "../../../common/data"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; class GetGroupList extends BaseAction { diff --git a/src/onebot11/action/GetGroupMemberInfo.ts b/src/onebot11/action/group/GetGroupMemberInfo.ts similarity index 69% rename from src/onebot11/action/GetGroupMemberInfo.ts rename to src/onebot11/action/group/GetGroupMemberInfo.ts index 85cc99c..c2851d6 100644 --- a/src/onebot11/action/GetGroupMemberInfo.ts +++ b/src/onebot11/action/group/GetGroupMemberInfo.ts @@ -1,11 +1,11 @@ -import {OB11GroupMember} from '../types'; -import {getGroupMember} from "../../common/data"; -import {OB11Constructor} from "../constructor"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQUserApi} from "../../ntqqapi/api/user"; -import {log} from "../../common/utils/log"; -import {isNull} from "../../common/utils/helper"; +import {OB11GroupMember} from '../../types'; +import {getGroupMember} from "../../../common/data"; +import {OB11Constructor} from "../../constructor"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQUserApi} from "../../../ntqqapi/api/user"; +import {log} from "../../../common/utils/log"; +import {isNull} from "../../../common/utils/helper"; export interface PayloadType { diff --git a/src/onebot11/action/GetGroupMemberList.ts b/src/onebot11/action/group/GetGroupMemberList.ts similarity index 70% rename from src/onebot11/action/GetGroupMemberList.ts rename to src/onebot11/action/group/GetGroupMemberList.ts index 0e46610..085eff2 100644 --- a/src/onebot11/action/GetGroupMemberList.ts +++ b/src/onebot11/action/group/GetGroupMemberList.ts @@ -1,9 +1,9 @@ -import {OB11GroupMember} from '../types'; -import {getGroup} from "../../common/data"; -import {OB11Constructor} from "../constructor"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import {OB11GroupMember} from '../../types'; +import {getGroup} from "../../../common/data"; +import {OB11Constructor} from "../../constructor"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; export interface PayloadType { group_id: number diff --git a/src/onebot11/action/GetGuildList.ts b/src/onebot11/action/group/GetGuildList.ts similarity index 72% rename from src/onebot11/action/GetGuildList.ts rename to src/onebot11/action/group/GetGuildList.ts index 50ebcc9..9824362 100644 --- a/src/onebot11/action/GetGuildList.ts +++ b/src/onebot11/action/group/GetGuildList.ts @@ -1,5 +1,5 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; export default class GetGuildList extends BaseAction { actionName = ActionName.GetGuildList diff --git a/src/onebot11/action/SendGroupMsg.ts b/src/onebot11/action/group/SendGroupMsg.ts similarity index 62% rename from src/onebot11/action/SendGroupMsg.ts rename to src/onebot11/action/group/SendGroupMsg.ts index 7c73191..d0b52d4 100644 --- a/src/onebot11/action/SendGroupMsg.ts +++ b/src/onebot11/action/group/SendGroupMsg.ts @@ -1,8 +1,8 @@ -import SendMsg from "./SendMsg"; -import {ActionName, BaseCheckResult} from "./types"; -import {OB11PostSendMsg} from "../types"; +import SendMsg from "../msg/SendMsg"; +import {ActionName, BaseCheckResult} from "../types"; +import {OB11PostSendMsg} from "../../types"; -import {log} from "../../common/utils/log"; +import {log} from "../../../common/utils/log"; class SendGroupMsg extends SendMsg { diff --git a/src/onebot11/action/SetGroupAddRequest.ts b/src/onebot11/action/group/SetGroupAddRequest.ts similarity index 76% rename from src/onebot11/action/SetGroupAddRequest.ts rename to src/onebot11/action/group/SetGroupAddRequest.ts index 5c7627e..c08bc6b 100644 --- a/src/onebot11/action/SetGroupAddRequest.ts +++ b/src/onebot11/action/group/SetGroupAddRequest.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {GroupRequestOperateTypes} from "../../ntqqapi/types"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {GroupRequestOperateTypes} from "../../../ntqqapi/types"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { flag: string, diff --git a/src/onebot11/action/SetGroupAdmin.ts b/src/onebot11/action/group/SetGroupAdmin.ts similarity index 73% rename from src/onebot11/action/SetGroupAdmin.ts rename to src/onebot11/action/group/SetGroupAdmin.ts index 82be2a6..5ead5ec 100644 --- a/src/onebot11/action/SetGroupAdmin.ts +++ b/src/onebot11/action/group/SetGroupAdmin.ts @@ -1,8 +1,8 @@ -import BaseAction from "./BaseAction"; -import {getGroupMember} from "../../common/data"; -import {GroupMemberRole} from "../../ntqqapi/types"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {getGroupMember} from "../../../common/data"; +import {GroupMemberRole} from "../../../ntqqapi/types"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupBan.ts b/src/onebot11/action/group/SetGroupBan.ts similarity index 76% rename from src/onebot11/action/SetGroupBan.ts rename to src/onebot11/action/group/SetGroupBan.ts index cbe7ea0..01d9c22 100644 --- a/src/onebot11/action/SetGroupBan.ts +++ b/src/onebot11/action/group/SetGroupBan.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {getGroupMember} from "../../common/data"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {getGroupMember} from "../../../common/data"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupCard.ts b/src/onebot11/action/group/SetGroupCard.ts similarity index 74% rename from src/onebot11/action/SetGroupCard.ts rename to src/onebot11/action/group/SetGroupCard.ts index 0905181..2c21d34 100644 --- a/src/onebot11/action/SetGroupCard.ts +++ b/src/onebot11/action/group/SetGroupCard.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {getGroupMember} from "../../common/data"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {getGroupMember} from "../../../common/data"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupKick.ts b/src/onebot11/action/group/SetGroupKick.ts similarity index 75% rename from src/onebot11/action/SetGroupKick.ts rename to src/onebot11/action/group/SetGroupKick.ts index 5491215..f4cc23a 100644 --- a/src/onebot11/action/SetGroupKick.ts +++ b/src/onebot11/action/group/SetGroupKick.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {getGroupMember} from "../../common/data"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {getGroupMember} from "../../../common/data"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupLeave.ts b/src/onebot11/action/group/SetGroupLeave.ts similarity index 70% rename from src/onebot11/action/SetGroupLeave.ts rename to src/onebot11/action/group/SetGroupLeave.ts index 27bcde1..5e60979 100644 --- a/src/onebot11/action/SetGroupLeave.ts +++ b/src/onebot11/action/group/SetGroupLeave.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; -import {log} from "../../common/utils/log"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; +import {log} from "../../../common/utils/log"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupName.ts b/src/onebot11/action/group/SetGroupName.ts similarity index 72% rename from src/onebot11/action/SetGroupName.ts rename to src/onebot11/action/group/SetGroupName.ts index e2efe3a..508b44f 100644 --- a/src/onebot11/action/SetGroupName.ts +++ b/src/onebot11/action/group/SetGroupName.ts @@ -1,6 +1,6 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/SetGroupWholeBan.ts b/src/onebot11/action/group/SetGroupWholeBan.ts similarity index 75% rename from src/onebot11/action/SetGroupWholeBan.ts rename to src/onebot11/action/group/SetGroupWholeBan.ts index 1768af1..aa0f3a3 100644 --- a/src/onebot11/action/SetGroupWholeBan.ts +++ b/src/onebot11/action/group/SetGroupWholeBan.ts @@ -1,6 +1,6 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQGroupApi} from "../../ntqqapi/api/group"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQGroupApi} from "../../../ntqqapi/api/group"; interface Payload { group_id: number, diff --git a/src/onebot11/action/index.ts b/src/onebot11/action/index.ts index 6461779..d0edfd2 100644 --- a/src/onebot11/action/index.ts +++ b/src/onebot11/action/index.ts @@ -1,44 +1,44 @@ -import GetMsg from './GetMsg' -import GetLoginInfo from './GetLoginInfo' -import GetFriendList from './GetFriendList' -import GetGroupList from './GetGroupList' -import GetGroupInfo from './GetGroupInfo' -import GetGroupMemberList from './GetGroupMemberList' -import GetGroupMemberInfo from './GetGroupMemberInfo' -import SendGroupMsg from './SendGroupMsg' -import SendPrivateMsg from './SendPrivateMsg' -import SendMsg from './SendMsg' -import DeleteMsg from "./DeleteMsg"; +import GetMsg from './msg/GetMsg' +import GetLoginInfo from './system/GetLoginInfo' +import GetFriendList from './user/GetFriendList' +import GetGroupList from './group/GetGroupList' +import GetGroupInfo from './group/GetGroupInfo' +import GetGroupMemberList from './group/GetGroupMemberList' +import GetGroupMemberInfo from './group/GetGroupMemberInfo' +import SendGroupMsg from './group/SendGroupMsg' +import SendPrivateMsg from './msg/SendPrivateMsg' +import SendMsg from './msg/SendMsg' +import DeleteMsg from "./msg/DeleteMsg"; import BaseAction from "./BaseAction"; -import GetVersionInfo from "./GetVersionInfo"; -import CanSendRecord from "./CanSendRecord"; -import CanSendImage from "./CanSendImage"; -import GetStatus from "./GetStatus"; +import GetVersionInfo from "./system/GetVersionInfo"; +import CanSendRecord from "./system/CanSendRecord"; +import CanSendImage from "./system/CanSendImage"; +import GetStatus from "./system/GetStatus"; import {GoCQHTTPSendGroupForwardMsg, GoCQHTTPSendPrivateForwardMsg} from "./go-cqhttp/SendForwardMsg"; import GoCQHTTPGetStrangerInfo from "./go-cqhttp/GetStrangerInfo"; -import SendLike from "./SendLike"; -import SetGroupAddRequest from "./SetGroupAddRequest"; -import SetGroupLeave from "./SetGroupLeave"; -import GetGuildList from "./GetGuildList"; +import SendLike from "./user/SendLike"; +import SetGroupAddRequest from "./group/SetGroupAddRequest"; +import SetGroupLeave from "./group/SetGroupLeave"; +import GetGuildList from "./group/GetGuildList"; import Debug from "./llonebot/Debug"; -import SetFriendAddRequest from "./SetFriendAddRequest"; -import SetGroupWholeBan from "./SetGroupWholeBan"; -import SetGroupName from "./SetGroupName"; -import SetGroupBan from "./SetGroupBan"; -import SetGroupKick from "./SetGroupKick"; -import SetGroupAdmin from "./SetGroupAdmin"; -import SetGroupCard from "./SetGroupCard"; -import GetImage from "./GetImage"; -import GetRecord from "./GetRecord"; -import GoCQHTTPMarkMsgAsRead from "./MarkMsgAsRead"; -import CleanCache from "./CleanCache"; +import SetFriendAddRequest from "./user/SetFriendAddRequest"; +import SetGroupWholeBan from "./group/SetGroupWholeBan"; +import SetGroupName from "./group/SetGroupName"; +import SetGroupBan from "./group/SetGroupBan"; +import SetGroupKick from "./group/SetGroupKick"; +import SetGroupAdmin from "./group/SetGroupAdmin"; +import SetGroupCard from "./group/SetGroupCard"; +import GetImage from "./file/GetImage"; +import GetRecord from "./file/GetRecord"; +import GoCQHTTPMarkMsgAsRead from "./msg/MarkMsgAsRead"; +import CleanCache from "./system/CleanCache"; import GoCQHTTPUploadGroupFile from "./go-cqhttp/UploadGroupFile"; import {GetConfigAction, SetConfigAction} from "./llonebot/Config"; import GetGroupAddRequest from "./llonebot/GetGroupAddRequest"; import SetQQAvatar from './llonebot/SetQQAvatar' import GoCQHTTPDownloadFile from "./go-cqhttp/DownloadFile"; import GoCQHTTPGetGroupMsgHistory from "./go-cqhttp/GetGroupMsgHistory"; -import GetFile from "./GetFile"; +import GetFile from "./file/GetFile"; export const actionHandlers = [ new GetFile(), diff --git a/src/onebot11/action/DeleteMsg.ts b/src/onebot11/action/msg/DeleteMsg.ts similarity index 70% rename from src/onebot11/action/DeleteMsg.ts rename to src/onebot11/action/msg/DeleteMsg.ts index f98de36..c67620c 100644 --- a/src/onebot11/action/DeleteMsg.ts +++ b/src/onebot11/action/msg/DeleteMsg.ts @@ -1,7 +1,7 @@ -import {ActionName} from "./types"; -import BaseAction from "./BaseAction"; -import {dbUtil} from "../../common/db"; -import {NTQQMsgApi} from "../../ntqqapi/api/msg"; +import {ActionName} from "../types"; +import BaseAction from "../BaseAction"; +import {dbUtil} from "../../../common/db"; +import {NTQQMsgApi} from "../../../ntqqapi/api/msg"; interface Payload { message_id: number diff --git a/src/onebot11/action/GetMsg.ts b/src/onebot11/action/msg/GetMsg.ts similarity index 77% rename from src/onebot11/action/GetMsg.ts rename to src/onebot11/action/msg/GetMsg.ts index bee6462..72e21d5 100644 --- a/src/onebot11/action/GetMsg.ts +++ b/src/onebot11/action/msg/GetMsg.ts @@ -1,8 +1,8 @@ -import {OB11Message} from '../types'; -import {OB11Constructor} from "../constructor"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {dbUtil} from "../../common/db"; +import {OB11Message} from '../../types'; +import {OB11Constructor} from "../../constructor"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {dbUtil} from "../../../common/db"; export interface PayloadType { diff --git a/src/onebot11/action/MarkMsgAsRead.ts b/src/onebot11/action/msg/MarkMsgAsRead.ts similarity index 77% rename from src/onebot11/action/MarkMsgAsRead.ts rename to src/onebot11/action/msg/MarkMsgAsRead.ts index 64a739e..6d6e097 100644 --- a/src/onebot11/action/MarkMsgAsRead.ts +++ b/src/onebot11/action/msg/MarkMsgAsRead.ts @@ -1,5 +1,5 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; interface Payload{ message_id: number diff --git a/src/onebot11/action/SendMsg.ts b/src/onebot11/action/msg/SendMsg.ts similarity index 96% rename from src/onebot11/action/SendMsg.ts rename to src/onebot11/action/msg/SendMsg.ts index b941ce1..18cb65c 100644 --- a/src/onebot11/action/SendMsg.ts +++ b/src/onebot11/action/msg/SendMsg.ts @@ -6,7 +6,7 @@ import { RawMessage, SendArkElement, SendMessageElement -} from "../../ntqqapi/types"; +} from "../../../ntqqapi/types"; import { friends, getFriend, @@ -14,7 +14,7 @@ import { getGroupMember, getUidByUin, selfInfo, -} from "../../common/data"; +} from "../../../common/data"; import { OB11MessageCustomMusic, OB11MessageData, @@ -22,19 +22,19 @@ import { OB11MessageMixType, OB11MessageNode, OB11PostSendMsg -} from '../types'; -import {Peer} from "../../ntqqapi/api/msg"; -import {SendMsgElementConstructor} from "../../ntqqapi/constructor"; -import BaseAction from "./BaseAction"; -import {ActionName, BaseCheckResult} from "./types"; +} from '../../types'; +import {Peer} from "../../../ntqqapi/api/msg"; +import {SendMsgElementConstructor} from "../../../ntqqapi/constructor"; +import BaseAction from "../BaseAction"; +import {ActionName, BaseCheckResult} from "../types"; import * as fs from "node:fs"; -import {decodeCQCode} from "../cqcode"; -import {dbUtil} from "../../common/db"; -import {ALLOW_SEND_TEMP_MSG} from "../../common/config"; -import {NTQQMsgApi} from "../../ntqqapi/api/msg"; -import {log} from "../../common/utils/log"; -import {sleep} from "../../common/utils/helper"; -import {uri2local} from "../../common/utils"; +import {decodeCQCode} from "../../cqcode"; +import {dbUtil} from "../../../common/db"; +import {ALLOW_SEND_TEMP_MSG} from "../../../common/config"; +import {NTQQMsgApi} from "../../../ntqqapi/api/msg"; +import {log} from "../../../common/utils/log"; +import {sleep} from "../../../common/utils/helper"; +import {uri2local} from "../../../common/utils"; function checkSendMessage(sendMsgList: OB11MessageData[]) { function checkUri(uri: string): boolean { diff --git a/src/onebot11/action/SendPrivateMsg.ts b/src/onebot11/action/msg/SendPrivateMsg.ts similarity index 75% rename from src/onebot11/action/SendPrivateMsg.ts rename to src/onebot11/action/msg/SendPrivateMsg.ts index 8e2e26d..8304b3d 100644 --- a/src/onebot11/action/SendPrivateMsg.ts +++ b/src/onebot11/action/msg/SendPrivateMsg.ts @@ -1,6 +1,6 @@ import SendMsg from "./SendMsg"; -import {ActionName, BaseCheckResult} from "./types"; -import {OB11PostSendMsg} from "../types"; +import {ActionName, BaseCheckResult} from "../types"; +import {OB11PostSendMsg} from "../../types"; class SendPrivateMsg extends SendMsg { actionName = ActionName.SendPrivateMsg diff --git a/src/onebot11/action/CanSendImage.ts b/src/onebot11/action/system/CanSendImage.ts similarity index 83% rename from src/onebot11/action/CanSendImage.ts rename to src/onebot11/action/system/CanSendImage.ts index 36b8524..48354ac 100644 --- a/src/onebot11/action/CanSendImage.ts +++ b/src/onebot11/action/system/CanSendImage.ts @@ -1,4 +1,4 @@ -import {ActionName} from "./types"; +import {ActionName} from "../types"; import CanSendRecord from "./CanSendRecord"; interface ReturnType { diff --git a/src/onebot11/action/CanSendRecord.ts b/src/onebot11/action/system/CanSendRecord.ts similarity index 78% rename from src/onebot11/action/CanSendRecord.ts rename to src/onebot11/action/system/CanSendRecord.ts index 8d8abd1..3464f49 100644 --- a/src/onebot11/action/CanSendRecord.ts +++ b/src/onebot11/action/system/CanSendRecord.ts @@ -1,5 +1,5 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; interface ReturnType { yes: boolean diff --git a/src/onebot11/action/CleanCache.ts b/src/onebot11/action/system/CleanCache.ts similarity index 94% rename from src/onebot11/action/CleanCache.ts rename to src/onebot11/action/system/CleanCache.ts index 0ed48ff..f6547e7 100644 --- a/src/onebot11/action/CleanCache.ts +++ b/src/onebot11/action/system/CleanCache.ts @@ -1,14 +1,14 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; import fs from "fs"; import Path from "path"; import { ChatType, ChatCacheListItemBasic, CacheFileType -} from '../../ntqqapi/types'; -import {dbUtil} from "../../common/db"; -import {NTQQFileApi, NTQQFileCacheApi} from "../../ntqqapi/api/file"; +} from '../../../ntqqapi/types'; +import {dbUtil} from "../../../common/db"; +import {NTQQFileApi, NTQQFileCacheApi} from "../../../ntqqapi/api/file"; export default class CleanCache extends BaseAction { actionName = ActionName.CleanCache diff --git a/src/onebot11/action/GetLoginInfo.ts b/src/onebot11/action/system/GetLoginInfo.ts similarity index 52% rename from src/onebot11/action/GetLoginInfo.ts rename to src/onebot11/action/system/GetLoginInfo.ts index 3d38e62..3d8b5f1 100644 --- a/src/onebot11/action/GetLoginInfo.ts +++ b/src/onebot11/action/system/GetLoginInfo.ts @@ -1,8 +1,8 @@ -import {OB11User} from '../types'; -import {OB11Constructor} from "../constructor"; -import {selfInfo} from "../../common/data"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import {OB11User} from '../../types'; +import {OB11Constructor} from "../../constructor"; +import {selfInfo} from "../../../common/data"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; class GetLoginInfo extends BaseAction { diff --git a/src/onebot11/action/GetStatus.ts b/src/onebot11/action/system/GetStatus.ts similarity index 62% rename from src/onebot11/action/GetStatus.ts rename to src/onebot11/action/system/GetStatus.ts index a048b30..3decd2b 100644 --- a/src/onebot11/action/GetStatus.ts +++ b/src/onebot11/action/system/GetStatus.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {OB11Status} from "../types"; -import {ActionName} from "./types"; -import {selfInfo} from "../../common/data"; +import BaseAction from "../BaseAction"; +import {OB11Status} from "../../types"; +import {ActionName} from "../types"; +import {selfInfo} from "../../../common/data"; export default class GetStatus extends BaseAction { diff --git a/src/onebot11/action/GetVersionInfo.ts b/src/onebot11/action/system/GetVersionInfo.ts similarity index 66% rename from src/onebot11/action/GetVersionInfo.ts rename to src/onebot11/action/system/GetVersionInfo.ts index bb2cb4a..9dfab55 100644 --- a/src/onebot11/action/GetVersionInfo.ts +++ b/src/onebot11/action/system/GetVersionInfo.ts @@ -1,7 +1,7 @@ -import BaseAction from "./BaseAction"; -import {OB11Version} from "../types"; -import {ActionName} from "./types"; -import {version} from "../../version"; +import BaseAction from "../BaseAction"; +import {OB11Version} from "../../types"; +import {ActionName} from "../types"; +import {version} from "../../../version"; export default class GetVersionInfo extends BaseAction { actionName = ActionName.GetVersionInfo diff --git a/src/onebot11/action/GetFriendList.ts b/src/onebot11/action/user/GetFriendList.ts similarity index 52% rename from src/onebot11/action/GetFriendList.ts rename to src/onebot11/action/user/GetFriendList.ts index ad190cb..3680231 100644 --- a/src/onebot11/action/GetFriendList.ts +++ b/src/onebot11/action/user/GetFriendList.ts @@ -1,8 +1,8 @@ -import {OB11User} from '../types'; -import {OB11Constructor} from "../constructor"; -import {friends} from "../../common/data"; -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; +import {OB11User} from '../../types'; +import {OB11Constructor} from "../../constructor"; +import {friends} from "../../../common/data"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; class GetFriendList extends BaseAction { diff --git a/src/onebot11/action/SendLike.ts b/src/onebot11/action/user/SendLike.ts similarity index 76% rename from src/onebot11/action/SendLike.ts rename to src/onebot11/action/user/SendLike.ts index d1b4bbd..217f397 100644 --- a/src/onebot11/action/SendLike.ts +++ b/src/onebot11/action/user/SendLike.ts @@ -1,8 +1,8 @@ -import BaseAction from "./BaseAction"; -import {getFriend, getUidByUin, uidMaps} from "../../common/data"; -import {ActionName} from "./types"; -import {NTQQFriendApi} from "../../ntqqapi/api/friend"; -import {log} from "../../common/utils/log"; +import BaseAction from "../BaseAction"; +import {getFriend, getUidByUin, uidMaps} from "../../../common/data"; +import {ActionName} from "../types"; +import {NTQQFriendApi} from "../../../ntqqapi/api/friend"; +import {log} from "../../../common/utils/log"; interface Payload { user_id: number, diff --git a/src/onebot11/action/SetFriendAddRequest.ts b/src/onebot11/action/user/SetFriendAddRequest.ts similarity index 76% rename from src/onebot11/action/SetFriendAddRequest.ts rename to src/onebot11/action/user/SetFriendAddRequest.ts index 193f069..5d5ffa0 100644 --- a/src/onebot11/action/SetFriendAddRequest.ts +++ b/src/onebot11/action/user/SetFriendAddRequest.ts @@ -1,6 +1,6 @@ -import BaseAction from "./BaseAction"; -import {ActionName} from "./types"; -import {NTQQFriendApi} from "../../ntqqapi/api/friend"; +import BaseAction from "../BaseAction"; +import {ActionName} from "../types"; +import {NTQQFriendApi} from "../../../ntqqapi/api/friend"; interface Payload { flag: string, diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index 7fde2d4..303b02a 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -35,6 +35,8 @@ import {calcQQLevel} from "../common/utils/qqlevel"; import {log} from "../common/utils/log"; import {sleep} from "../common/utils/helper"; import {getConfigUtil} from "../common/config"; +import {OB11GroupTitleEvent} from "./event/notice/OB11GroupTitleEvent"; +import {OB11GroupCardEvent} from "./event/notice/OB11GroupCardEvent"; export class OB11Constructor { @@ -159,9 +161,10 @@ export class OB11Constructor { message_data["type"] = OB11MessageDataType.video; message_data["data"]["file"] = element.videoElement.fileName message_data["data"]["path"] = element.videoElement.filePath - // message_data["data"]["file_id"] = element.videoElement.fileUuid + message_data["data"]["file_id"] = element.videoElement.fileUuid message_data["data"]["file_size"] = element.videoElement.fileSize - dbUtil.addFileCache(element.videoElement.fileName, { + dbUtil.addFileCache(element.videoElement.fileUuid, { + msgId: msg.msgId, fileName: element.videoElement.fileName, filePath: element.videoElement.filePath, fileSize: element.videoElement.fileSize, @@ -231,6 +234,12 @@ export class OB11Constructor { if (msg.chatType !== ChatType.group) { return; } + if (msg.senderUin){ + const member = await getGroupMember(msg.peerUid, msg.senderUin); + if (member && member.cardName !== msg.sendMemberName) { + return new OB11GroupCardEvent(parseInt(msg.peerUid), parseInt(msg.senderUin), msg.sendMemberName, member.cardName) + } + } // log("group msg", msg); for (let element of msg.elements) { const grayTipElement = element.grayTipElement @@ -300,6 +309,36 @@ export class OB11Constructor { return new OB11GroupIncreaseEvent(parseInt(msg.peerUid), parseInt(invitee), parseInt(inviter), "invite"); } } + } else if (grayTipElement.subElementType == GrayTipElementSubType.MEMBER_NEW_TITLE) { + const json = JSON.parse(grayTipElement.jsonGrayTipElement.jsonStr) + /* + { + align: 'center', + items: [ + { txt: '恭喜', type: 'nor' }, + { + col: '3', + jp: '5', + param: ["QQ号"], + txt: '林雨辰', + type: 'url' + }, + { txt: '获得群主授予的', type: 'nor' }, + { + col: '3', + jp: '', + txt: '好好好', + type: 'url' + }, + { txt: '头衔', type: 'nor' } + ] + } + + * */ + const memberUin = json.items[1].param[0] + const title = json.items[3].txt + log("收到群成员新头衔消息", json) + return new OB11GroupTitleEvent(parseInt(msg.peerUid), parseInt(memberUin), title) } } } diff --git a/src/onebot11/event/notice/OB11GroupCardEvent.ts b/src/onebot11/event/notice/OB11GroupCardEvent.ts new file mode 100644 index 0000000..dc258f9 --- /dev/null +++ b/src/onebot11/event/notice/OB11GroupCardEvent.ts @@ -0,0 +1,16 @@ +import {OB11GroupNoticeEvent} from "./OB11GroupNoticeEvent"; + +export class OB11GroupCardEvent extends OB11GroupNoticeEvent { + notice_type = "group_card"; + card_new: string; + card_old: string; + + + constructor(groupId: number, userId: number, cardNew: string, cardOld: string) { + super(); + this.group_id = groupId; + this.user_id = userId; + this.card_new = cardNew; + this.card_old = cardOld; + } +} diff --git a/src/onebot11/event/notice/OB11GroupTitleEvent.ts b/src/onebot11/event/notice/OB11GroupTitleEvent.ts new file mode 100644 index 0000000..0d3a97f --- /dev/null +++ b/src/onebot11/event/notice/OB11GroupTitleEvent.ts @@ -0,0 +1,15 @@ +import {OB11GroupNoticeEvent} from "./OB11GroupNoticeEvent"; + +export class OB11GroupTitleEvent extends OB11GroupNoticeEvent { + notice_type = "notify"; + sub_type = "title"; + title: string + + + constructor(groupId: number, userId: number, title: string) { + super(); + this.group_id = groupId; + this.user_id = userId; + this.title = title; + } +} diff --git a/src/onebot11/event/notice/OB11PokeEvent.ts b/src/onebot11/event/notice/OB11PokeEvent.ts index 0c81a96..6359b3e 100644 --- a/src/onebot11/event/notice/OB11PokeEvent.ts +++ b/src/onebot11/event/notice/OB11PokeEvent.ts @@ -7,7 +7,6 @@ class OB11PokeEvent extends OB11BaseNoticeEvent{ sub_type = "poke" target_id = parseInt(selfInfo.uin) user_id: number - } export class OB11FriendPokeEvent extends OB11PokeEvent{ diff --git a/src/onebot11/server/http.ts b/src/onebot11/server/http.ts index e1a9bdc..ac7a95b 100644 --- a/src/onebot11/server/http.ts +++ b/src/onebot11/server/http.ts @@ -1,5 +1,5 @@ import {Response} from "express"; -import {OB11Response} from "../action/utils"; +import {OB11Response} from "../action/OB11Response"; import {HttpServerBase} from "../../common/server/http"; import {actionHandlers} from "../action"; import {getConfigUtil} from "../../common/config"; diff --git a/src/onebot11/server/ws/ReverseWebsocket.ts b/src/onebot11/server/ws/ReverseWebsocket.ts index c158c08..ac8a95a 100644 --- a/src/onebot11/server/ws/ReverseWebsocket.ts +++ b/src/onebot11/server/ws/ReverseWebsocket.ts @@ -1,7 +1,7 @@ import {selfInfo} from "../../../common/data"; import {LifeCycleSubType, OB11LifeCycleEvent} from "../../event/meta/OB11LifeCycleEvent"; import {ActionName} from "../../action/types"; -import {OB11Response} from "../../action/utils"; +import {OB11Response} from "../../action/OB11Response"; import BaseAction from "../../action/BaseAction"; import {actionMap} from "../../action"; import {postWsEvent, registerWsEventSender, unregisterWsEventSender} from "../postOB11Event"; diff --git a/src/onebot11/server/ws/WebsocketServer.ts b/src/onebot11/server/ws/WebsocketServer.ts index fc414f0..446b0df 100644 --- a/src/onebot11/server/ws/WebsocketServer.ts +++ b/src/onebot11/server/ws/WebsocketServer.ts @@ -1,6 +1,6 @@ import {WebSocket} from "ws"; import {actionMap} from "../../action"; -import {OB11Response} from "../../action/utils"; +import {OB11Response} from "../../action/OB11Response"; import {postWsEvent, registerWsEventSender, unregisterWsEventSender} from "../postOB11Event"; import {ActionName} from "../../action/types"; import BaseAction from "../../action/BaseAction"; diff --git a/src/onebot11/server/ws/reply.ts b/src/onebot11/server/ws/reply.ts index d0b910d..4f426db 100644 --- a/src/onebot11/server/ws/reply.ts +++ b/src/onebot11/server/ws/reply.ts @@ -1,5 +1,5 @@ import {WebSocket as WebSocketClass} from "ws"; -import {OB11Response} from "../../action/utils"; +import {OB11Response} from "../../action/OB11Response"; import {PostEventType} from "../postOB11Event"; import {log} from "../../../common/utils/log"; import {isNull} from "../../../common/utils/helper";