mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
Merge branch 'main' into feat/packet-more
This commit is contained in:
commit
c0c757d6bd
@ -1,5 +1,7 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://socialify.git.ci/NapNeko/NapCatQQ/image?font=Jost&logo=https%3A%2F%2Fnapneko.github.io%2Fassets%2Flogo.png&name=1&owner=1&pattern=Diagonal%20Stripes&stargazers=1&theme=Auto" alt="NapCatQQ" width="640" height="320" />
|
|
||||||
|

|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"name": "NapCatQQ",
|
"name": "NapCatQQ",
|
||||||
"slug": "NapCat.Framework",
|
"slug": "NapCat.Framework",
|
||||||
"description": "高性能的 OneBot 11 协议实现",
|
"description": "高性能的 OneBot 11 协议实现",
|
||||||
"version": "3.1.4",
|
"version": "3.1.5",
|
||||||
"icon": "./logo.png",
|
"icon": "./logo.png",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "napcat",
|
"name": "napcat",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "3.1.4",
|
"version": "3.1.5",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:framework": "vite build --mode framework",
|
"build:framework": "vite build --mode framework",
|
||||||
"build:shell": "vite build --mode shell",
|
"build:shell": "vite build --mode shell",
|
||||||
|
@ -50,9 +50,29 @@ interface ForwardAdaptMsgElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class ForwardMsgBuilder {
|
export class ForwardMsgBuilder {
|
||||||
private static build(resId: string, msg: ForwardAdaptMsg[]): ForwardMsgJson {
|
private static build(resId: string, msg: ForwardAdaptMsg[], source?: string, news?: ForwardMsgJsonMetaDetail["news"], summary?: string, prompt?: string): ForwardMsgJson {
|
||||||
const id = crypto.randomUUID();
|
const id = crypto.randomUUID();
|
||||||
const isGroupMsg = msg.some(m => m.isGroupMsg);
|
const isGroupMsg = msg.some(m => m.isGroupMsg);
|
||||||
|
if (!source) {
|
||||||
|
source = isGroupMsg ? "群聊的聊天记录" :
|
||||||
|
msg.length
|
||||||
|
? Array.from(new Set(msg.map(m => m.senderName)))
|
||||||
|
.join('和') + '的聊天记录'
|
||||||
|
: '聊天记录';
|
||||||
|
}
|
||||||
|
if (!news) {
|
||||||
|
news = msg.length === 0 ? [{
|
||||||
|
text: "Nya~ This message is send from NapCat.Packet!",
|
||||||
|
}] : msg.map(m => ({
|
||||||
|
text: `${m.senderName}: ${m.msg?.map(msg => msg.preview).join('')}`,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
if (!summary) {
|
||||||
|
summary = `查看${msg.length}条转发消息`;
|
||||||
|
}
|
||||||
|
if (!prompt) {
|
||||||
|
prompt = "[聊天记录]";
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
app: "com.tencent.multimsg",
|
app: "com.tencent.multimsg",
|
||||||
config: {
|
config: {
|
||||||
@ -62,29 +82,21 @@ export class ForwardMsgBuilder {
|
|||||||
type: "normal",
|
type: "normal",
|
||||||
width: 300
|
width: 300
|
||||||
},
|
},
|
||||||
desc: "[聊天记录]",
|
desc: prompt,
|
||||||
extra: {
|
extra: {
|
||||||
filename: id,
|
filename: id,
|
||||||
tsum: msg.length,
|
tsum: msg.length,
|
||||||
},
|
},
|
||||||
meta: {
|
meta: {
|
||||||
detail: {
|
detail: {
|
||||||
news: msg.length === 0 ? [{
|
news,
|
||||||
text: "Nya~ This message is send from NapCat.Packet!",
|
|
||||||
}] : msg.map(m => ({
|
|
||||||
text: `${m.senderName}: ${m.msg?.map(msg => msg.preview).join('')}`,
|
|
||||||
})),
|
|
||||||
resid: resId,
|
resid: resId,
|
||||||
source: isGroupMsg ? "群聊的聊天记录" :
|
source,
|
||||||
msg.length
|
summary,
|
||||||
? Array.from(new Set(msg.map(m => m.senderName)))
|
|
||||||
.join('和') + '的聊天记录'
|
|
||||||
: '聊天记录',
|
|
||||||
summary: `查看${msg.length}条转发消息`,
|
|
||||||
uniseq: id,
|
uniseq: id,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
prompt: "[聊天记录]",
|
prompt,
|
||||||
ver: "0.0.0.5",
|
ver: "0.0.0.5",
|
||||||
view: "contact",
|
view: "contact",
|
||||||
};
|
};
|
||||||
@ -94,13 +106,13 @@ export class ForwardMsgBuilder {
|
|||||||
return this.build(resId, []);
|
return this.build(resId, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
static fromPacketMsg(resId: string, packetMsg: PacketMsg[]): ForwardMsgJson {
|
static fromPacketMsg(resId: string, packetMsg: PacketMsg[], source?: string, news?: ForwardMsgJsonMetaDetail["news"], summary?: string, prompt?: string): ForwardMsgJson {
|
||||||
return this.build(resId, packetMsg.map(msg => ({
|
return this.build(resId, packetMsg.map(msg => ({
|
||||||
senderName: msg.senderName,
|
senderName: msg.senderName,
|
||||||
isGroupMsg: msg.groupId !== undefined,
|
isGroupMsg: msg.groupId !== undefined,
|
||||||
msg: msg.msg.map(m => ({
|
msg: msg.msg.map(m => ({
|
||||||
preview: m.valid? m.toPreview() : "[该消息类型暂不支持查看]",
|
preview: m.valid? m.toPreview() : "[该消息类型暂不支持查看]",
|
||||||
}))
|
}))
|
||||||
})));
|
})), source, news, summary, prompt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
export const napCatVersion = '3.1.4';
|
export const napCatVersion = '3.1.5';
|
||||||
|
8
src/core/external/appid.json
vendored
8
src/core/external/appid.json
vendored
@ -50,5 +50,13 @@
|
|||||||
"9.9.16-28788": {
|
"9.9.16-28788": {
|
||||||
"appid": 537249739,
|
"appid": 537249739,
|
||||||
"qua": "V1_WIN_NQ_9.9.16_28788_GW_B"
|
"qua": "V1_WIN_NQ_9.9.16_28788_GW_B"
|
||||||
|
},
|
||||||
|
"9.9.16-28971":{
|
||||||
|
"appid": 537249775,
|
||||||
|
"qua": "V1_WIN_NQ_9.9.16_28971_GW_B"
|
||||||
|
},
|
||||||
|
"3.2.13-28971": {
|
||||||
|
"appid": 537249848,
|
||||||
|
"qua": "V1_LNX_NQ_3.2.13_28971_GW_B"
|
||||||
}
|
}
|
||||||
}
|
}
|
14
src/core/external/offset.json
vendored
14
src/core/external/offset.json
vendored
@ -19,8 +19,20 @@
|
|||||||
"send": "A0CEC20",
|
"send": "A0CEC20",
|
||||||
"recv": "A0D2520"
|
"recv": "A0D2520"
|
||||||
},
|
},
|
||||||
"3.2.13-28788-arm64":{
|
"3.2.13-28788-arm64": {
|
||||||
"send": "6E91018",
|
"send": "6E91018",
|
||||||
"recv": "6E94850"
|
"recv": "6E94850"
|
||||||
|
},
|
||||||
|
"9.9.16-28971-x64": {
|
||||||
|
"send": "38079F0",
|
||||||
|
"recv": "380BE24"
|
||||||
|
},
|
||||||
|
"3.2.13-28971-x64": {
|
||||||
|
"send": "A0CEF60",
|
||||||
|
"recv": "A0D2860"
|
||||||
|
},
|
||||||
|
"3.2.12-28971-arm64": {
|
||||||
|
"send": "6E91318",
|
||||||
|
"recv": "6E94B50"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -117,7 +117,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
|||||||
if (getSpecialMsgNum(payload, OB11MessageDataType.node)) {
|
if (getSpecialMsgNum(payload, OB11MessageDataType.node)) {
|
||||||
const packetMode = this.core.apis.PacketApi.available;
|
const packetMode = this.core.apis.PacketApi.available;
|
||||||
const returnMsgAndResId = packetMode
|
const returnMsgAndResId = packetMode
|
||||||
? await this.handleForwardedNodesPacket(peer, messages as OB11MessageNode[])
|
? await this.handleForwardedNodesPacket(peer, messages as OB11MessageNode[], payload.source, payload.news, payload.summary, payload.prompt)
|
||||||
: await this.handleForwardedNodes(peer, messages as OB11MessageNode[]);
|
: await this.handleForwardedNodes(peer, messages as OB11MessageNode[]);
|
||||||
if (returnMsgAndResId.message) {
|
if (returnMsgAndResId.message) {
|
||||||
const msgShortId = MessageUnique.createUniqueMsgId({
|
const msgShortId = MessageUnique.createUniqueMsgId({
|
||||||
@ -146,7 +146,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: recursively handle forwarded nodes
|
// TODO: recursively handle forwarded nodes
|
||||||
private async handleForwardedNodesPacket(msgPeer: Peer, messageNodes: OB11MessageNode[]): Promise<{
|
private async handleForwardedNodesPacket(msgPeer: Peer, messageNodes: OB11MessageNode[], source?: string, news?: { text: string }[], summary?: string, prompt?: string): Promise<{
|
||||||
message: RawMessage | null,
|
message: RawMessage | null,
|
||||||
res_id?: string
|
res_id?: string
|
||||||
}> {
|
}> {
|
||||||
@ -172,7 +172,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const resid = await this.core.apis.PacketApi.sendUploadForwardMsg(packetMsg, msgPeer.chatType === ChatType.KCHATTYPEGROUP ? +msgPeer.peerUid : 0);
|
const resid = await this.core.apis.PacketApi.sendUploadForwardMsg(packetMsg, msgPeer.chatType === ChatType.KCHATTYPEGROUP ? +msgPeer.peerUid : 0);
|
||||||
const forwardJson = ForwardMsgBuilder.fromPacketMsg(resid, packetMsg);
|
const forwardJson = ForwardMsgBuilder.fromPacketMsg(resid, packetMsg, source, news, summary, prompt);
|
||||||
const finallySendElements = {
|
const finallySendElements = {
|
||||||
elementType: ElementType.ARK,
|
elementType: ElementType.ARK,
|
||||||
elementId: "",
|
elementId: "",
|
||||||
|
@ -221,6 +221,10 @@ export interface OB11PostSendMsg {
|
|||||||
message: OB11MessageMixType;
|
message: OB11MessageMixType;
|
||||||
messages?: OB11MessageMixType; // 兼容 go-cqhttp
|
messages?: OB11MessageMixType; // 兼容 go-cqhttp
|
||||||
auto_escape?: boolean | string
|
auto_escape?: boolean | string
|
||||||
|
source?: string,
|
||||||
|
news?: { text: string }[],
|
||||||
|
summary?: string,
|
||||||
|
prompt?: string
|
||||||
}
|
}
|
||||||
export interface OB11PostContext {
|
export interface OB11PostContext {
|
||||||
message_type?: 'private' | 'group'
|
message_type?: 'private' | 'group'
|
||||||
|
@ -30,7 +30,7 @@ async function onSettingWindowCreated(view: Element) {
|
|||||||
SettingItem(
|
SettingItem(
|
||||||
'<span id="napcat-update-title">Napcat</span>',
|
'<span id="napcat-update-title">Napcat</span>',
|
||||||
undefined,
|
undefined,
|
||||||
SettingButton('V3.1.4', 'napcat-update-button', 'secondary'),
|
SettingButton('V3.1.5', 'napcat-update-button', 'secondary'),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
SettingList([
|
SettingList([
|
||||||
|
@ -164,7 +164,7 @@ async function onSettingWindowCreated(view) {
|
|||||||
SettingItem(
|
SettingItem(
|
||||||
'<span id="napcat-update-title">Napcat</span>',
|
'<span id="napcat-update-title">Napcat</span>',
|
||||||
void 0,
|
void 0,
|
||||||
SettingButton("V3.1.4", "napcat-update-button", "secondary")
|
SettingButton("V3.1.5", "napcat-update-button", "secondary")
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
SettingList([
|
SettingList([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user