@@ -64,6 +64,7 @@ func init() {
64
64
"- 取消b站动态订阅[uid|name]\n " +
65
65
"- 取消b站直播订阅[uid|name]\n " +
66
66
"- b站推送列表\n " +
67
+ "- [开启|关闭]艾特全体\n " +
67
68
"Tips: 需要配合job一起使用, 全局只需要设置一个, 无视响应状态推送, 下为例子\n " +
68
69
"记录在\" @every 5m\" 触发的指令)\n " +
69
70
"拉取b站推送" ,
@@ -74,6 +75,23 @@ func init() {
74
75
dbpath := en .DataFolder ()
75
76
dbfile := dbpath + "push.db"
76
77
bdb = initializePush (dbfile )
78
+ en .OnFullMatch (`开启艾特全体` , zero .UserOrGrpAdmin , zero .OnlyGroup ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
79
+ gid := ctx .Event .GroupID
80
+ if err := changeAtAll (gid , 1 ); err != nil {
81
+ ctx .SendChain (message .Text ("ERROR: " , err ))
82
+ return
83
+ }
84
+ ctx .SendChain (message .Text ("已开启艾特全体Oo" ))
85
+ })
86
+
87
+ en .OnFullMatch (`关闭艾特全体` , zero .UserOrGrpAdmin , zero .OnlyGroup ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
88
+ gid := ctx .Event .GroupID
89
+ if err := changeAtAll (gid , 0 ); err != nil {
90
+ ctx .SendChain (message .Text ("ERROR: " , err ))
91
+ return
92
+ }
93
+ ctx .SendChain (message .Text ("已关闭艾特全体Oo" ))
94
+ })
77
95
78
96
en .OnRegex (`^添加[B|b]站订阅\s?(.{1,25})$` , zero .UserOrGrpAdmin , getPara ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
79
97
buid , _ := strconv .ParseInt (ctx .State ["uid" ].(string ), 10 , 64 )
@@ -92,6 +110,7 @@ func init() {
92
110
}
93
111
ctx .SendChain (message .Text ("已添加" + name + "的订阅" ))
94
112
})
113
+
95
114
en .OnRegex (`^取消[B|b]站订阅\s?(.{1,25})$` , zero .UserOrGrpAdmin , getPara ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
96
115
buid , _ := strconv .ParseInt (ctx .State ["uid" ].(string ), 10 , 64 )
97
116
name , err := getName (buid )
@@ -143,6 +162,7 @@ func init() {
143
162
}
144
163
ctx .SendChain (message .Text ("已取消" + name + "的直播订阅" ))
145
164
})
165
+
146
166
en .OnRegex (`^[B|b]站推送列表$` , zero .UserOrGrpAdmin ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
147
167
gid := ctx .Event .GroupID
148
168
if gid == 0 {
@@ -189,6 +209,14 @@ func init() {
189
209
})
190
210
}
191
211
212
+ func changeAtAll (groupId int64 , b int ) (err error ) {
213
+ bpMap := map [string ]any {
214
+ "group_id" : groupId ,
215
+ "at_all" : b ,
216
+ }
217
+ return bdb .updateAtAll (bpMap )
218
+ }
219
+
192
220
// 取得uid的名字
193
221
func getName (buid int64 ) (name string , err error ) {
194
222
var ok bool
@@ -466,6 +494,9 @@ func sendLive(ctx *zero.Ctx) error {
466
494
time .Sleep (time .Millisecond * 100 )
467
495
switch {
468
496
case gid > 0 :
497
+ if res := bdb .getAtAll (gid ); res == 1 {
498
+ msg = append ([]message.MessageSegment {message .AtAll ()}, msg ... )
499
+ }
469
500
ctx .SendGroupMessage (gid , msg )
470
501
case gid < 0 :
471
502
ctx .SendPrivateMessage (- gid , msg )
0 commit comments