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 {
|
type GoCqWebUi struct {
|
||||||
Enabled bool `json:"enabled"`
|
Enabled bool `json:"enabled"`
|
||||||
|
Host string `json:"host"`
|
||||||
WebUiPort uint64 `json:"web_ui_port"`
|
WebUiPort uint64 `json:"web_ui_port"`
|
||||||
WebInput bool `json:"web_input"`
|
WebInput bool `json:"web_input"`
|
||||||
}
|
}
|
||||||
@ -130,6 +131,7 @@ func DefaultConfig() *JsonConfig {
|
|||||||
},
|
},
|
||||||
WebUi: &GoCqWebUi{
|
WebUi: &GoCqWebUi{
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
|
Host: "0.0.0.0",
|
||||||
WebInput: false,
|
WebInput: false,
|
||||||
WebUiPort: 9999,
|
WebUiPort: 9999,
|
||||||
},
|
},
|
||||||
|
6
main.go
6
main.go
@ -237,17 +237,21 @@ func main() {
|
|||||||
conf.WebUi = &global.GoCqWebUi{
|
conf.WebUi = &global.GoCqWebUi{
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
WebInput: false,
|
WebInput: false,
|
||||||
|
Host: "0.0.0.0",
|
||||||
WebUiPort: 9999,
|
WebUiPort: 9999,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if conf.WebUi.WebUiPort <= 0 {
|
if conf.WebUi.WebUiPort <= 0 {
|
||||||
conf.WebUi.WebUiPort = 9999
|
conf.WebUi.WebUiPort = 9999
|
||||||
}
|
}
|
||||||
|
if conf.WebUi.Host == "" {
|
||||||
|
conf.WebUi.Host = "0.0.0.0"
|
||||||
|
}
|
||||||
confErr := conf.Save("config.json")
|
confErr := conf.Save("config.json")
|
||||||
if confErr != nil {
|
if confErr != nil {
|
||||||
log.Error("保存配置文件失败")
|
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
|
c := server.Console
|
||||||
signal.Notify(c, os.Interrupt, os.Kill)
|
signal.Notify(c, os.Interrupt, os.Kill)
|
||||||
<-c
|
<-c
|
||||||
|
@ -17,6 +17,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"os/signal"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -69,12 +70,21 @@ func (s *webServer) Run(addr string, cli *client.QQClient) *coolq.CQBot {
|
|||||||
s.engine.Any("/admin/:action", s.admin)
|
s.engine.Any("/admin/:action", s.admin)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
log.Infof("Admin API 服务器已启动: %v", addr)
|
//开启端口监听
|
||||||
err := s.engine.Run(addr)
|
if s.Conf.WebUi.Enabled {
|
||||||
if err != nil {
|
log.Infof("Admin API 服务器已启动: %v", addr)
|
||||||
log.Error(err)
|
err := s.engine.Run(addr)
|
||||||
log.Infof("请检查端口是否被占用.")
|
if err != nil {
|
||||||
time.Sleep(time.Second * 5)
|
log.Error(err)
|
||||||
|
log.Infof("请检查端口是否被占用.")
|
||||||
|
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)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
@ -99,7 +109,7 @@ func (s *webServer) Dologin() {
|
|||||||
img, _, _ := image.Decode(bytes.NewReader(rsp.CaptchaImage))
|
img, _, _ := image.Decode(bytes.NewReader(rsp.CaptchaImage))
|
||||||
fmt.Println(asciiart.New("image", img).Art)
|
fmt.Println(asciiart.New("image", img).Art)
|
||||||
if conf.WebUi.WebInput {
|
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
|
text = <-WebInput
|
||||||
} else {
|
} else {
|
||||||
log.Warn("请输入验证码 (captcha.jpg): (Enter 提交)")
|
log.Warn("请输入验证码 (captcha.jpg): (Enter 提交)")
|
||||||
@ -111,7 +121,7 @@ func (s *webServer) Dologin() {
|
|||||||
case client.UnsafeDeviceError:
|
case client.UnsafeDeviceError:
|
||||||
log.Warnf("账号已开启设备锁,请前往 -> %v <- 验证并重启Bot.", rsp.VerifyUrl)
|
log.Warnf("账号已开启设备锁,请前往 -> %v <- 验证并重启Bot.", rsp.VerifyUrl)
|
||||||
if conf.WebUi.WebInput {
|
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
|
text = <-WebInput
|
||||||
} else {
|
} else {
|
||||||
log.Infof(" 按 Enter 继续....")
|
log.Infof(" 按 Enter 继续....")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user