fix: align simadmin plugin with working autman scripts
This commit is contained in:
@@ -2,16 +2,16 @@
|
||||
#[language: python]
|
||||
#[service: BOSS]
|
||||
#[disable: false]
|
||||
#[admin: true]
|
||||
#[admin: false]
|
||||
#[rule: ^sim帮助$]
|
||||
#[rule: ^sim配置$]
|
||||
#[rule: ^sim管理$]
|
||||
#[rule: ^sim状态(?:\s+\S+)?$]
|
||||
#[rule: ^sim短信\s+\S+\s+\S+\s+[\s\S]+$]
|
||||
#[priority: 900]
|
||||
#[rule: ^sim状态.*$]
|
||||
#[rule: ^sim短信.*$]
|
||||
#[priority: 999]
|
||||
#[platform: qq,qb,wx,wb,tg,tb,fs,we,web,wxmp]
|
||||
#[open_source: true]
|
||||
#[version: 1.2.1]
|
||||
#[version: 1.2.2]
|
||||
#[public: false]
|
||||
#[price: 0]
|
||||
#[description: 管理员专用:兼容多个 SimAdmin 实例,支持多级菜单配置管理、状态查询和短信发送。配置桶 otto/simadmin_instances。]
|
||||
@@ -48,12 +48,11 @@ class SimAdminError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def get_sender():
|
||||
return middleware.Sender(middleware.getSenderID())
|
||||
sender = middleware.Sender(middleware.getSenderID())
|
||||
|
||||
|
||||
def reply(sender, text):
|
||||
sender.reply(str(text))
|
||||
def reply(sender_obj, text):
|
||||
sender_obj.reply(str(text))
|
||||
|
||||
|
||||
def listen_text(sender, prompt, allow_empty=False, default=None):
|
||||
@@ -633,23 +632,42 @@ def handle_help(sender):
|
||||
]))
|
||||
|
||||
|
||||
def main():
|
||||
sender = get_sender()
|
||||
def _safe_get_message():
|
||||
try:
|
||||
message = (sender.getMessage() or "").strip().strip('"')
|
||||
if not sender.isAdmin():
|
||||
reply(sender, "仅管理员可用")
|
||||
return
|
||||
return (sender.getMessage() or "").strip().strip('"')
|
||||
except Exception:
|
||||
return ""
|
||||
|
||||
|
||||
def _safe_is_admin():
|
||||
try:
|
||||
return bool(sender.isAdmin())
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
message = _safe_get_message()
|
||||
# 参考已有实机插件:头注 admin 只负责触发,敏感权限在代码里判断。
|
||||
# 这样即使框架层 admin 识别异常,也至少会给出“仅管理员可用”,不会表现为无回应。
|
||||
if message in ("sim帮助", "sim配置", "sim管理") or message.startswith("sim状态") or message.startswith("sim短信"):
|
||||
if not _safe_is_admin():
|
||||
reply(sender, "仅管理员可用")
|
||||
return
|
||||
if message == "sim帮助":
|
||||
handle_help(sender)
|
||||
elif message in ("sim配置", "sim管理"):
|
||||
sys.exit(0)
|
||||
if message in ("sim配置", "sim管理"):
|
||||
handle_config(sender)
|
||||
elif message.startswith("sim状态"):
|
||||
sys.exit(0)
|
||||
if message.startswith("sim状态"):
|
||||
handle_status(sender, message)
|
||||
elif message.startswith("sim短信"):
|
||||
sys.exit(0)
|
||||
if message.startswith("sim短信"):
|
||||
handle_sms(sender, message)
|
||||
else:
|
||||
handle_help(sender)
|
||||
sys.exit(0)
|
||||
reply(sender, "指令不支持,请发送:sim帮助 / sim配置 / sim状态 / sim短信")
|
||||
except SimAdminError as e:
|
||||
reply(sender, "SimAdmin插件提示:" + str(e))
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user