mirror of
https://github.com/acepanel/panel.git
synced 2026-02-06 10:07:15 +08:00
feat: 更新日志接口
This commit is contained in:
@@ -118,33 +118,33 @@ func (c *InfoController) CountInfo(ctx http.Context) http.Response {
|
||||
}
|
||||
|
||||
db, err := sql.Open("mysql", "root:"+rootPassword+"@unix(/tmp/mysql.sock)/")
|
||||
defer db.Close()
|
||||
if err != nil {
|
||||
facades.Log().With(map[string]any{
|
||||
"error": err.Error(),
|
||||
}).Error("[面板][InfoController] 获取数据库列表失败")
|
||||
databaseCount = -1
|
||||
} else {
|
||||
defer db.Close()
|
||||
rows, err := db.Query("SHOW DATABASES")
|
||||
defer rows.Close()
|
||||
if err != nil {
|
||||
facades.Log().With(map[string]any{
|
||||
"error": err.Error(),
|
||||
}).Error("[面板][InfoController] 获取数据库列表失败")
|
||||
databaseCount = -1
|
||||
}
|
||||
defer rows.Close()
|
||||
} else {
|
||||
var databases []database
|
||||
for rows.Next() {
|
||||
var d database
|
||||
err := rows.Scan(&d.Name)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
var databases []database
|
||||
for rows.Next() {
|
||||
var d database
|
||||
err := rows.Scan(&d.Name)
|
||||
if err != nil {
|
||||
continue
|
||||
databases = append(databases, d)
|
||||
}
|
||||
|
||||
databases = append(databases, d)
|
||||
databaseCount = int64(len(databases))
|
||||
}
|
||||
databaseCount = int64(len(databases))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -244,23 +244,45 @@ func (c *InfoController) CheckUpdate(ctx http.Context) http.Response {
|
||||
|
||||
if tools.VersionCompare(version, remote.Version, ">=") {
|
||||
return Success(ctx, http.Json{
|
||||
"update": false,
|
||||
"version": remote.Version,
|
||||
"name": remote.Name,
|
||||
"body": remote.Body,
|
||||
"date": remote.Date,
|
||||
"update": false,
|
||||
})
|
||||
}
|
||||
|
||||
return Success(ctx, http.Json{
|
||||
"update": true,
|
||||
"version": remote.Version,
|
||||
"name": remote.Name,
|
||||
"body": remote.Body,
|
||||
"date": remote.Date,
|
||||
"update": true,
|
||||
})
|
||||
}
|
||||
|
||||
// UpdateInfo 获取更新信息
|
||||
func (c *InfoController) UpdateInfo(ctx http.Context) http.Response {
|
||||
version := facades.Config().GetString("panel.version")
|
||||
current, err := tools.GetLatestPanelVersion()
|
||||
if err != nil {
|
||||
return Error(ctx, http.StatusInternalServerError, "获取最新版本失败")
|
||||
}
|
||||
|
||||
if tools.VersionCompare(version, current.Version, ">=") {
|
||||
return Error(ctx, http.StatusInternalServerError, "当前版本已是最新版本")
|
||||
}
|
||||
|
||||
versions, err := tools.GenerateVersions(version, current.Version)
|
||||
if err != nil {
|
||||
return Error(ctx, http.StatusInternalServerError, "获取更新信息失败")
|
||||
}
|
||||
|
||||
var versionInfo []tools.PanelInfo
|
||||
for _, v := range versions {
|
||||
info, err := tools.GetPanelVersion(v)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
versionInfo = append(versionInfo, info)
|
||||
}
|
||||
|
||||
return Success(ctx, versionInfo)
|
||||
}
|
||||
|
||||
// Update 更新面板
|
||||
func (c *InfoController) Update(ctx http.Context) http.Response {
|
||||
var task models.Task
|
||||
|
||||
@@ -8,6 +8,6 @@ func init() {
|
||||
config := facades.Config()
|
||||
config.Add("panel", map[string]any{
|
||||
"name": "耗子Linux面板",
|
||||
"version": "v2.0.58",
|
||||
"version": "v2.0.56",
|
||||
})
|
||||
}
|
||||
|
||||
@@ -241,6 +241,10 @@ func GetPanelVersion(version string) (PanelInfo, error) {
|
||||
var output string
|
||||
isChina := IsChina()
|
||||
|
||||
if !strings.HasPrefix(version, "v") {
|
||||
version = "v" + version
|
||||
}
|
||||
|
||||
if isChina {
|
||||
output = Exec(`curl -sSL "https://jihulab.com/api/v4/projects/haozi-team%2Fpanel/releases/` + version + `"`)
|
||||
} else {
|
||||
|
||||
@@ -21,6 +21,7 @@ func Api() {
|
||||
r.Middleware(middleware.Jwt()).Get("countInfo", infoController.CountInfo)
|
||||
r.Middleware(middleware.Jwt()).Get("installedDbAndPhp", infoController.InstalledDbAndPhp)
|
||||
r.Middleware(middleware.Jwt()).Get("checkUpdate", infoController.CheckUpdate)
|
||||
r.Middleware(middleware.Jwt()).Get("updateInfo", infoController.UpdateInfo)
|
||||
r.Middleware(middleware.Jwt()).Post("update", infoController.Update)
|
||||
r.Middleware(middleware.Jwt()).Post("restart", infoController.Restart)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user