From 88cbb782d634f91b79da6506b7cec1b8142cdbb2 Mon Sep 17 00:00:00 2001
From: stapxs <1007028430.stapx@gmail.com>
Date: Fri, 23 Aug 2024 18:30:57 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E6=98=AF=20BUG=20=E6=80=BB=E4=BC=9A?=
=?UTF-8?q?=E8=A2=AB=E4=BF=AE=E6=8E=89=E7=9A=84.png=20:art:=20=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=20options=20=E4=BF=9D=E5=AD=98=E8=AF=BB=E5=8F=96?=
=?UTF-8?q?=E9=80=BB=E8=BE=91=E5=AF=B9=20object=20=E7=9A=84=E5=A4=84?=
=?UTF-8?q?=E7=90=86=20:bug:=20=E6=B7=BB=E5=8A=A0=E5=95=86=E5=9F=8E?=
=?UTF-8?q?=E8=A1=A8=E6=83=85=E5=90=8E=E5=88=97=E8=A1=A8=E6=9C=AA=E8=A2=AB?=
=?UTF-8?q?=E5=88=B7=E6=96=B0=20:bug:=20=E5=90=8E=E7=AB=AF=E8=BF=9E?=
=?UTF-8?q?=E6=8E=A5=E6=A8=A1=E5=BC=8F=E4=B8=8B=E5=89=8D=E7=AB=AF=E5=88=B7?=
=?UTF-8?q?=E6=96=B0=E5=90=8E=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E9=87=8D?=
=?UTF-8?q?=E8=BF=9E=20:bug:=20=E6=B6=88=E6=81=AF=E8=8F=9C=E5=8D=95?=
=?UTF-8?q?=E5=9C=A8=E6=B7=BB=E5=8A=A0=E5=9B=9E=E5=BA=94=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E5=90=8E=E5=8F=B3=E4=BE=A7=E5=87=BA=E7=95=8C=E5=88=A4=E6=96=AD?=
=?UTF-8?q?=E9=94=99=E8=AF=AF=EF=BC=8C=E7=94=B1=20b1c880b=20=E6=8D=9F?=
=?UTF-8?q?=E5=9D=8F=20:bug:=20=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E5=8F=B3=E5=87=BB=E8=8F=9C=E5=8D=95=E5=BA=95=E9=83=A8=E5=87=BA?=
=?UTF-8?q?=E7=95=8C=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 1 +
src/assets/css/view.css | 2 +-
src/components/FacePan.vue | 8 ++++++--
src/function/electron/connector.ts | 5 +++++
src/function/option.ts | 13 +++++--------
src/pages/Chat.vue | 21 ++++++++++++---------
src/pages/Messages.vue | 22 ++++++++++++++++++++++
7 files changed, 52 insertions(+), 20 deletions(-)
diff --git a/package.json b/package.json
index 964c0171..a6db6136 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
+ "clear": "rm -rf dist && rm -rf dist_electron",
"lint:fix": "vue-cli-service lint --fix",
"electron:build": "vue-cli-service electron:build",
"electron:serve": "vue-cli-service electron:serve",
diff --git a/src/assets/css/view.css b/src/assets/css/view.css
index 9eb2c255..55495ce7 100644
--- a/src/assets/css/view.css
+++ b/src/assets/css/view.css
@@ -505,7 +505,7 @@ textarea:focus {
padding: 10px;
}
.msg-menu-body.topOut {
- transition: transform .1s, margin-top .1s;
+ transition: transform .1s, margin-top .2s;
}
.msg-menu-body.show {
transform: scaleY(1);
diff --git a/src/components/FacePan.vue b/src/components/FacePan.vue
index 5a9d8387..50fa1088 100644
--- a/src/components/FacePan.vue
+++ b/src/components/FacePan.vue
@@ -84,13 +84,13 @@ export default defineComponent({
},
getStoreFaceList() {
- this.storeFace = JSON.parse(decodeURIComponent(Option.getRaw('store_face') || '[]'))
+ this.storeFace = Option.get('store_face') ?? []
},
removeMface(data: any) {
const index = this.storeFace.findIndex((face) => face.emoji_id === data.emoji_id)
if (index !== -1) {
this.storeFace.splice(index, 1)
- Option.save('store_face', JSON.stringify(this.storeFace))
+ Option.save('store_face', this.storeFace)
}
}
},
@@ -104,6 +104,10 @@ export default defineComponent({
}
}
this.getStoreFaceList()
+ // 监听表情商店列表
+ this.$watch(() => runtimeData.sysConfig.store_face.length, () => {
+ this.getStoreFaceList()
+ })
}
})
diff --git a/src/function/electron/connector.ts b/src/function/electron/connector.ts
index 7ab9f7a8..b3ded329 100644
--- a/src/function/electron/connector.ts
+++ b/src/function/electron/connector.ts
@@ -37,6 +37,11 @@ export class Connector {
if(!this.websocket) {
this.logger.info('正在连接到:', url)
this.websocket = new WebSocket(url + '?access_token=' + token)
+ } else {
+ // 如果前端发起了连接请求,说明前端在未连接状态;断开已有连接,重新连接
+ // PS:这种情况一般不会发生,大部分情况是因为 debug 模式前端热重载导致的
+ this.websocket.close(1000)
+ this.connect(url, token)
}
this.websocket.onopen = () => {
diff --git a/src/function/option.ts b/src/function/option.ts
index 8cd7d1f5..367db13c 100644
--- a/src/function/option.ts
+++ b/src/function/option.ts
@@ -318,16 +318,13 @@ function loadOptData(data: { [key: string]: any }) {
options[key] = value === 'true'
} else if (value === 'null') {
options[key] = null
- } else if (key == 'top_info') {
- // 特殊处理 top_info
- try {
- options[key] = JSON.parse(decodeURIComponent(value))
- } catch (e) {
- // 无法解析的数据,初始化为空对象
- options[key] = {}
- }
} else if(typeof value == 'string') {
options[key] = decodeURIComponent(value)
+ try {
+ options[key] = JSON.parse(options[key])
+ } catch(e: unknown) {
+ //
+ }
} else {
options[key] = value
}
diff --git a/src/pages/Chat.vue b/src/pages/Chat.vue
index f0862c11..6f5d3a07 100644
--- a/src/pages/Chat.vue
+++ b/src/pages/Chat.vue
@@ -129,7 +129,7 @@
-
{{ selectedMsg === null ? '' : (selectedMsg.sender.nickname + ': ' + (selectedMsg.raw_message ?? fun.getMsgRawTxt(selectedMsg.message)))
+ {{ selectedMsg === null ? '' : (selectedMsg.sender.nickname + ': ' + fun.getMsgRawTxt(selectedMsg.message))
}}
@@ -799,10 +799,15 @@ export default defineComponent({
menu.style.marginLeft = pointX + 'px'
menu.style.marginTop = pointY + 'px'
// 出界判定
- const menuWidth = menu.clientWidth
+ let menuWidth = menu.clientWidth
+ if(this.tags.menuDisplay.showRespond) {
+ // 如果有回应功能,获取回应功能的宽度;它比菜单长
+ const item = menu.children[0] as HTMLDivElement
+ menuWidth = item.clientWidth
+ }
const msgWidth = msg.offsetWidth
if (pointX + menuWidth > msgWidth + 27) {
- menu.style.marginLeft = (msgWidth + 27 - menuWidth) + 'px'
+ menu.style.marginLeft = (msgWidth + 7 - menuWidth) + 'px'
}
// 显示菜单
this.tags.showMsgMenu = true
@@ -811,12 +816,11 @@ export default defineComponent({
// 出界判定
const menuHeight = menu.clientHeight
const bodyHeight = document.body.clientHeight
- if (pointY + menuHeight > bodyHeight + 10) {
+ if (pointY + menuHeight > bodyHeight - 20) {
menu.classList.add('topOut')
menu.style.marginTop = (bodyHeight - menuHeight - 10) + 'px'
- // menu.classList.remove('topOut')
}
- }, 90)
+ }, 100)
// 设置消息背景
this.tags.openedMenuMsg = msg
msg.style.background = '#00000008'
@@ -971,8 +975,7 @@ export default defineComponent({
const msg = this.selectedMsg
if (msg !== null) {
const mface = msg.message[0]
- const storeFace = option.get('store_face') ?? '[]'
- const storeFaceList = JSON.parse(storeFace)
+ const storeFaceList = option.get('store_face') ?? []
const face = storeFaceList.find((item: any) => {
return item.emoji_package_id == mface.emoji_package_id &&
item.emoji_id == mface.emoji_id
@@ -981,7 +984,7 @@ export default defineComponent({
popInfo.add(PopType.INFO, this.$t('pop_chat_msg_menu_store_face_exist'))
} else {
storeFaceList.push(mface)
- option.save('store_face', JSON.stringify(storeFaceList))
+ option.save('store_face', storeFaceList)
popInfo.add(PopType.INFO, this.$t('pop_chat_msg_menu_store_face_success'))
}
}
diff --git a/src/pages/Messages.vue b/src/pages/Messages.vue
index 34c5eb15..535a801c 100644
--- a/src/pages/Messages.vue
+++ b/src/pages/Messages.vue
@@ -212,6 +212,12 @@ export default defineComponent({
* @param id 选择的菜单 ID
*/
listMenuClose(id: string) {
+ const menu = document.getElementById('msg-menu-view-messages-menu')?.children[1] as HTMLDivElement
+ if(menu) {
+ setTimeout(() => {
+ menu.style.transition = 'transform .1s'
+ }, 200)
+ }
this.listMenu.show = false
const item = this.menu.select
if(id) {
@@ -345,6 +351,22 @@ export default defineComponent({
}
this.listMenu = info
this.menu.select = item
+ // 出界处理
+ setTimeout(() => {
+ const menu = document.getElementById('msg-menu-view-messages-menu')?.children[1] as HTMLDivElement
+ if(menu) {
+ menu.style.transition = 'margin .2s, transform .1s'
+ const hight = menu.clientHeight
+ const top = menu.getBoundingClientRect().top
+ const docHight = document.documentElement.clientHeight
+ // 出界高度
+ const dtHight = ( hight + top ) - docHight + 20
+ if(dtHight > 0) {
+ menu.style.marginTop = (docHight - hight - 30) + 'px'
+ }
+
+ }
+ }, 100)
},
showMenuStart(event: TouchEvent, item: (UserFriendElem & UserGroupElem)) {
From 909e01deaa4bb5dfdfa9e95c01a182ad6686a354 Mon Sep 17 00:00:00 2001
From: stapxs <1007028430.stapx@gmail.com>
Date: Tue, 27 Aug 2024 17:58:58 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E7=8B=82=E8=BD=B0=E6=BB=A5=E7=82=B8=20?=
=?UTF-8?q?=E2=9C=A8=20=E6=94=AF=E6=8C=81=E7=A6=81=E8=A8=80=E7=8A=B6?=
=?UTF-8?q?=E6=80=81=E6=98=BE=E7=A4=BA=E5=92=8C=E5=AF=B9=E5=BA=94=E7=9A=84?=
=?UTF-8?q?=E8=BE=93=E5=85=A5=E6=A1=86=E7=A6=81=E7=94=A8=20<-=20#121=20?=
=?UTF-8?q?=E2=9C=A8=20=E5=A2=9E=E5=8A=A0=E4=BA=86=E9=80=80=E5=87=BA?=
=?UTF-8?q?=E7=BE=A4=E7=BB=84=E6=8C=89=E9=92=AE=20<-=20#121=20=E2=9C=A8=20?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=E9=9D=9E=E5=88=86=E9=A1=B5=E6=A8=A1=E5=BC=8F?=
=?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=B6=88=E6=81=AF=20<-=20#120=20=F0=9F=8E=A8?=
=?UTF-8?q?=20=E5=B0=86=20UserFriendElem=20=E5=92=8C=20UserGroupElem=20?=
=?UTF-8?q?=E6=8A=BD=E7=A6=BB=E5=87=BA=E4=BA=86=E7=88=B6=E7=B1=BB=EF=BC=8C?=
=?UTF-8?q?=E7=BA=A0=E6=AD=A3=E4=BA=86=E7=B1=BB=E5=85=83=E7=B4=A0=E5=86=99?=
=?UTF-8?q?=E5=8F=8D=E4=BA=86=E7=9A=84=E9=97=AE=E9=A2=98=20=F0=9F=92=84=20?=
=?UTF-8?q?=E9=87=8D=E7=BD=AE=E4=BA=86=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?=
=?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F=20=F0=9F=92=84=20?=
=?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E5=A4=B4=E5=83=8F=E6=9C=AA=E4=B8=8A=E4=B8=8B=E5=B1=85=E4=B8=AD?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20=F0=9F=90=9B=20=E4=BF=AE=E6=AD=A3?=
=?UTF-8?q?=E5=90=8E=E7=AB=AF=E8=BF=9E=E6=8E=A5=E6=A8=A1=E5=BC=8F=20SSL=20?=
=?UTF-8?q?=E5=8D=8F=E8=AE=AE=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=20=F0=9F=90=9B=20=E4=BF=AE=E6=AD=A3=E5=9C=A8=E5=A4=84=E7=90=86?=
=?UTF-8?q?=E7=B3=BB=E7=BB=9F=E9=80=9A=E7=9F=A5=E5=90=8E=E6=9C=AA=E5=88=B7?=
=?UTF-8?q?=E6=96=B0=E5=88=97=E8=A1=A8=E7=9A=84=E9=97=AE=E9=A2=98=20<-=20#?=
=?UTF-8?q?121?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/assets/css/append/append_new.css | 16 ++++
src/assets/css/chat.css | 58 ++++++++++++-
src/assets/css/msg.css | 4 +
src/assets/css/view.css | 2 +
src/assets/l10n/en-US.json | 2 -
src/assets/l10n/zh-CAT.json | 2 -
src/assets/l10n/zh-CN.json | 16 +++-
src/assets/l10n/zh-TW.json | 2 -
src/assets/l10n/zh-YUE.json | 2 -
src/assets/pathMap/NapCat.Onebot.yaml | 19 +++++
src/components/NoticeBody.vue | 68 +++++++++++-----
src/function/connect.ts | 3 +
src/function/electron/connector.ts | 15 ++--
src/function/elements/information.ts | 26 +++---
src/function/msg.ts | 54 +++++++++++--
src/function/utils/appUtil.ts | 5 +-
src/function/utils/systemUtil.ts | 25 ++++++
src/pages/Chat.vue | 12 +--
.../Chat\345\274\271\345\271\225.vue" | 5 +-
.../Chat\347\273\210\347\253\257.vue" | 5 +-
src/pages/chat-view/SystemNotice.vue | 81 +++++++++----------
src/pages/options/OptDev.vue | 4 +-
src/pages/options/OptInfo.vue | 41 ++++++++++
24 files changed, 348 insertions(+), 121 deletions(-)
diff --git a/package.json b/package.json
index a6db6136..e2b793b4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "stapxs-qq-lite",
- "version": "2.8.2",
+ "version": "2.8.4",
"private": false,
"author": "Stapx Steve [林槐]",
"description": "一个兼容 OneBot 的非官方网页版 QQ 客户端,使用 Vue 重制的全新版本。",
diff --git a/src/assets/css/append/append_new.css b/src/assets/css/append/append_new.css
index 9c02066b..ece2a7ef 100644
--- a/src/assets/css/append/append_new.css
+++ b/src/assets/css/append/append_new.css
@@ -78,6 +78,9 @@
height: 30px;
width: 30px;
}
+.friend-body > div:nth-child(1) {
+ height: 34px;
+}
.friend-body > div p {
font-size: 0.8rem;
}
@@ -687,6 +690,19 @@
font-size: 0.8rem;
}
+.sys-not-list > div > div:first-child img {
+ width: 40px;
+ height: 40px;
+}
+.sys-not-list > div > div:first-child a {
+ font-size: 0.75rem;
+}
+.sys-not-list > div > div:last-child button {
+ width: 70px;
+ height: 30px;
+ font-size: 0.75rem;
+}
+
@media (max-width: 700px) {
.main-body > ul {
background: var(--color-card-2) !important;
diff --git a/src/assets/css/chat.css b/src/assets/css/chat.css
index 1d122ab3..1df4e935 100644
--- a/src/assets/css/chat.css
+++ b/src/assets/css/chat.css
@@ -207,6 +207,15 @@ input {
width: 100%;
border: 0;
}
+.chat-pan > div.more > div:nth-child(2) > div > form > input:disabled,
+.chat-pan > div.more > div:nth-child(2) > div > form > textarea:disabled {
+ background: var(--color-card);
+ outline: 1px solid var(--color-card-2);
+ color: var(--color-font-2);
+ opacity: 0.7;
+ text-align: center;
+ font-size: 0.8rem;
+}
.chat-pan > div.more > div:nth-child(2) > div > div {
border-radius: 7px;
min-height: 40px;
@@ -281,11 +290,58 @@ input {
}
.sys-not-list {
+ margin-top: 10px;
+}
+.sys-not-list > div {
background: var(--color-card-1);
+ margin-bottom: 10px;
border-radius: 7px;
- margin-top: 10px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
padding: 10px;
}
+.sys-not-list > div > div:first-child {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ flex: 1;
+}
+.sys-not-list > div > div:first-child img {
+ width: 50px;
+ height: 50px;
+ border-radius: 7px;
+ border: 2px solid var(--color-card-2);
+ margin-right: 10px;
+}
+.sys-not-list > div > div:first-child div {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: flex-start;
+ text-align: left;
+}
+.sys-not-list > div > div:first-child span {
+ color: var(--color-main);
+ font-weight: bold;
+}
+.sys-not-list > div > div:first-child a {
+ color: var(--color-font);
+ font-size: 0.9rem;
+}
+.sys-not-list > div > div:first-child a:last-child {
+ color: var(--color-font-2);
+}
+.sys-not-list > div > div:last-child button {
+ margin-right: 10px;
+ width: 90px;
+ height: 35px;
+ font-size: 0.9rem;
+}
+.sys-not-list > div > div:last-child button:first-child {
+ background: var(--color-card-2);
+ color: var(--color-font-1);
+}
.more-detail {
transition: height .3s;
diff --git a/src/assets/css/msg.css b/src/assets/css/msg.css
index 0dad8820..ceaa2121 100644
--- a/src/assets/css/msg.css
+++ b/src/assets/css/msg.css
@@ -457,6 +457,10 @@
.note-base > a {
color: var(--color-font);
}
+.note-ban > a {
+ color: var(--color-main);
+ font-weight: bold;
+}
.note-time {
color: var(--color-font-2) !important;
display: block;
diff --git a/src/assets/css/view.css b/src/assets/css/view.css
index 55495ce7..6b706243 100644
--- a/src/assets/css/view.css
+++ b/src/assets/css/view.css
@@ -384,6 +384,7 @@ textarea:focus {
border-radius: 7px;
transform: translate(0, 0);
transition: background .2s, color .2s, transform .2s;
+ align-items: center;
}
.friend-body.active {
background: var(--color-main);
@@ -423,6 +424,7 @@ textarea:focus {
overflow: hidden;
}
.friend-body > div:nth-child(1) {
+ height: 54px;
flex: unset;
width: 4px;
background: var(--color-main);
diff --git a/src/assets/l10n/en-US.json b/src/assets/l10n/en-US.json
index 667d165e..f18fef7b 100644
--- a/src/assets/l10n/en-US.json
+++ b/src/assets/l10n/en-US.json
@@ -215,7 +215,6 @@
"option_account_lnick": "Bio",
"option_account_lnick_tip": "Write something about you here",
"list_system_notice": "System Messages",
- "sys_notice_new_friend_from": "Friend source: ",
"option_dev_debug": "Output debugging info",
"option_dev_debug_tip": "Helps you figure out the version you're on.",
"btn_yes": "OK",
@@ -260,7 +259,6 @@
"chat_chat_info_silence_all_tip": "Mute all members except the owner and admins in the group",
"btn_accept": "Agree",
"btn_reject": "Decline",
- "sys_notice_new_friend": "New friend request",
"sys_notice": "System Messages",
"chat_msg_menu_remove": "Remove from group",
"sys_notice_new_group_nmember": "Join request",
diff --git a/src/assets/l10n/zh-CAT.json b/src/assets/l10n/zh-CAT.json
index 66387239..4052d670 100644
--- a/src/assets/l10n/zh-CAT.json
+++ b/src/assets/l10n/zh-CAT.json
@@ -206,7 +206,6 @@
"option_account_lnick": "爪印",
"option_account_lnick_tip": "小猫咪才没有到处写字的坏心思",
"list_system_notice": "系统猫叫",
- "sys_notice_new_friend_from": "来源:",
"option_dev_debug": "输出调试信息",
"option_dev_debug_tip": "到底用的什么版本呢 ……",
"btn_yes": "确定",
@@ -251,7 +250,6 @@
"chat_chat_info_silence_all_tip": "你们是不整点活不开心是吧",
"btn_accept": "同意",
"btn_reject": "拒绝",
- "sys_notice_new_friend": "新猫友",
"sys_notice": "系统猫话",
"chat_msg_menu_remove": "移出猫圈",
"sys_notice_new_group_nmember": "入圈申请",
diff --git a/src/assets/l10n/zh-CN.json b/src/assets/l10n/zh-CN.json
index cad09ba6..b1f5cb7c 100644
--- a/src/assets/l10n/zh-CN.json
+++ b/src/assets/l10n/zh-CN.json
@@ -205,7 +205,6 @@
"option_account_lnick": "签名",
"option_account_lnick_tip": "啊吧啊吧(智慧的眼神)",
"list_system_notice": "系统通知",
- "sys_notice_new_friend_from": "来源:",
"option_dev_debug": "输出调试信息",
"option_dev_debug_tip": "到底用的什么版本呢 ……",
"btn_yes": "确定",
@@ -251,7 +250,6 @@
"btn_accept": "同意",
"btn_reject": "拒绝",
"btn_reflush": "刷新页面",
- "sys_notice_new_friend": "新朋友",
"sys_notice": "系统消息",
"chat_msg_menu_remove": "移出群聊",
"sys_notice_new_group_nmember": "入群申请",
@@ -343,6 +341,20 @@
"log_con_backend": "使用后端连接模式",
"list_menu_notice": "开启通知",
"list_menu_notice_close": "关闭通知",
+ "chat_send_msg_watermark_ban": "已被禁言至:{time}",
+ "note_ban_you": "禁言了你",
+ "note_ban_others": "管理员禁言了",
+ "note_unban": "管理员解除了 {name} 的禁言",
+ "days": "天",
+ "hours": "小时",
+ "minutes": "分钟",
+ "seconds": "秒",
+ "you": "你",
+ "exit_group": "退出群聊",
+ "trust_leave_group": "确定要退出群聊吗?",
+ "sys_notice_message": "留言",
+ "sys_notice_new_friend": "请求加为好友",
+ "sys_notice_invite_group": "邀请你加入群聊",
"menu_about": "关于",
"menu_update": "检查更新…",
diff --git a/src/assets/l10n/zh-TW.json b/src/assets/l10n/zh-TW.json
index 3f16ff40..e8ce9ec2 100644
--- a/src/assets/l10n/zh-TW.json
+++ b/src/assets/l10n/zh-TW.json
@@ -209,7 +209,6 @@
"option_account_lnick": "簽名檔",
"option_account_lnick_tip": "啊吧啊吧(充滿智慧的眼神)",
"list_system_notice": "系統通知",
- "sys_notice_new_friend_from": "聯絡人來源:",
"option_dev_debug": "輸出偵錯資訊",
"option_dev_debug_tip": "我在用的是什麼版本?",
"btn_yes": "確認",
@@ -254,7 +253,6 @@
"chat_chat_info_silence_all_tip": "禁止群組所有者和管理員以外的群組成員在群組內傳送訊息",
"btn_accept": "同意",
"btn_reject": "拒絕",
- "sys_notice_new_friend": "新的聯絡人請求",
"sys_notice": "系統訊息",
"chat_msg_menu_remove": "移出群組",
"sys_notice_new_group_nmember": "入群請求",
diff --git a/src/assets/l10n/zh-YUE.json b/src/assets/l10n/zh-YUE.json
index 0bc64232..d22bdd22 100644
--- a/src/assets/l10n/zh-YUE.json
+++ b/src/assets/l10n/zh-YUE.json
@@ -215,7 +215,6 @@
"option_account_lnick": "Bio",
"option_account_lnick_tip": "自我介紹資訊",
"list_system_notice": "系統通知",
- "sys_notice_new_friend_from": "Friend 來源:",
"option_dev_debug": "輸出",
"option_dev_debug_tip": "我喺度用緊乜嘢啊……",
"btn_yes": "確認",
@@ -260,7 +259,6 @@
"chat_chat_info_silence_all_tip": "開啓後除咗 group owner 同管理員之外嘅其他人都唔可以講嘢",
"btn_accept": "同意",
"btn_reject": "拒絕",
- "sys_notice_new_friend": "新嘅 friend 請求",
"sys_notice": "系統訊息",
"chat_msg_menu_remove": "踢出群組",
"sys_notice_new_group_nmember": "入群請求",
diff --git a/src/assets/pathMap/NapCat.Onebot.yaml b/src/assets/pathMap/NapCat.Onebot.yaml
index 6c684595..670c8597 100644
--- a/src/assets/pathMap/NapCat.Onebot.yaml
+++ b/src/assets/pathMap/NapCat.Onebot.yaml
@@ -45,6 +45,7 @@ message_list:
name: get_group_msg_history
private_name: get_friend_msg_history
source: $.data.messages[*]
+ pageed: false # 是否支持分页(id + count 获取)
type: $.data
message_type:
user: private
@@ -115,6 +116,24 @@ group_essence:
add_digest_nick: /add_digest_nick
add_digest_time: /add_digest_time
is_end: $.data.is_end
+# 获取群成员信息
+group_member_info:
+ name: get_group_member_info
+ source: $.data
+ list:
+ group_id: /group_id
+ user_id: /user_id
+ nickname: /nickname
+ card: /card
+ sex: /sex
+ age: /age
+ join_time: /join_time
+ last_sent_time: /last_sent_time
+ is_robot: /is_robot
+ shut_up_timestamp: /shut_up_timestamp
+# 退出群聊
+leave_group:
+ name: set_group_leave
# 获取收藏表情
roaming_stamp:
name: fetch_custom_face
diff --git a/src/components/NoticeBody.vue b/src/components/NoticeBody.vue
index 5fec59ba..89e6716d 100644
--- a/src/components/NoticeBody.vue
+++ b/src/components/NoticeBody.vue
@@ -14,6 +14,22 @@