mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
264cb6bbd2 | ||
![]() |
b7772e867b | ||
![]() |
cc0e77abfb | ||
![]() |
537d1c6f4f | ||
![]() |
80facadd67 | ||
![]() |
ba097dad23 | ||
![]() |
c13c15d046 | ||
![]() |
4f52128a06 |
@@ -28,10 +28,12 @@ NapCatQQ (aka 猫猫框架) 是现代化的基于 NTQQ 的 Bot 协议端实现
|
|||||||
[Telegram Link](https://t.me/+nLZEnpne-pQ1OWFl)
|
[Telegram Link](https://t.me/+nLZEnpne-pQ1OWFl)
|
||||||
|
|
||||||
## 猫猫朋友
|
## 猫猫朋友
|
||||||
感谢 [LLOneBot](https://github.com/LLOneBot/LLOneBot) 提供初始版本基础
|
感谢 [LLOneBot](https://github.com/LLOneBot/LLOneBot) 提供部分参考
|
||||||
|
|
||||||
感谢 [Lagrange](https://github.com/LagrangeDev/Lagrange.Core) 对本项目的大力支持
|
感谢 [Lagrange](https://github.com/LagrangeDev/Lagrange.Core) 对本项目的大力支持
|
||||||
|
|
||||||
|
不过最最重要的 还是需要感谢屏幕前的你哦~
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 约法三章
|
## 约法三章
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
"name": "NapCatQQ",
|
"name": "NapCatQQ",
|
||||||
"slug": "NapCat.Framework",
|
"slug": "NapCat.Framework",
|
||||||
"description": "高性能的 OneBot 11 协议实现",
|
"description": "高性能的 OneBot 11 协议实现",
|
||||||
"version": "2.3.6",
|
"version": "2.3.7",
|
||||||
"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": "2.3.6",
|
"version": "2.3.7",
|
||||||
"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",
|
||||||
|
@@ -1 +1 @@
|
|||||||
export const napCatVersion = '2.3.6';
|
export const napCatVersion = '2.3.7';
|
||||||
|
@@ -292,7 +292,7 @@ export class NTQQGroupApi {
|
|||||||
const listener = this.core.eventWrapper.registerListen(
|
const listener = this.core.eventWrapper.registerListen(
|
||||||
'NodeIKernelGroupListener/onMemberListChange',
|
'NodeIKernelGroupListener/onMemberListChange',
|
||||||
1,
|
1,
|
||||||
500,
|
5000,
|
||||||
(params) => params.sceneId === sceneId,
|
(params) => params.sceneId === sceneId,
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
|
@@ -113,7 +113,7 @@ export class NTQQMsgApi {
|
|||||||
return await this.context.session.getMsgService().getMsgsBySeqList(peer, msgSeqList);
|
return await this.context.session.getMsgService().getMsgsBySeqList(peer, msgSeqList);
|
||||||
}
|
}
|
||||||
async getMsgBySeqExFirstMsg(peer: Peer, rootMsgId: string, replyMsgId: string) {
|
async getMsgBySeqExFirstMsg(peer: Peer, rootMsgId: string, replyMsgId: string) {
|
||||||
let reply = await this.context.session.getMsgService().getSourceOfReplyMsgV2(peer, rootMsgId, replyMsgId);
|
const reply = await this.context.session.getMsgService().getSourceOfReplyMsgV2(peer, rootMsgId, replyMsgId);
|
||||||
console.log(reply);
|
console.log(reply);
|
||||||
}
|
}
|
||||||
async getMsgExBySeq(peer: Peer, msgSeq: string) {
|
async getMsgExBySeq(peer: Peer, msgSeq: string) {
|
||||||
@@ -164,6 +164,18 @@ export class NTQQMsgApi {
|
|||||||
}, msgIds);
|
}, msgIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async recallMsgV2(peer: Peer, msgId: string) {
|
||||||
|
await this.core.eventWrapper.callNormalEventV2(
|
||||||
|
'NodeIKernelMsgService/recallMsg',
|
||||||
|
'NodeIKernelMsgListener/onMsgInfoListUpdate',
|
||||||
|
[peer, [msgId]],
|
||||||
|
() => true,
|
||||||
|
(updatedList) => updatedList.find(m => m.msgId === msgId && m.recallTime !== '0') !== undefined,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
async PrepareTempChat(toUserUid: string, GroupCode: string, nickname: string) {
|
async PrepareTempChat(toUserUid: string, GroupCode: string, nickname: string) {
|
||||||
return this.context.session.getMsgService().prepareTempChat({
|
return this.context.session.getMsgService().prepareTempChat({
|
||||||
chatType: ChatType.KCHATTYPETEMPC2CFROMGROUP,
|
chatType: ChatType.KCHATTYPETEMPC2CFROMGROUP,
|
||||||
|
@@ -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('V2.3.6', 'napcat-update-button', 'secondary'),
|
SettingButton('V2.3.7', '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("V2.3.6", "napcat-update-button", "secondary")
|
SettingButton("V2.3.7", "napcat-update-button", "secondary")
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
SettingList([
|
SettingList([
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="text"] {
|
input[type="password"] {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<form id="token-form" onsubmit="event.preventDefault(); submitToken();">
|
<form id="token-form" onsubmit="event.preventDefault(); submitToken();">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<label for="token-input">Enter Token:</label>
|
<label for="token-input">Enter Token:</label>
|
||||||
<input type="text" id="token-input" required>
|
<input type="password" id="token-input" required>
|
||||||
</div>
|
</div>
|
||||||
<p class="error-message hidden" id="error-message"></p>
|
<p class="error-message hidden" id="error-message"></p>
|
||||||
<button type="submit">Login</button>
|
<button type="submit">Login</button>
|
||||||
|
Reference in New Issue
Block a user