diff --git a/internal/service/telegram_bot_commands_core.go b/internal/service/telegram_bot_commands_core.go
index b88471e..7d0d203 100644
--- a/internal/service/telegram_bot_commands_core.go
+++ b/internal/service/telegram_bot_commands_core.go
@@ -184,84 +184,6 @@ func (s *TelegramBotService) cmdRegistrationToggle(ctx context.Context, args []s
}
}
-// cmdHelp 处理 /help 命令。
-func (s *TelegramBotService) cmdHelp(ctx context.Context, msg *TelegramMessage) string {
- channel := s.findChannelForMessage(ctx, msg)
- if telegramIsGroupChat(msg.Chat.Type) {
- adminHint := ""
- if s.telegramUserIsAdmin(ctx, channel, msg.From.ID) {
- adminHint = "\n\n管理员可在已绑定群组直接发送文本管理命令;管理面板和账号凭据操作请私聊 Bot。"
- }
- return "MediaStationGo 群组可用命令\n\n" +
- "/menu — 打开群组自助菜单\n" +
- "/account — 查看账号状态\n" +
- "/signin — 签到\n" +
- "/devices — 查看登录设备\n" +
- "/kick all|编号 — 踢下线设备\n" +
- "/hideadult on|off — 隐藏或显示成人目录\n\n" +
- "绑定、注册、兑换、改名、改密等包含敏感信息的操作请私聊 Bot。" +
- adminHint
- }
- if !s.telegramUserIsAdmin(ctx, channel, msg.From.ID) {
- register := ""
- if s.openRegEnabled(ctx) {
- register = "/register 用户名 密码 — 注册新账号\n"
- }
- return "MediaStationGo 用户命令\n\n" +
- register +
- "/start 用户名 密码 — 绑定账号\n" +
- "/account — 查看账号状态\n" +
- "/signin — 签到\n" +
- "/devices — 查看登录设备\n" +
- "/kick all|编号 — 踢下线设备\n" +
- "/setname 当前密码 新用户名 — 修改用户名\n" +
- "/setpass 当前密码 新密码 — 修改密码\n" +
- "/redeem 兑换码 — 注册或续期兑换\n" +
- "/hideadult on|off — 隐藏或显示成人目录\n\n" +
- "系统状态、搜索、下载列表与统计命令仅管理员可用。"
- }
- return "MediaStationGo 命令列表\n\n" +
- "/start — 开始使用\n" +
- "/help — 帮助信息\n" +
- "/account / /devices / /kick all|编号 — 用户自助设备管理\n" +
- "/signin / /redeem 兑换码 — 签到与兑换\n" +
- "/setname 当前密码 新用户名 / /setpass 当前密码 新密码 — 用户自助改名改密\n" +
- "/register 用户名 密码 — 注册新账号(需管理员开启)\n" +
- "/registration on [名额]|off — 开启/关闭普通用户注册(管理员)\n" +
- "/capacity / /users — 容量与用户管理(管理员)\n" +
- "/gencode register|renew 天数 [有效天数] — 生成兑换码(管理员)\n" +
- "/renew_user 用户名 天数 / /delete_user 用户名 confirm — 续期/删除用户(管理员)\n" +
- "/unbind 用户1 用户2 — 批量解绑 Telegram 绑定(管理员)\n" +
- "/unbind_duplicates / /unbind_inactive 天数 — 清理重复/无效绑定或久未登录绑定(管理员)\n" +
- "/antishare on play=3 login=3 warn=2 — 防共享策略(管理员)\n" +
- "/cleanup run — 预览保号清理候选(管理员)\n" +
- "/cleanup run confirm — 确认清理候选账号(管理员)\n" +
- "/cleanup on|off — 保号规则开关(管理员)\n" +
- "/cleanup_rule list|add|edit|修改|del|enable|disable — Mgo 保号规则(管理员)\n" +
- "/ban 用户名 / /unban 用户名 — 禁用/解禁用户(管理员)\n" +
- "/hideadult on|off — 隐藏/显示当前绑定账号的成人目录\n" +
- "/status — 系统运行状态\n" +
- "/search 关键词 — 搜索媒体库\n" +
- "/downloads — 下载列表\n" +
- "/stats — 媒体库统计\n\n" +
- telegramMgoAdminCommandHelp() + "\n\n" +
- "自动推送事件:\n" +
- "• 订阅命中新资源\n" +
- "• 下载任务完成\n" +
- "• 刮削失败告警\n" +
- "• 系统异常通知"
-}
-
-func telegramMgoAdminCommandHelp() string {
- return "Mgo 管理命令(管理员可用,已注册到命令栏):\n" +
- "用户:/ucr 用户名 密码 [天数] 创建账号;/uinfo 用户名 查询账号;/rmemby 用户名 confirm 删除账号;/only_rm_record tg:ID|用户名 仅删 Bot 绑定;/renewall 天数 confirm 批量续期。\n" +
- "审计:/userip 用户名 查用户 IP;/auditip IP 按 IP 审计;/auditdevice 关键词 按终端设备审计;/auditclient 关键词 按客户端审计;/udeviceid 设备ID 按设备指纹审计。\n" +
- "清理:/syncunbound 检查未绑定账号;/syncgroupm 校验群成员;/check_ex 检查过期账号;/deleted 按保号规则预览清理候选。\n" +
- "权限:/embyadmin 用户名 on|off 设置管理员;/banall confirm//unbanall confirm 批量禁用/解禁;/prouser 用户名//revuser 用户名 管理保护名单;/embylibs_blockall//embylibs_unblockall 批量禁用/开放媒体库权限。\n" +
- "运维:/proadmin TelegramID//revadmin TelegramID 管理 Bot 管理员;/backup_db 备份数据库;/restore_from_db 文件名 confirm 恢复数据库。\n" +
- "说明:重复别名如 /low_activity、/urm 仍可兼容识别,但不显示在命令栏。"
-}
-
// cmdStatus 处理 /status 命令。
func (s *TelegramBotService) cmdHideAdult(ctx context.Context, msg *TelegramMessage, args []string) telegramCommandReply {
channel := s.findChannelForMessage(ctx, msg)
diff --git a/internal/service/telegram_bot_commands_help.go b/internal/service/telegram_bot_commands_help.go
new file mode 100644
index 0000000..6390753
--- /dev/null
+++ b/internal/service/telegram_bot_commands_help.go
@@ -0,0 +1,81 @@
+package service
+
+import "context"
+
+// cmdHelp 处理 /help 命令。
+func (s *TelegramBotService) cmdHelp(ctx context.Context, msg *TelegramMessage) string {
+ channel := s.findChannelForMessage(ctx, msg)
+ if telegramIsGroupChat(msg.Chat.Type) {
+ adminHint := ""
+ if s.telegramUserIsAdmin(ctx, channel, msg.From.ID) {
+ adminHint = "\n\n管理员可在已绑定群组直接发送文本管理命令;管理面板和账号凭据操作请私聊 Bot。"
+ }
+ return "MediaStationGo 群组可用命令\n\n" +
+ "/menu — 打开群组自助菜单\n" +
+ "/account — 查看账号状态\n" +
+ "/signin — 签到\n" +
+ "/devices — 查看登录设备\n" +
+ "/kick all|编号 — 踢下线设备\n" +
+ "/hideadult on|off — 隐藏或显示成人目录\n\n" +
+ "绑定、注册、兑换、改名、改密等包含敏感信息的操作请私聊 Bot。" +
+ adminHint
+ }
+ if !s.telegramUserIsAdmin(ctx, channel, msg.From.ID) {
+ register := ""
+ if s.openRegEnabled(ctx) {
+ register = "/register 用户名 密码 — 注册新账号\n"
+ }
+ return "MediaStationGo 用户命令\n\n" +
+ register +
+ "/start 用户名 密码 — 绑定账号\n" +
+ "/account — 查看账号状态\n" +
+ "/signin — 签到\n" +
+ "/devices — 查看登录设备\n" +
+ "/kick all|编号 — 踢下线设备\n" +
+ "/setname 当前密码 新用户名 — 修改用户名\n" +
+ "/setpass 当前密码 新密码 — 修改密码\n" +
+ "/redeem 兑换码 — 注册或续期兑换\n" +
+ "/hideadult on|off — 隐藏或显示成人目录\n\n" +
+ "系统状态、搜索、下载列表与统计命令仅管理员可用。"
+ }
+ return "MediaStationGo 命令列表\n\n" +
+ "/start — 开始使用\n" +
+ "/help — 帮助信息\n" +
+ "/account / /devices / /kick all|编号 — 用户自助设备管理\n" +
+ "/signin / /redeem 兑换码 — 签到与兑换\n" +
+ "/setname 当前密码 新用户名 / /setpass 当前密码 新密码 — 用户自助改名改密\n" +
+ "/register 用户名 密码 — 注册新账号(需管理员开启)\n" +
+ "/registration on [名额]|off — 开启/关闭普通用户注册(管理员)\n" +
+ "/capacity / /users — 容量与用户管理(管理员)\n" +
+ "/gencode register|renew 天数 [有效天数] — 生成兑换码(管理员)\n" +
+ "/renew_user 用户名 天数 / /delete_user 用户名 confirm — 续期/删除用户(管理员)\n" +
+ "/unbind 用户1 用户2 — 批量解绑 Telegram 绑定(管理员)\n" +
+ "/unbind_duplicates / /unbind_inactive 天数 — 清理重复/无效绑定或久未登录绑定(管理员)\n" +
+ "/antishare on play=3 login=3 warn=2 — 防共享策略(管理员)\n" +
+ "/cleanup run — 预览保号清理候选(管理员)\n" +
+ "/cleanup run confirm — 确认清理候选账号(管理员)\n" +
+ "/cleanup on|off — 保号规则开关(管理员)\n" +
+ "/cleanup_rule list|add|edit|修改|del|enable|disable — Mgo 保号规则(管理员)\n" +
+ "/ban 用户名 / /unban 用户名 — 禁用/解禁用户(管理员)\n" +
+ "/hideadult on|off — 隐藏/显示当前绑定账号的成人目录\n" +
+ "/status — 系统运行状态\n" +
+ "/search 关键词 — 搜索媒体库\n" +
+ "/downloads — 下载列表\n" +
+ "/stats — 媒体库统计\n\n" +
+ telegramMgoAdminCommandHelp() + "\n\n" +
+ "自动推送事件:\n" +
+ "• 订阅命中新资源\n" +
+ "• 下载任务完成\n" +
+ "• 刮削失败告警\n" +
+ "• 系统异常通知"
+}
+
+func telegramMgoAdminCommandHelp() string {
+ return "Mgo 管理命令(管理员可用,已注册到命令栏):\n" +
+ "用户:/ucr 用户名 密码 [天数] 创建账号;/uinfo 用户名 查询账号;/rmemby 用户名 confirm 删除账号;/only_rm_record tg:ID|用户名 仅删 Bot 绑定;/renewall 天数 confirm 批量续期。\n" +
+ "审计:/userip 用户名 查用户 IP;/auditip IP 按 IP 审计;/auditdevice 关键词 按终端设备审计;/auditclient 关键词 按客户端审计;/udeviceid 设备ID 按设备指纹审计。\n" +
+ "清理:/syncunbound 检查未绑定账号;/syncgroupm 校验群成员;/check_ex 检查过期账号;/deleted 按保号规则预览清理候选。\n" +
+ "权限:/embyadmin 用户名 on|off 设置管理员;/banall confirm//unbanall confirm 批量禁用/解禁;/prouser 用户名//revuser 用户名 管理保护名单;/embylibs_blockall//embylibs_unblockall 批量禁用/开放媒体库权限。\n" +
+ "运维:/proadmin TelegramID//revadmin TelegramID 管理 Bot 管理员;/backup_db 备份数据库;/restore_from_db 文件名 confirm 恢复数据库。\n" +
+ "说明:重复别名如 /low_activity、/urm 仍可兼容识别,但不显示在命令栏。"
+}