feat: split simadmin status replies and hide urls

This commit is contained in:
2026-05-16 15:53:41 +08:00
parent f8af3dc5aa
commit 51e7946904
2 changed files with 36 additions and 8 deletions
+18 -4
View File
@@ -12,7 +12,7 @@
#[priority: 999]
#[platform: qq,qb,wx,wb,tg,tb,fs,we,web,wxmp]
#[open_source: true]
#[version: 1.3.2]
#[version: 1.3.3]
#[public: false]
#[price: 0]
#[description: 管理员专用:兼容多个 SimAdmin 实例,支持多级菜单配置管理、状态查询和短信发送。配置桶 otto/simadmin_instances。]
@@ -36,6 +36,7 @@ import re
import sys
import traceback
import urllib.error
import urllib.parse
import urllib.request
import middleware
@@ -216,12 +217,20 @@ def save_instances(instances):
middleware.bucketSet(BUCKET, CONFIG_KEY, json.dumps(normalized, ensure_ascii=False, indent=2))
def display_host(url):
try:
parsed = urllib.parse.urlparse(str(url or ""))
return parsed.hostname or str(url or "-")
except Exception:
return str(url or "-")
def instance_brief(item, idx=None):
prefix = "" if idx is None else "%s. " % idx
state = "启用" if item.get("enabled") else "禁用"
token = mask_secret(item.get("token")) or "未设置"
return "%s%s [%s]\n %s timeout=%ss token=%s" % (
prefix, item["name"], state, item["base_url"], item["timeout"], token
return "%s%s [%s]\n 主机:%s timeout=%ss token=%s" % (
prefix, item["name"], state, display_host(item.get("base_url")), item["timeout"], token
)
@@ -586,7 +595,12 @@ def menu_restart_all(sender, action_name=None):
def handle_status(sender, message):
instances = load_instances()
parts = message.split(None, 1)
selected = find_instances(instances, parts[1].strip() if len(parts) > 1 else "")
target = parts[1].strip() if len(parts) > 1 else ""
selected = find_instances(instances, target)
if target in ("", "全部", "all", "ALL", "*") and len(selected) > 1:
for item in selected:
reply(sender, format_instance_status(item))
return
reply(sender, "\n\n".join(format_instance_status(x) for x in selected))