mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-07-07 07:01:21 +08:00
feat: add lswatch cmd to list all user's watching chats
This commit is contained in:
@@ -28,6 +28,7 @@ var CommandHandlers = []DescCommandHandler{
|
|||||||
{"rule", "管理自动存储规则", handleRuleCmd},
|
{"rule", "管理自动存储规则", handleRuleCmd},
|
||||||
{"watch", "监听聊天(UserBot)", handleWatchCmd},
|
{"watch", "监听聊天(UserBot)", handleWatchCmd},
|
||||||
{"unwatch", "取消监听聊天(UserBot)", handleUnwatchCmd},
|
{"unwatch", "取消监听聊天(UserBot)", handleUnwatchCmd},
|
||||||
|
{"lswatch", "列出监听的聊天(UserBot)", handleLswatchCmd},
|
||||||
{"save", "保存文件", handleSilentMode(handleSaveCmd, handleSilentSaveReplied)},
|
{"save", "保存文件", handleSilentMode(handleSaveCmd, handleSilentSaveReplied)},
|
||||||
{"config", "修改配置", handleConfigCmd},
|
{"config", "修改配置", handleConfigCmd},
|
||||||
{"fnametmpl", "设置文件命名模板", handleConfigFnameTmpl},
|
{"fnametmpl", "设置文件命名模板", handleConfigFnameTmpl},
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -91,6 +92,36 @@ func handleWatchCmd(ctx *ext.Context, update *ext.Update) error {
|
|||||||
return dispatcher.EndGroups
|
return dispatcher.EndGroups
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handleLswatchCmd(ctx *ext.Context, update *ext.Update) error {
|
||||||
|
logger := log.FromContext(ctx)
|
||||||
|
userChatID := update.GetUserChat().GetID()
|
||||||
|
user, err := database.GetUserByChatID(ctx, userChatID)
|
||||||
|
if err != nil {
|
||||||
|
logger.Errorf("获取用户失败: %s", err)
|
||||||
|
ctx.Reply(update, ext.ReplyTextString("获取用户失败"), nil)
|
||||||
|
return dispatcher.EndGroups
|
||||||
|
}
|
||||||
|
chats := user.WatchChats
|
||||||
|
if len(chats) == 0 {
|
||||||
|
ctx.Reply(update, ext.ReplyTextString("当前没有监听任何聊天"), nil)
|
||||||
|
return dispatcher.EndGroups
|
||||||
|
}
|
||||||
|
var sb strings.Builder
|
||||||
|
sb.WriteString("当前监听的聊天:\n")
|
||||||
|
for _, chat := range chats {
|
||||||
|
sb.WriteString("- ")
|
||||||
|
sb.WriteString(fmt.Sprintf("%d", chat.ChatID))
|
||||||
|
if chat.Filter != "" {
|
||||||
|
sb.WriteString(" (过滤器: ")
|
||||||
|
sb.WriteString(chat.Filter)
|
||||||
|
sb.WriteString(")")
|
||||||
|
}
|
||||||
|
sb.WriteString("\n")
|
||||||
|
}
|
||||||
|
ctx.Reply(update, ext.ReplyTextString(sb.String()), nil)
|
||||||
|
return dispatcher.EndGroups
|
||||||
|
}
|
||||||
|
|
||||||
func handleUnwatchCmd(ctx *ext.Context, update *ext.Update) error {
|
func handleUnwatchCmd(ctx *ext.Context, update *ext.Update) error {
|
||||||
logger := log.FromContext(ctx)
|
logger := log.FromContext(ctx)
|
||||||
args := strings.Split(update.EffectiveMessage.Text, " ")
|
args := strings.Split(update.EffectiveMessage.Text, " ")
|
||||||
|
|||||||
Reference in New Issue
Block a user