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"} },