fix: reg panic

This commit is contained in:
fumiama 2022-02-24 21:34:06 +08:00
parent 454196a462
commit 7aed9a2c89
5 changed files with 30 additions and 47 deletions

2
go.mod
View File

@ -5,7 +5,7 @@ go 1.17
require ( require (
github.com/FloatTech/AnimeAPI v1.3.0-beta8.0.20220224052148-f7a1379d4a00 github.com/FloatTech/AnimeAPI v1.3.0-beta8.0.20220224052148-f7a1379d4a00
github.com/FloatTech/sqlite v0.2.0 github.com/FloatTech/sqlite v0.2.0
github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224114458-4310f8e13ad3 github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224132834-0341eb3c3b13
github.com/antchfx/htmlquery v1.2.4 github.com/antchfx/htmlquery v1.2.4
github.com/corona10/goimagehash v1.0.3 github.com/corona10/goimagehash v1.0.3
github.com/fogleman/gg v1.3.0 github.com/fogleman/gg v1.3.0

4
go.sum
View File

@ -4,8 +4,8 @@ github.com/FloatTech/bot-manager v1.0.0/go.mod h1:8YYRJ16oroGHQGD2En0oVnmcKJkxR9
github.com/FloatTech/sqlite v0.2.0 h1:x3uls/hExXH1+bbaNLkvilce6ATtWlDx4IqoxBW/bv8= github.com/FloatTech/sqlite v0.2.0 h1:x3uls/hExXH1+bbaNLkvilce6ATtWlDx4IqoxBW/bv8=
github.com/FloatTech/sqlite v0.2.0/go.mod h1:xIDWIvpOFl8AXmZm0FC8t3PZjiR6ZutytCpBv2EWCns= github.com/FloatTech/sqlite v0.2.0/go.mod h1:xIDWIvpOFl8AXmZm0FC8t3PZjiR6ZutytCpBv2EWCns=
github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224051618-597cdb58b3fe/go.mod h1:Jn5LmnwqYivr64qQJBdhDwm2gRut8Hhq5gPBydV0Gvg= github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224051618-597cdb58b3fe/go.mod h1:Jn5LmnwqYivr64qQJBdhDwm2gRut8Hhq5gPBydV0Gvg=
github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224114458-4310f8e13ad3 h1:rIi9+wMFfiYxEG6pCp5Mr6ZiBsstCGHrIt7moGkMEXM= github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224132834-0341eb3c3b13 h1:EMkixYWDwQKdlUpt0MF63Nj1e5pdladkWJ++5VCTGSc=
github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224114458-4310f8e13ad3/go.mod h1:Jn5LmnwqYivr64qQJBdhDwm2gRut8Hhq5gPBydV0Gvg= github.com/FloatTech/zbputils v1.3.0-beta8.0.20220224132834-0341eb3c3b13/go.mod h1:Jn5LmnwqYivr64qQJBdhDwm2gRut8Hhq5gPBydV0Gvg=
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/RomiChan/websocket v1.4.3-0.20220123145318-307a86b127bc h1:AAx50/fb/xS4lvsdQg+bFbGvqSDhyV1MF+p2PLCamZ0= github.com/RomiChan/websocket v1.4.3-0.20220123145318-307a86b127bc h1:AAx50/fb/xS4lvsdQg+bFbGvqSDhyV1MF+p2PLCamZ0=
github.com/RomiChan/websocket v1.4.3-0.20220123145318-307a86b127bc/go.mod h1:OMmITAib6POA37xCichWM0aRnoVpSMZO1rB/G01wrr0= github.com/RomiChan/websocket v1.4.3-0.20220123145318-307a86b127bc/go.mod h1:OMmITAib6POA37xCichWM0aRnoVpSMZO1rB/G01wrr0=

View File

@ -12,7 +12,6 @@ var sr = reg.NewRegedit("reilia.fumiama.top:32664", "fumiama", "--")
func TestGetHoliday(t *testing.T) { func TestGetHoliday(t *testing.T) {
registry.Connect() registry.Connect()
holidaymap = make(map[string]*Holiday)
h := GetHoliday("元旦") h := GetHoliday("元旦")
registry.Close() registry.Close()
t.Fatal(h) t.Fatal(h)

View File

@ -21,29 +21,20 @@ func NewHoliday(name string, dur, year int, month time.Month, day int) *Holiday
return &Holiday{name: name, date: time.Date(year, month, day, 0, 0, 0, 0, time.Local), dur: time.Duration(dur) * time.Hour * 24} return &Holiday{name: name, date: time.Date(year, month, day, 0, 0, 0, 0, time.Local), dur: time.Duration(dur) * time.Hour * 24}
} }
var ( var registry = reg.NewRegReader("reilia.fumiama.top:32664", "fumiama")
registry = reg.NewRegReader("reilia.fumiama.top:32664", "fumiama")
holidaymap map[string]*Holiday
)
// GetHoliday 从 reg 服务器获取节日 // GetHoliday 从 reg 服务器获取节日
func GetHoliday(name string) *Holiday { func GetHoliday(name string) *Holiday {
var dur, year int var dur, year int
var month time.Month var month time.Month
var day int var day int
h, ok := holidaymap[name]
if ok {
return h
}
ret, err := registry.Get("holiday/" + name) ret, err := registry.Get("holiday/" + name)
if err != nil { if err != nil {
return NewHoliday(name+err.Error(), 0, 0, 0, 0) return NewHoliday(name+err.Error(), 0, 0, 0, 0)
} }
fmt.Sscanf(ret, "%d_%d_%d_%d", &dur, &year, &month, &day) fmt.Sscanf(ret, "%d_%d_%d_%d", &dur, &year, &month, &day)
logrus.Debugln("[moyu]获取节日:", name, dur, year, month, day) logrus.Debugln("[moyu]获取节日:", name, dur, year, month, day)
h = NewHoliday(name, dur, year, month, day) return NewHoliday(name, dur, year, month, day)
holidaymap[name] = h
return h
} }
// String 获取两个时间相差 // String 获取两个时间相差

View File

@ -31,46 +31,39 @@ func init() { // 插件主体
func sendNotice() { func sendNotice() {
m, ok := control.Lookup("moyu") m, ok := control.Lookup("moyu")
if ok { if ok {
if holidaymap == nil { if registry.Connect() != nil {
ok = false return
if registry.Connect() != nil {
return
}
holidaymap = make(map[string]*Holiday, 32)
} }
msg := message.Message{
message.Text(time.Now().Format("2006-01-02")),
message.Text("上午好,摸鱼人!\n工作再累一定不要忘记摸鱼哦有事没事起身去茶水间去厕所去廊道走走别老在工位上坐着钱是老板的,但命是自己的。\n"),
message.Text(weekend()),
message.Text("\n"),
message.Text(GetHoliday("元旦")),
message.Text("\n"),
message.Text(GetHoliday("春节")),
message.Text("\n"),
message.Text(GetHoliday("清明节")),
message.Text("\n"),
message.Text(GetHoliday("劳动节")),
message.Text("\n"),
message.Text(GetHoliday("端午节")),
message.Text("\n"),
message.Text(GetHoliday("中秋节")),
message.Text("\n"),
message.Text(GetHoliday("国庆节")),
message.Text("\n"),
message.Text("上班是帮老板赚钱,摸鱼是赚老板的钱!最后,祝愿天下所有摸鱼人,都能愉快的渡过每一天…"),
}
_ = registry.Close()
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool { zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
for _, g := range ctx.GetGroupList().Array() { for _, g := range ctx.GetGroupList().Array() {
grp := g.Get("group_id").Int() grp := g.Get("group_id").Int()
if m.IsEnabledIn(grp) { if m.IsEnabledIn(grp) {
ctx.SendGroupMessage(grp, ctx.SendGroupMessage(grp, msg)
[]message.MessageSegment{
message.Text(time.Now().Format("2006-01-02")),
message.Text("上午好,摸鱼人!\n工作再累一定不要忘记摸鱼哦有事没事起身去茶水间去厕所去廊道走走别老在工位上坐着钱是老板的,但命是自己的。\n"),
message.Text(weekend()),
message.Text("\n"),
message.Text(GetHoliday("元旦")),
message.Text("\n"),
message.Text(GetHoliday("春节")),
message.Text("\n"),
message.Text(GetHoliday("清明节")),
message.Text("\n"),
message.Text(GetHoliday("劳动节")),
message.Text("\n"),
message.Text(GetHoliday("端午节")),
message.Text("\n"),
message.Text(GetHoliday("中秋节")),
message.Text("\n"),
message.Text(GetHoliday("国庆节")),
message.Text("\n"),
message.Text("上班是帮老板赚钱,摸鱼是赚老板的钱!最后,祝愿天下所有摸鱼人,都能愉快的渡过每一天…"),
},
)
} }
} }
return true return true
}) })
if !ok {
_ = registry.Close()
}
} }
} }