From e9b39f3379837ef9f641bb14549e60758f0c9e51 Mon Sep 17 00:00:00 2001 From: Ink-33 Date: Tue, 17 Nov 2020 01:24:16 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20set=5Frestart=20delay=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/http.go | 13 +++---------- server/websocket.go | 6 +++--- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/server/http.go b/server/http.go index 5b58c7e..a3b0ae2 100644 --- a/server/http.go +++ b/server/http.go @@ -5,6 +5,7 @@ import ( "crypto/hmac" "crypto/sha1" "encoding/hex" + "fmt" "net/http" "os" "strconv" @@ -346,21 +347,13 @@ func SetGroupLeave(s *httpServer, c *gin.Context) { } func SetRestart(s *httpServer, c *gin.Context) { - d, t := getParamWithType(c, "delay") - if t == gjson.Null { - d = "0" - } - delay, err := strconv.ParseInt(d, 10, 64) - if err != nil || delay < 0 { - c.JSON(200, Failed(100, "Invalid delay")) - return - } + delay, _ := strconv.ParseInt(getParam(c, "delay"), 10, 64) c.JSON(200, coolq.MSG{"data": nil, "retcode": 0, "status": "async"}) go func(delay int64) { var del *time.Duration = (*time.Duration)(unsafe.Pointer(&delay)) time.Sleep(*del * time.Millisecond) Restart <- struct{}{} - }(delay * time.Hour.Milliseconds()) + }(delay) } diff --git a/server/websocket.go b/server/websocket.go index b01fd21..24865f7 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -485,13 +485,13 @@ var wsApi = map[string]func(*coolq.CQBot, gjson.Result) coolq.MSG{ var delay int64 = 0 delay = p.Get("delay").Int() if delay < 0 { - return Failed(100, "Invalid delay") + delay = 0 } defer func(delay int64) { var del *time.Duration = (*time.Duration)(unsafe.Pointer(&delay)) - time.Sleep(*del * time.Millisecond) + time.Sleep(*del * time.Microsecond) Restart <- struct{}{} - }(delay * time.Hour.Milliseconds()) + }(delay) return coolq.MSG{"data": nil, "retcode": 0, "status": "async"} },