From 0ebc54a17b142117f8bb7aa758f3d956fc46935d Mon Sep 17 00:00:00 2001 From: Yiwen-Chan Date: Mon, 21 Jun 2021 17:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E7=A2=A7=E6=B2=B9=E9=B8=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + go.mod | 3 +- go.sum | 15 ++++++++-- manager/manager.go | 68 ++++++++++++++++++++++++---------------------- setutime/sqlite.go | 2 +- 5 files changed, 51 insertions(+), 38 deletions(-) diff --git a/.gitignore b/.gitignore index 53e4b26e..ceace8fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ data/SetuTime/cache data/SetuTime/search +data/manager \ No newline at end of file diff --git a/go.mod b/go.mod index 3265b1ec..ac02f9c3 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.16 require ( github.com/FloatTech/AnimeAPI v0.0.0-20210619112022-a8fdd4fefc07 + github.com/FloatTech/ZeroBot-Plugin-Timer v1.2.2 github.com/antchfx/xpath v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -11,7 +12,7 @@ require ( github.com/t-tomalak/logrus-easy-formatter v0.0.0-20190827215021-c074f06c5816 github.com/tidwall/gjson v1.8.0 github.com/tidwall/pretty v1.2.0 // indirect - github.com/wdvxdr1123/ZeroBot v1.2.0 + github.com/wdvxdr1123/ZeroBot v1.2.1 golang.org/x/net v0.0.0-20210525063256-abc453219eb5 // indirect golang.org/x/sys v0.0.0-20210603125802-9665404d3644 // indirect modernc.org/sqlite v1.10.8 diff --git a/go.sum b/go.sum index 3bc408ca..f8ee240d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/FloatTech/AnimeAPI v0.0.0-20210619112022-a8fdd4fefc07 h1:7fBPLLoZysaa9PI9ApgzyVMrMLMWBam273YgKwy7Ddg= github.com/FloatTech/AnimeAPI v0.0.0-20210619112022-a8fdd4fefc07/go.mod h1:GYrQD70HvBzry1XiZ1tHFNOsOqRkR+ao4XGYZqV4I9c= +github.com/FloatTech/ZeroBot-Plugin-Timer v1.2.2 h1:I7RSCsJVT6elehdaSiWB4n96y06fQxMsvAG494S5Od0= +github.com/FloatTech/ZeroBot-Plugin-Timer v1.2.2/go.mod h1:femu/wVuqVSN/rg209qksMx8/2OKUF8l1PZCNg4RwVA= github.com/antchfx/htmlquery v1.2.3 h1:sP3NFDneHx2stfNXCKbhHFo8XgNjCACnU/4AO5gWz6M= github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0= github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= @@ -15,9 +17,13 @@ github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -63,8 +69,8 @@ github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/wdvxdr1123/ZeroBot v1.2.0 h1:GmCkbzMMq3iugViKDtLbsL7joi29uG3/tp1554nboWI= -github.com/wdvxdr1123/ZeroBot v1.2.0/go.mod h1:83nHtG8V5TAxPwH/LCDxLpZk4khIgs29dkr5TBWf7fc= +github.com/wdvxdr1123/ZeroBot v1.2.1 h1:ougeP+VOAGlQWCAUSB7fjA5trzEvPepU7pujsoYTCq8= +github.com/wdvxdr1123/ZeroBot v1.2.1/go.mod h1:83nHtG8V5TAxPwH/LCDxLpZk4khIgs29dkr5TBWf7fc= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -111,6 +117,9 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= diff --git a/manager/manager.go b/manager/manager.go index c6e7f7e7..d5a01363 100644 --- a/manager/manager.go +++ b/manager/manager.go @@ -9,6 +9,8 @@ import ( zero "github.com/wdvxdr1123/ZeroBot" "github.com/wdvxdr1123/ZeroBot/message" + + timer "github.com/FloatTech/ZeroBot-Plugin-Timer" ) func init() { // 插件主体 @@ -233,39 +235,39 @@ func init() { // 插件主体 ctx.SendChain(message.Text("📧 --> " + ctx.State["regex_matched"].([]string)[1])) return }) - /* - // 定时提醒 - zero.OnRegex(`^在(.{1,2})月(.{1,3}日|每?周.?)的(.{1,3})点(.{1,3})分时(用.+)?提醒大家(.*)`, zero.SuperUserPermission).SetBlock(true).SetPriority(40). - Handle(func(ctx *zero.Ctx) { - dateStrs := ctx.State["regex_matched"].([]string) - ts := timer.GetFilledTimeStamp(dateStrs, false) - ts.Grpid = uint64(ctx.Event.GroupID) - if ts.Enable { - go timer.RegisterTimer(ts, true) - ctx.Send("记住了~") - } else { - ctx.Send("参数非法!") - } - return - }) - // 取消定时 - zero.OnRegex(`^取消在(.{1,2})月(.{1,3}日|每?周.?)的(.{1,3})点(.{1,3})分的提醒`, zero.SuperUserPermission).SetBlock(true).SetPriority(40). - Handle(func(ctx *zero.Ctx) { - dateStrs := ctx.State["regex_matched"].([]string) - ts := timer.GetFilledTimeStamp(dateStrs, true) - ti := timer.GetTimerInfo(ts) - t, ok := (*timer.Timers)[ti] - if ok { - t.Enable = false - delete(*timer.Timers, ti) //避免重复取消 - timer.SaveTimers() - ctx.Send("取消成功~") - } else { - ctx.Send("没有这个定时器哦~") - } - return - }) - */ + + // 定时提醒 + zero.OnRegex(`^在(.{1,2})月(.{1,3}日|每?周.?)的(.{1,3})点(.{1,3})分时(用.+)?提醒大家(.*)`, zero.SuperUserPermission).SetBlock(true).SetPriority(40). + Handle(func(ctx *zero.Ctx) { + dateStrs := ctx.State["regex_matched"].([]string) + ts := timer.GetFilledTimeStamp(dateStrs, false) + ts.Grpid = uint64(ctx.Event.GroupID) + if ts.Enable { + go timer.RegisterTimer(ts, true) + ctx.Send("记住了~") + } else { + ctx.Send("参数非法!") + } + return + }) + // 取消定时 + zero.OnRegex(`^取消在(.{1,2})月(.{1,3}日|每?周.?)的(.{1,3})点(.{1,3})分的提醒`, zero.SuperUserPermission).SetBlock(true).SetPriority(40). + Handle(func(ctx *zero.Ctx) { + dateStrs := ctx.State["regex_matched"].([]string) + ts := timer.GetFilledTimeStamp(dateStrs, true) + ti := timer.GetTimerInfo(ts) + t, ok := (*timer.Timers)[ti] + if ok { + t.Enable = false + delete(*timer.Timers, ti) //避免重复取消 + timer.SaveTimers() + ctx.Send("取消成功~") + } else { + ctx.Send("没有这个定时器哦~") + } + return + }) + // 随机点名 zero.OnFullMatchGroup([]string{"翻牌"}).SetBlock(true).SetPriority(40). Handle(func(ctx *zero.Ctx) { diff --git a/setutime/sqlite.go b/setutime/sqlite.go index bf7e3f7c..3154e121 100644 --- a/setutime/sqlite.go +++ b/setutime/sqlite.go @@ -62,8 +62,8 @@ func (db *Sqlite) Insert(table string, objptr interface{}) (err error) { if err != nil { return err } - defer rows.Close() tags, _ := rows.Columns() + rows.Close() var ( values = values(objptr) top = len(tags) - 1