From 53afba01b611462530b1c439c4dbad744049c092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 6 Jul 2022 13:37:29 +0800 Subject: [PATCH] feat: add response & slience --- go.sum | 5 +---- rule.go | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/go.sum b/go.sum index 4f0080f..6abd956 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,7 @@ github.com/FloatTech/sqlite v0.3.2 h1:iTg2ZKnzjjZAdlSN3hXmpCBn15odc4Ud484OoM3yXGA= github.com/FloatTech/sqlite v0.3.2/go.mod h1:VFtLofV5qxw5eBneZRbWwD451SLSm50o9J3J43iB1iw= -github.com/FloatTech/zbpctrl v1.4.1-0.20220610074608-425160596f27 h1:C+D30vpxfgbJetTFXWAHzuU8GydbFb/A8Kv6E3PdRS4= -github.com/FloatTech/zbpctrl v1.4.1-0.20220610074608-425160596f27/go.mod h1:5FDkrlVaQCxUfeqH7XJPTfej0q+y9fzImhvZI4ofu9Y= +github.com/FloatTech/zbpctrl v1.4.1-0.20220705050928-b798cd57bc48 h1:dylJ3GJO5477uYuxqJEmt891dCxmf34zOW5rv5HpaFw= github.com/FloatTech/zbpctrl v1.4.1-0.20220705050928-b798cd57bc48/go.mod h1:5FDkrlVaQCxUfeqH7XJPTfej0q+y9fzImhvZI4ofu9Y= -github.com/FloatTech/zbputils v1.4.1-0.20220611141322-54404ff5dae4 h1:dZFi+gaLWY6IWy8U93/KU4Zt1dCsJOhcRVOg5lg2IZY= -github.com/FloatTech/zbputils v1.4.1-0.20220611141322-54404ff5dae4/go.mod h1:A9AeVHZsv5chyw8p4fDI0cHnEOfMpmsTLoLWqUT7TO4= github.com/FloatTech/zbputils v1.4.1-0.20220705054031-c98b2e5448f1 h1:4yDXKIVLR1fGBuQN+jIQnGVb7DXBpm6nyxrbTBVOft4= github.com/FloatTech/zbputils v1.4.1-0.20220705054031-c98b2e5448f1/go.mod h1:DMLW8ltV9Z31DD37NySjDz+5CPiYRydlesid31VzFiQ= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c h1:cNPOdTNiVwxLpROLjXCgbIPvdkE+BwvxDvgmdYmWx6Q= diff --git a/rule.go b/rule.go index 3df7eed..fd84fc6 100644 --- a/rule.go +++ b/rule.go @@ -38,6 +38,37 @@ func init() { if err != nil { panic(err) } + + OnMessageCommandGroup([]string{ + "响应", "response", "沉默", "silence", + }, UserOrGrpAdmin).SetBlock(true).secondPriority().Handle(func(ctx *Ctx) { + grp := ctx.Message.Chat.ID + if ctx.Message.Chat.IsPrivate() { + // 个人用户 + grp = -ctx.Message.From.ID + } + msg := "" + switch ctx.State["command"] { + case "响应", "response": + err := m.Response(grp) + if err == nil { + msg = ctx.Caller.Self.String() + "将开始在此工作啦~" + } else { + msg = "ERROR: " + err.Error() + } + case "沉默", "silence": + err := m.Silence(grp) + if err == nil { + msg = ctx.Caller.Self.String() + "将开始休息啦~" + } else { + msg = "ERROR: " + err.Error() + } + default: + msg = "ERROR: bad command\"" + fmt.Sprint(ctx.State["command"]) + "\"" + } + _, _ = ctx.Caller.Send(tgba.NewMessage(ctx.Message.Chat.ID, msg)) + }) + OnMessageCommandGroup([]string{ "启用", "enable", "禁用", "disable", }, UserOrGrpAdmin).SetBlock(true).secondPriority().Handle(func(ctx *Ctx) { @@ -287,7 +318,7 @@ func init() { m.RLock() msg := make([]any, 1, len(m.M)*4+1) m.RUnlock() - msg[0] = "--------服务列表--------\n发送\"/用法 name\"查看详情" + msg[0] = "--------服务列表--------\n发送\"/用法 name\"查看详情\n发送\"/响应\"启用会话" m.ForEach(func(key string, manager *ctrl.Control[*Ctx]) bool { i++ msg = append(msg, "\n", i, ": ", manager.EnableMarkIn(gid), key)