mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 19:43:49 +08:00
Merge pull request #340 from scjtqs/adminApiDev
fix: 修复 无法关闭 web admin监听的问题
This commit is contained in:
commit
d4811d53e7
@ -81,6 +81,7 @@ type GoCQReverseWebsocketConfig struct {
|
||||
|
||||
type GoCqWebUi struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Host string `json:"host"`
|
||||
WebUiPort uint64 `json:"web_ui_port"`
|
||||
WebInput bool `json:"web_input"`
|
||||
}
|
||||
@ -130,6 +131,7 @@ func DefaultConfig() *JsonConfig {
|
||||
},
|
||||
WebUi: &GoCqWebUi{
|
||||
Enabled: true,
|
||||
Host: "0.0.0.0",
|
||||
WebInput: false,
|
||||
WebUiPort: 9999,
|
||||
},
|
||||
|
6
main.go
6
main.go
@ -237,17 +237,21 @@ func main() {
|
||||
conf.WebUi = &global.GoCqWebUi{
|
||||
Enabled: true,
|
||||
WebInput: false,
|
||||
Host: "0.0.0.0",
|
||||
WebUiPort: 9999,
|
||||
}
|
||||
}
|
||||
if conf.WebUi.WebUiPort <= 0 {
|
||||
conf.WebUi.WebUiPort = 9999
|
||||
}
|
||||
if conf.WebUi.Host == "" {
|
||||
conf.WebUi.Host = "0.0.0.0"
|
||||
}
|
||||
confErr := conf.Save("config.json")
|
||||
if confErr != nil {
|
||||
log.Error("保存配置文件失败")
|
||||
}
|
||||
b := server.WebServer.Run(fmt.Sprintf("%s:%d", "0.0.0.0", conf.WebUi.WebUiPort), cli)
|
||||
b := server.WebServer.Run(fmt.Sprintf("%s:%d", conf.WebUi.Host, conf.WebUi.WebUiPort), cli)
|
||||
c := server.Console
|
||||
signal.Notify(c, os.Interrupt, os.Kill)
|
||||
<-c
|
||||
|
@ -17,6 +17,7 @@ import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@ -69,6 +70,8 @@ func (s *webServer) Run(addr string, cli *client.QQClient) *coolq.CQBot {
|
||||
s.engine.Any("/admin/:action", s.admin)
|
||||
|
||||
go func() {
|
||||
//开启端口监听
|
||||
if s.Conf.WebUi.Enabled {
|
||||
log.Infof("Admin API 服务器已启动: %v", addr)
|
||||
err := s.engine.Run(addr)
|
||||
if err != nil {
|
||||
@ -77,6 +80,13 @@ func (s *webServer) Run(addr string, cli *client.QQClient) *coolq.CQBot {
|
||||
time.Sleep(time.Second * 5)
|
||||
os.Exit(1)
|
||||
}
|
||||
} else {
|
||||
//关闭端口监听
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt, os.Kill)
|
||||
<-c
|
||||
os.Exit(1)
|
||||
}
|
||||
}()
|
||||
s.Dologin()
|
||||
s.UpServer()
|
||||
@ -99,7 +109,7 @@ func (s *webServer) Dologin() {
|
||||
img, _, _ := image.Decode(bytes.NewReader(rsp.CaptchaImage))
|
||||
fmt.Println(asciiart.New("image", img).Art)
|
||||
if conf.WebUi.WebInput {
|
||||
log.Warn("请输入验证码 (captcha.jpg): (http://127.0.0.1/admin/web_write 输入)")
|
||||
log.Warnf("请输入验证码 (captcha.jpg): (http://%s:%d/admin/do_web_write 输入)", conf.WebUi.Host, conf.WebUi.WebUiPort)
|
||||
text = <-WebInput
|
||||
} else {
|
||||
log.Warn("请输入验证码 (captcha.jpg): (Enter 提交)")
|
||||
@ -111,7 +121,7 @@ func (s *webServer) Dologin() {
|
||||
case client.UnsafeDeviceError:
|
||||
log.Warnf("账号已开启设备锁,请前往 -> %v <- 验证并重启Bot.", rsp.VerifyUrl)
|
||||
if conf.WebUi.WebInput {
|
||||
log.Infof(" (http://127.0.0.1/admin/web_write 确认后继续)....")
|
||||
log.Infof(" (http://%s:%d/admin/do_web_write 确认后继续)....", conf.WebUi.Host, conf.WebUi.WebUiPort)
|
||||
text = <-WebInput
|
||||
} else {
|
||||
log.Infof(" 按 Enter 继续....")
|
||||
|
Loading…
x
Reference in New Issue
Block a user