From 1615a3b24893a5945d35708ff3b6501aba148688 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 00:38:12 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20=E5=8A=A8=E6=80=81=E6=8B=89?= =?UTF-8?q?=E5=8F=96signserver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/im_connections/index.ts | 19 ++ src/components/PageConnectInfoItems.vue | 274 ++++++++++-------------- 2 files changed, 127 insertions(+), 166 deletions(-) diff --git a/src/api/im_connections/index.ts b/src/api/im_connections/index.ts index a664730..82295a1 100644 --- a/src/api/im_connections/index.ts +++ b/src/api/im_connections/index.ts @@ -20,6 +20,13 @@ export function postGoCqHttpRelogin(id: string) { }); } +export function getLagrangeSignInfo() { + return request<{ result: true; data: SignInfo[] } | { result: false; err: string }>( + 'get', + 'get_lgr_signinfo', + ); +} + export function postAddGocq( account: string, password: string, @@ -370,3 +377,15 @@ type ServerConfig = { key: string; authorization: string; }; +interface SignServer { + name: string; + url: string; + latency: number; + selected: boolean; +} +export interface SignInfo { + version: string; + appinfo: []; + servers: SignServer[]; + selected: boolean; +} diff --git a/src/components/PageConnectInfoItems.vue b/src/components/PageConnectInfoItems.vue index 71f8cac..d276090 100644 --- a/src/components/PageConnectInfoItems.vue +++ b/src/components/PageConnectInfoItems.vue @@ -233,19 +233,7 @@
内置客户端
- - - + @@ -259,19 +247,7 @@
内置 gocq
- - - + @@ -701,49 +677,6 @@ - - - - 海豹 - Lagrange - 雪桃代理 - 自定义地址 - - - - - - - - - 25765 - 30366 - - 如果不知道这是什么,请保持默认选中的最新版本 - - - - - - 海豹 - Lagrange - 雪桃代理 - 自定义地址 - - - @@ -920,17 +843,61 @@ label="签名版本" :label-width="formLabelWidth" required> - - - 25765 - 30366 - - 如果不知道这是什么,请保持默认选中的最新版本 - + + + + + + + + + + + + - 下一步 { if (slideIframe.value) { @@ -2061,20 +2030,6 @@ const goStepTwo = async () => { setRecentLogin(); duringRelogin.value = false; - if (form.accountType === 15 || form.accountType === 16) { - switch (form.signServerType) { - case 0: - form.signServerUrl = 'sealdice'; - break; - case 1: - form.signServerUrl = 'lagrange'; - break; - case 2: - form.signServerUrl = 'newProxy'; - break; - } - } - store .addImConnection(form as any) .then(conn => { @@ -2181,60 +2136,6 @@ const doSetData = async () => { ElMessage.success('修改完成,请手动重新登录'); dialogSetDataFormVisible.value = false; }; -const showSetSignServerDialog = async (i: DiceConnection) => { - form.endpoint = i; - const ret = await postSetSignServer(form.endpoint.id, '', false, form.signServerVersion); - if (ret.result) { - form.signServerUrl = ret.signServerUrl; - switch (form.signServerUrl) { - case 'sealdice': - form.signServerType = 0; - form.signServerUrl = ''; - break; - case 'lagrange': - form.signServerType = 1; - form.signServerUrl = ''; - break; - case 'newProxy': - form.signServerType = 2; - form.signServerUrl = ''; - break; - default: - form.signServerType = 3; - break; - } - form.signServerVersion = ret.signServerVersion; - dialogSetSignServerVisible.value = true; - } else { - ElMessage.error(ret.err); - } -}; - -const doSetSignServer = async () => { - switch (form.signServerType) { - case 0: - form.signServerUrl = 'sealdice'; - break; - case 1: - form.signServerUrl = 'lagrange'; - break; - case 2: - form.signServerUrl = 'newProxy'; - break; - } - const ret = await postSetSignServer( - form.endpoint.id, - trim(form.signServerUrl), - true, - form.signServerVersion, - ); - if (ret.result) { - ElMessage.success('修改完成,请手动启用账号以生效'); - } else { - ElMessage.error(ret.err); - } - dialogSetSignServerVisible.value = false; -}; const askSetEnable = async (i: DiceConnection, val: boolean) => { ElMessageBox.confirm('确认修改此账号的在线状态吗?', '警告', { @@ -2344,6 +2245,31 @@ const signConfigTypeChange = (value: any) => { } }; +const signServerVersionChange = () => { + switch (form.signServerVersion) { + case 'custom': + form.signServerUrl = ''; + break; + case '': + signInfos.value.forEach(info => { + if (info.selected) { + form.signServerVersion = info.version; + signServerVersionChange(); + } + }); + break; + default: + signInfos.value.forEach(info => { + if (form.signServerVersion === info.version) { + info.servers.forEach(server => { + form.signServerUrl = server.url; + }); + } + }); + break; + } +}; + const handleSignServerAdd = () => { form.signServerConfig?.signServers?.push({ url: '', @@ -2413,10 +2339,9 @@ const form = reactive({ autoRefreshToken: false, refreshInterval: 40, }, - signServerType: 0, signServerUrl: '', signServerKey: '', - signServerVersion: '30366', + signServerVersion: '', reverseAddr: ':4001', platform: 'QQ', @@ -2424,10 +2349,27 @@ const form = reactive({ export type addImConnectionForm = typeof form; +// 添加一个新账号 const addOne = () => { dialogFormVisible.value = true; form.protocol = 6; form.implementation = 'gocq'; + + // 从后端读取signInfo,动态填充到页面 + (async () => { + form.signServerVersion = ''; + form.signServerUrl = ''; + try { + const res = await getLagrangeSignInfo(); + signInfoLoaded.value = res.result; + if (res.result !== false) { + signInfos.value = res.data; + signServerVersionChange(); + } + } catch { + signInfoLoaded.value = false; + } + })(); }; let timerId: number; From 1455e0496c4fd22bfa5fe261025e545c7788d80f Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 00:40:21 +0800 Subject: [PATCH 02/10] lint --- src/components/PageAbout.vue | 119 +++++++++++++++++++++++++++++------ 1 file changed, 101 insertions(+), 18 deletions(-) diff --git a/src/components/PageAbout.vue b/src/components/PageAbout.vue index 11c295e..56c33f5 100644 --- a/src/components/PageAbout.vue +++ b/src/components/PageAbout.vue @@ -428,25 +428,108 @@
格莱德 - 在4月7日的可靠性测试中,参与构造了让旧版海豹进程崩溃的指令
我来逛街 - 提出很多建议;帮助改进了DND5E同义词列表,增加许多常用说法
-
手册编写
+
手册编写
- 只是另一个ID - JohNSoN - 暮星 - Szzrain - 木落 - 山本健一 - 逐风 - - Bugtower - Monad - 以炽热挥剑 - 檀轶步棋 - 流溪 - PaienNate - - 綮小灰 - 大概不全,下版本纠正…… + 只是另一个ID + JohNSoN + 暮星 + Szzrain + 木落 + 山本健一 + 逐风 + + Bugtower + Monad + 以炽热挥剑 + 檀轶步棋 + 流溪 + PaienNate + + 綮小灰 + 大概不全,下版本纠正……
参考
From f2567e9a2ca1983a192e48cccbe17a13397297f7 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 00:59:05 +0800 Subject: [PATCH 03/10] =?UTF-8?q?fix:=20version=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/index.ts | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/store/index.ts b/src/store/index.ts index 3cc5383..3ef2bd0 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -357,20 +357,12 @@ export const useStore = defineStore('main', { break; case 15: { - let version = ''; - if (['sealdice', 'lagrange', 'newProxy'].includes(signServerUrl)) { - version = signServerVersion; - } - info = await postAddLagrange(account, signServerUrl, version, false); + info = await postAddLagrange(account, signServerUrl, signServerVersion, false); } break; case 16: { - let version = ''; - if (['sealdice', 'lagrange', 'newProxy'].includes(signServerUrl)) { - version = signServerVersion; - } - info = await postAddLagrange(account, signServerUrl, version, true); + info = await postAddLagrange(account, signServerUrl, signServerVersion, true); } break; } From c0e54149e4b8533b494232133fbabdae33027702 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 15:30:10 +0800 Subject: [PATCH 04/10] =?UTF-8?q?feat:=E6=98=BE=E7=A4=BA=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/im_connections/index.ts | 18 ++---- src/components/PageConnectInfoItems.vue | 82 ++++++++++++++----------- src/store/index.ts | 8 ++- 3 files changed, 55 insertions(+), 53 deletions(-) diff --git a/src/api/im_connections/index.ts b/src/api/im_connections/index.ts index 82295a1..a1d635e 100644 --- a/src/api/im_connections/index.ts +++ b/src/api/im_connections/index.ts @@ -177,14 +177,14 @@ export function postAddSatori(platform: string, host: string, port: string, toke export function postAddLagrange( account: string, - signServerUrl: string, + signServerName: string, signServerVersion: string, isGocq: boolean, ) { return request( 'post', 'addLagrange', - { account, signServerUrl, signServerVersion, isGocq }, + { account, signServerName, signServerVersion, isGocq }, 'json', { timeout: 65000, @@ -238,18 +238,6 @@ export function postConnectSetData( }); } -export function postSetSignServer( - id: string, - signServerUrl: string | 'sealdice' | 'lagrange', - w: boolean, - signServerVersion: string, -) { - return request< - | { result: false; err: string } - | { result: true; signServerUrl: string; signServerVersion: string } - >('post', 'set_sign_server', { id, signServerUrl, w, signServerVersion }); -} - export interface DiceConnection { id: string; state: number; @@ -291,6 +279,8 @@ interface AdapterQQ { isReverse: boolean; reverseAddr: string; builtinMode: 'gocq' | 'lagrange' | 'lagrange-gocq'; + signServerVer: string; + signServerName: string; } enum goCqHttpStateCode { Init = 0, diff --git a/src/components/PageConnectInfoItems.vue b/src/components/PageConnectInfoItems.vue index d276090..cf16d35 100644 --- a/src/components/PageConnectInfoItems.vue +++ b/src/components/PageConnectInfoItems.vue @@ -232,8 +232,11 @@
内置客户端
- - + +
{{ i.adapter.signServerVer }}
+
+ +
{{ i.adapter.signServerName }}
@@ -246,8 +249,11 @@
内置 gocq
- - + +
{{ i.adapter.signServerVer }}
+
+ +
{{ i.adapter.signServerName }}
@@ -830,16 +836,7 @@
- - - @@ -879,7 +876,7 @@ @@ -1761,7 +1758,9 @@ (form.accountType === 11 && (form.account === '' || form.reverseAddr === '')) || (form.accountType === 13 && (form.token === '' || form.url === '')) || ((form.accountType === 15 || form.accountType === 16) && - (form.account === '' || form.signServerVersion === '' || form.signServerUrl === '')) + (form.account === '' || + form.signServerVersion === '' || + form.signServerName === '')) " @click="goStepTwo"> 下一步 { if (form.accountType > 0) { dialogFormVisible.value = false; form.step = 1; - form.signServerUrl = ''; + form.signServerName = ''; return; } activities.value = []; @@ -2248,10 +2247,13 @@ const signConfigTypeChange = (value: any) => { const signServerVersionChange = () => { switch (form.signServerVersion) { case 'custom': - form.signServerUrl = ''; + form.signServerName = ''; break; case '': signInfos.value.forEach(info => { + if (signInfos.value.length > 0) { + form.signServerVersion = signInfos.value[0].version; + } if (info.selected) { form.signServerVersion = info.version; signServerVersionChange(); @@ -2261,8 +2263,13 @@ const signServerVersionChange = () => { default: signInfos.value.forEach(info => { if (form.signServerVersion === info.version) { + if (info.servers.length > 0) { + form.signServerName = info.servers[0].name; + } info.servers.forEach(server => { - form.signServerUrl = server.url; + if (server.selected) { + form.signServerName = server.name; + } }); } }); @@ -2270,6 +2277,22 @@ const signServerVersionChange = () => { } }; +const getSignInfo = async () => { + form.signServerVersion = ''; + form.signServerName = ''; + try { + const res = await getLagrangeSignInfo(); + signInfoLoaded.value = res.result; + // 理论上不会有false出现所以前端不进行通知,若出现则为后端代码问题 + if (res.result !== false) { + signInfos.value = res.data; + signServerVersionChange(); + } + } catch { + signInfoLoaded.value = false; + } +}; + const handleSignServerAdd = () => { form.signServerConfig?.signServers?.push({ url: '', @@ -2339,7 +2362,7 @@ const form = reactive({ autoRefreshToken: false, refreshInterval: 40, }, - signServerUrl: '', + signServerName: '', signServerKey: '', signServerVersion: '', @@ -2356,20 +2379,7 @@ const addOne = () => { form.implementation = 'gocq'; // 从后端读取signInfo,动态填充到页面 - (async () => { - form.signServerVersion = ''; - form.signServerUrl = ''; - try { - const res = await getLagrangeSignInfo(); - signInfoLoaded.value = res.result; - if (res.result !== false) { - signInfos.value = res.data; - signServerVersionChange(); - } - } catch { - signInfoLoaded.value = false; - } - })(); + getSignInfo(); }; let timerId: number; diff --git a/src/store/index.ts b/src/store/index.ts index 3ef2bd0..36b7863 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -66,6 +66,8 @@ export interface AdapterQQ { isReverse: boolean; reverseAddr: string; builtinMode: 'gocq' | 'lagrange' | 'lagrange-gocq'; + signServerVer: string; + signServerName: string; } interface TalkLogItem { @@ -286,7 +288,7 @@ export const useStore = defineStore('main', { accessToken, useSignServer, signServerConfig, - signServerUrl, + signServerName, signServerVersion, reverseAddr, onlyQQGuild, @@ -357,12 +359,12 @@ export const useStore = defineStore('main', { break; case 15: { - info = await postAddLagrange(account, signServerUrl, signServerVersion, false); + info = await postAddLagrange(account, signServerName, signServerVersion, false); } break; case 16: { - info = await postAddLagrange(account, signServerUrl, signServerVersion, true); + info = await postAddLagrange(account, signServerName, signServerVersion, true); } break; } From aafe9d37e9d751466db8103e167e9c27d2746874 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 16:10:20 +0800 Subject: [PATCH 05/10] fix: account --- src/components/PageConnectInfoItems.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/PageConnectInfoItems.vue b/src/components/PageConnectInfoItems.vue index cf16d35..56849bf 100644 --- a/src/components/PageConnectInfoItems.vue +++ b/src/components/PageConnectInfoItems.vue @@ -2045,8 +2045,8 @@ const goStepTwo = async () => { }); if (form.accountType > 0) { dialogFormVisible.value = false; + form.account = ''; form.step = 1; - form.signServerName = ''; return; } activities.value = []; From d6ce6a1b21d7c127c1a3308de4a25b0947c34092 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 16:48:44 +0800 Subject: [PATCH 06/10] fix: custom --- src/components/PageConnectInfoItems.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/PageConnectInfoItems.vue b/src/components/PageConnectInfoItems.vue index 56849bf..c3fd1ea 100644 --- a/src/components/PageConnectInfoItems.vue +++ b/src/components/PageConnectInfoItems.vue @@ -858,7 +858,7 @@ :key="info.version" :label="info.version" :value="info.version"> - +
@@ -2246,7 +2246,7 @@ const signConfigTypeChange = (value: any) => { const signServerVersionChange = () => { switch (form.signServerVersion) { - case 'custom': + case '自定义': form.signServerName = ''; break; case '': From b935ad7d2c02ed49c455550fb5059a11a96e1895 Mon Sep 17 00:00:00 2001 From: Fripine Date: Sun, 5 Jan 2025 19:08:07 +0800 Subject: [PATCH 07/10] =?UTF-8?q?feat:=20=E6=8F=90=E7=A4=BA=E6=96=87?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/im_connections/index.ts | 4 ++ src/components/PageConnectInfoItems.vue | 49 +++++++++++++++++++++---- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/api/im_connections/index.ts b/src/api/im_connections/index.ts index a1d635e..853e015 100644 --- a/src/api/im_connections/index.ts +++ b/src/api/im_connections/index.ts @@ -372,10 +372,14 @@ interface SignServer { url: string; latency: number; selected: boolean; + ignored: boolean; + note: string; } export interface SignInfo { version: string; appinfo: []; servers: SignServer[]; selected: boolean; + ignored: boolean; + note: string; } diff --git a/src/components/PageConnectInfoItems.vue b/src/components/PageConnectInfoItems.vue index c3fd1ea..4dd0653 100644 --- a/src/components/PageConnectInfoItems.vue +++ b/src/components/PageConnectInfoItems.vue @@ -853,13 +853,18 @@ :disabled="!signInfoLoaded" @change="signServerVersionChange" placeholder="请选择签名版本"> - + + {{ + signVerWarningText + }} + :value="info.version"> +
+ {{ info.version }} + 最新 +
+ {{ signVerWarningText @@ -911,6 +929,31 @@ +