Browse Source

优化部分内容

Pchen. 23 hours ago
parent
commit
1466a573c4
3 changed files with 20 additions and 7 deletions
  1. 6 0
      config.example.json
  2. 2 2
      lib/AIChat/ConversationService.js
  3. 12 5
      plugin/OneBot/OneBotV11.js

+ 6 - 0
config.example.json

@@ -47,6 +47,9 @@
         "reverseWsPort": 15700,
         "reverseWsToken": "YOUR_WS_TOKEN",
         "callbackToken": "YOUR_CALLBACK_TOKEN",
+        "eventClientRole": "Universal",
+        "apiClientRole": "Api",
+        "enableApiWs": true,
         "ticketSenderNickname": "Ticket Bot",
         "selfId": "your-bot-id",
         "botName": "BotName",
@@ -61,6 +64,9 @@
         "reverseWsPort": 15701,
         "reverseWsToken": "YOUR_AI_CHAT_WS_TOKEN",
         "callbackToken": "YOUR_AI_CHAT_CALLBACK_TOKEN",
+        "eventClientRole": "Universal",
+        "apiClientRole": "Api",
+        "enableApiWs": true,
         "chatSenderNickname": "Xiaoyan Assistant Web User",
         "selfId": "your-chat-bot-id",
         "botName": "Xiaoyan Assistant",

+ 2 - 2
lib/AIChat/ConversationService.js

@@ -113,7 +113,7 @@ class ConversationService {
         }
 
         const now = Date.now()
-        const safeTitle = normalizeText(title, 80) || '小妍助理对话'
+        const safeTitle = normalizeText(title, 80) || '对话'
         const conversationNo = await generateConversationNo()
         const result = await db.query(
             `INSERT INTO ai_chat_conversation
@@ -199,7 +199,7 @@ class ConversationService {
             [conversationId, uuid, text, JSON.stringify(imgs), now, now]
         )
         const preview = buildPreview(text, imgs)
-        const title = conv.title === '小妍助理对话' && preview ? preview.slice(0, 40) : conv.title
+        const title = conv.title === '对话' && preview ? preview.slice(0, 40) : conv.title
         await db.query(
             'UPDATE ai_chat_conversation SET title = ?, last_message_preview = ?, last_message_time = ?, update_time = ? WHERE id = ?',
             [title, preview, now, now, conversationId]

+ 12 - 5
plugin/OneBot/OneBotV11.js

@@ -67,6 +67,9 @@ function getOneBotConfig(kind = BOT_KIND_WORKORDER) {
         reverseWsPath: onebot.reverseWsPath || '',
         reverseWsToken: onebot.reverseWsToken || '',
         callbackToken: onebot.callbackToken || '',
+        eventClientRole: onebot.eventClientRole || 'Universal',
+        apiClientRole: onebot.apiClientRole || 'Api',
+        enableApiWs: onebot.enableApiWs !== false,
         ticketSenderNickname: onebot.ticketSenderNickname || defaults.senderNickname,
         chatSenderNickname: onebot.chatSenderNickname || onebot.ticketSenderNickname || defaults.senderNickname,
         selfId: onebot.selfId || '',
@@ -166,8 +169,8 @@ async function connectReverseWs(kind = BOT_KIND_WORKORDER) {
     if (!selfIdStr) throw new Error(`${getBotLabel(kind)} selfId is empty`)
 
     const headers = {
-        'User-Agent': `runforge/1.0 (${kind}-onebot-v11-reverse-ws-client)`,
-        'X-Client-Role': `${kind}:event`,
+        'User-Agent': 'runforge/1.0 (OneBot-v11-reverse-ws-client)',
+        'X-Client-Role': onebot.eventClientRole,
         'X-Self-ID': selfIdStr
     }
     if (onebot.reverseWsToken) headers.Authorization = `Bearer ${onebot.reverseWsToken}`
@@ -251,8 +254,8 @@ async function connectApiReverseWs(kind = BOT_KIND_WORKORDER) {
     if (!selfIdStr) throw new Error(`${getBotLabel(kind)} API ws selfId is empty`)
 
     const headers = {
-        'User-Agent': `runforge/1.0 (${kind}-onebot-v11-reverse-ws-api-client)`,
-        'X-Client-Role': `${kind}:api`,
+        'User-Agent': 'runforge/1.0 (OneBot-v11-reverse-ws-api-client)',
+        'X-Client-Role': onebot.apiClientRole,
         'X-Self-ID': selfIdStr
     }
     if (onebot.reverseWsToken) headers.Authorization = `Bearer ${onebot.reverseWsToken}`
@@ -563,7 +566,11 @@ async function initOneBotKind(kind) {
     }
 
     await connectReverseWs(kind)
-    await connectApiReverseWs(kind)
+    if (onebot.enableApiWs) {
+        await connectApiReverseWs(kind)
+    } else {
+        logger.info(`${getBotLabel(kind)} API ws disabled by config`)
+    }
     return true
 }