diff --git a/ethend/public/index.html b/ethend/public/index.html
index 42cb285..4b44185 100644
--- a/ethend/public/index.html
+++ b/ethend/public/index.html
@@ -4227,8 +4227,7 @@ function toggleTimelineAutoRefresh(on) {
// ========== 面板: 第三方聊天配置 ==========
-var PLATFORM_FIELDS = {
- qq: [
+var PLATFORM_FIELDS = { obv11: [
{ key: 'mode', label: '连接模式', type: 'select', options: [
{ value: 'client', label: '客户端模式 (主动连接 NapCat)' },
{ value: 'server', label: '服务端模式 (等待 NapCat 连接)' }
@@ -4269,15 +4268,23 @@ var PLATFORM_FIELDS = {
{ key: 'admin_uids', label: '管理员账号ID (多个用逗号分隔)', placeholder: '如: 123456789,987654321' }
]
};
+// Resolve platform fields with obv11→qq fallback
+function getPlatformFields(platformType) {
+ var f = PLATFORM_FIELDS[platformType];
+ if (f) return f;
+ f = PLATFORM_FIELDS["qq"];
+ if (f) return f;
+ return [];
+}
-var PLATFORM_ICONS = { qq: '🔷', telegram: '✈️', webhook: '🪝', wechat: '💚', feishu: '🕊️', discord: '🎮' };
-var PLATFORM_LABELS = { qq: 'QQ', telegram: 'Telegram', webhook: 'Webhook', wechat: 'WeChat', feishu: 'Feishu', discord: 'Discord' };
+var PLATFORM_ICONS = { obv11: '🔷', qq: '🔷', telegram: '✈️', webhook: '🪝', wechat: '💚', feishu: '🕊️', discord: '🎮' };
+var PLATFORM_LABELS = { obv11: 'OBv11', qq: 'QQ', telegram: 'Telegram', webhook: 'Webhook', wechat: 'WeChat', feishu: 'Feishu', discord: 'Discord' };
// 已完整实现的平台 (非桩代码)
-var PLATFORM_REAL = { qq: true, telegram: true, webhook: true };
+var PLATFORM_REAL = { obv11: true, qq: true, telegram: true, webhook: true };
// 静态能力声明 (来自各适配器 Capabilities() 返回值,桥接离线时展示)
var PLATFORM_STATIC_CAPS = {
- qq: { max_message_length: 4500, supports_markdown: false, supports_image: true, supports_voice: false, supports_emoji: true, supports_reaction: false, supports_typing_hint: false, recommend_burst_max: 3 },
+ obv11: { max_message_length: 4500, supports_markdown: false, supports_image: true, supports_voice: false, supports_emoji: true, supports_reaction: false, supports_typing_hint: false, recommend_burst_max: 3 },
telegram: { max_message_length: 4096, supports_markdown: true, supports_image: true, supports_voice: true, supports_emoji: true, supports_reaction: false, supports_typing_hint: true, recommend_burst_max: 5 },
webhook: { max_message_length: 4000, supports_markdown: true, supports_image: true, supports_voice: true, supports_emoji: true, supports_reaction: false, supports_typing_hint: false, recommend_burst_max: 3 },
wechat: { max_message_length: 2048, supports_markdown: false, supports_image: true, supports_voice: true, supports_emoji: false, supports_reaction: false, supports_typing_hint: false, recommend_burst_max: 3 },
@@ -4574,7 +4581,7 @@ function renderChatPlatformDetail(name) {
function renderChatConfigForm(name, cfg) {
var platformType = (cfg && cfg.platform) || name;
- var fields = PLATFORM_FIELDS[platformType] || [];
+ var fields = getPlatformFields(platformType);
var container = document.getElementById('chat-config-form');
if (!container) return;
var currentFields = (cfg && cfg.fields) || {};
@@ -4608,7 +4615,7 @@ function renderChatConfigForm(name, cfg) {
function onCfgFieldChange(name) {
var cfg = (STATE.chatConfigs || []).find(function(c) { return c.name === name; }) || null;
var platformType = (cfg && cfg.platform) || name;
- var fieldDefs = PLATFORM_FIELDS[platformType] || [];
+ var fieldDefs = getPlatformFields(platformType);
var tempFields = {};
fieldDefs.forEach(function(f) {
var el = document.getElementById('cfg-field-' + f.key);
@@ -4624,7 +4631,7 @@ async function saveChatConfig(name) {
var cfg = (STATE.chatConfigs || []).find(function(c) { return c.name === name; }) || null;
var platformType = (cfg && cfg.platform) || name;
var fields = {};
- var fieldDefs = PLATFORM_FIELDS[platformType] || [];
+ var fieldDefs = getPlatformFields(platformType);
fieldDefs.forEach(function(f) {
var el = document.getElementById('cfg-field-' + f.key);
if (el) fields[f.key] = el.value;