Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
G
go-cqhttp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
go-cqhttp
Commits
7ae9c2d2
Commit
7ae9c2d2
authored
Oct 05, 2020
by
Mrs4s
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://github.com/Mrs4s/go-cqhttp
into dev
parents
31f24525
51101f02
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
258 additions
and
10 deletions
+258
-10
docs/adminApi.md
docs/adminApi.md
+232
-0
global/config.go
global/config.go
+2
-0
main.go
main.go
+5
-1
server/apiAdmin.go
server/apiAdmin.go
+19
-9
No files found.
docs/adminApi.md
0 → 100644
View file @
7ae9c2d2
# 管理 API
> 支持跨域
## 公共参数
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ----------- |
| access_token | string | 校验口令,config.json中配置 |
## admin/do_restart
### 热重启
> 热重启
> ps: 目前不支持ws部分的修改生效
method:
`POST/GET`
参数:
| 参数名 | 类型 | 说明 |
| ------ | ---- | ------------------------------------- |
| 无|||
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/get_web_write
> 拉取验证码/设备锁
method:
`GET`
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ----------- |
| 无|||
返回:
```
json
{
"data"
:
{
"ispic"
:
true
,
"picbase64"
:
"xxxxx"
},
"retcode"
:
0
,
"status"
:
"ok"
}
```
| 参数名 | 类型 | 说明 |
| ------ | ------ | ----------- |
| ispic| bool| 是否是验证码类型 true是,false为不是(比如设备锁|
|picbas64| string| 验证码的base64编码内容,加上头,放入img标签即可显示|
### admin/do_web_write
> web输入验证码/设备锁确认
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ----------- |
| input | string | 输入的类容 |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_restart_docker
> 冷重启
> 注意:此api 会直接结束掉进程,需要依赖docker/supervisor等进程管理工具来自动拉起
method:
`POST`
参数:
| 参数名 |类型 | 说明 |
| ------ | ------ | -----------|
| 无 | | |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_config_base
> 基础配置
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| uin | string | qq号 |
| password | string | qq密码 |
| enable_db | string | 是否启动数据库,填 'true' 或者 'false' |
| access_token | string | 授权 token |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_config_http
> http服务配置
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| port | string | 服务端口 |
| host | string | 服务监听地址 |
| enable | string | 是否启用 ,填 'true' 或者 'false' |
| timeout | string | http请求超时时间 |
| post_url | string | post上报地址 不需要就填空字符串,或者不填|
| post_secret | string | post上报的secret 不需要就填空字符串,或者不填 |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_config_ws
> 正向ws设置
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| port | string | 服务端口 |
| host | string | 服务监听地址 |
| enable | string | 是否启用 ,填 'true' 或者 'false' |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_config_reverse
> 反向ws配置
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| port | string | 服务端口 |
| host | string | 服务监听地址 |
| enable | string | 是否启用 ,填 'true' 或者 'false' |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/do_config_json
> 直接修改 config.json配置
method:
`POST`
formdata
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| json | string | 完整的config.json的配合,json字符串 |
返回:
```
json
{
"data"
:
{},
"retcode"
:
0
,
"status"
:
"ok"
}
```
### admin/get_config_json
> 获取当前 config.json配置
method:
`GET`
参数:
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| 无 | | |
返回:
```
json
{
"data"
:
{
"config"
:
"xxxx"
},
"retcode"
:
0
,
"status"
:
"ok"
}
```
| 参数名 | 类型 | 说明 |
| ------ | ------ | ------------------------------------------------------------ |
| config | string | 完整的config.json的配合,json字符串 |
global/config.go
View file @
7ae9c2d2
...
...
@@ -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
,
},
...
...
main.go
View file @
7ae9c2d2
...
...
@@ -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
...
...
server/apiAdmin.go
View file @
7ae9c2d2
...
...
@@ -17,6 +17,7 @@ import (
"io/ioutil"
"net/http"
"os"
"os/signal"
"strconv"
"strings"
"time"
...
...
@@ -49,7 +50,7 @@ var HttpuriAdmin = map[string]func(s *webServer, c *gin.Context){
"do_config_ws"
:
AdminDoConfigWs
,
//修改config.json的正向ws部分
"do_config_reverse"
:
AdminDoConfigReverse
,
//修改config.json 中的反向ws部分
"do_config_json"
:
AdminDoConfigJson
,
//直接修改 config.json配置
"get_config_json"
:
Admin
DoConfigJson
,
//拉取 当前的config.json配置
"get_config_json"
:
Admin
GetConfigJson
,
//拉取 当前的config.json配置
}
func
Failed
(
code
int
,
msg
string
)
coolq
.
MSG
{
...
...
@@ -69,12 +70,21 @@ func (s *webServer) Run(addr string, cli *client.QQClient) *coolq.CQBot {
s
.
engine
.
Any
(
"/admin/:action"
,
s
.
admin
)
go
func
()
{
log
.
Infof
(
"Admin API 服务器已启动: %v"
,
addr
)
err
:=
s
.
engine
.
Run
(
addr
)
if
err
!=
nil
{
log
.
Error
(
err
)
log
.
Infof
(
"请检查端口是否被占用."
)
time
.
Sleep
(
time
.
Second
*
5
)
//开启端口监听
if
s
.
Conf
.
WebUi
.
Enabled
{
log
.
Infof
(
"Admin API 服务器已启动: %v"
,
addr
)
err
:=
s
.
engine
.
Run
(
addr
)
if
err
!=
nil
{
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
)
}
}()
...
...
@@ -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
.
Warn
f
(
"请输入验证码 (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 继续...."
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment