mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 14:57:16 +08:00
fix: 面板更新
This commit is contained in:
@@ -46,7 +46,7 @@ func (r *Jobs) Register(c *cron.Cron) error {
|
||||
if _, err := c.AddJob("0 4 * * *", NewCertRenew(r.conf, r.db, r.log, r.setting, r.cert, r.certAccount)); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := c.AddJob("0 2 * * *", NewPanelTask(r.db, r.log, r.backup, r.cache, r.task, r.setting)); err != nil {
|
||||
if _, err := c.AddJob("0 2 * * *", NewPanelTask(r.conf, r.db, r.log, r.backup, r.cache, r.task, r.setting)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
package job
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"math/rand/v2"
|
||||
"runtime"
|
||||
"runtime/debug"
|
||||
"time"
|
||||
|
||||
"github.com/acepanel/panel/pkg/config"
|
||||
"github.com/hashicorp/go-version"
|
||||
"github.com/libtnb/utils/collect"
|
||||
"gorm.io/gorm"
|
||||
@@ -19,6 +21,7 @@ import (
|
||||
// PanelTask 面板每日任务
|
||||
type PanelTask struct {
|
||||
api *api.API
|
||||
conf *config.Config
|
||||
db *gorm.DB
|
||||
log *slog.Logger
|
||||
backupRepo biz.BackupRepo
|
||||
@@ -27,9 +30,10 @@ type PanelTask struct {
|
||||
settingRepo biz.SettingRepo
|
||||
}
|
||||
|
||||
func NewPanelTask(db *gorm.DB, log *slog.Logger, backup biz.BackupRepo, cache biz.CacheRepo, task biz.TaskRepo, setting biz.SettingRepo) *PanelTask {
|
||||
func NewPanelTask(conf *config.Config, db *gorm.DB, log *slog.Logger, backup biz.BackupRepo, cache biz.CacheRepo, task biz.TaskRepo, setting biz.SettingRepo) *PanelTask {
|
||||
return &PanelTask{
|
||||
api: api.NewAPI(app.Version, app.Locale),
|
||||
conf: conf,
|
||||
db: db,
|
||||
log: log,
|
||||
backupRepo: backup,
|
||||
@@ -141,7 +145,9 @@ func (r *PanelTask) updatePanel() {
|
||||
return
|
||||
}
|
||||
if download := collect.First(panel.Downloads); download != nil {
|
||||
if err = r.backupRepo.UpdatePanel(panel.Version, download.URL, download.Checksum); err != nil {
|
||||
url := fmt.Sprintf("https://%s%s", r.conf.App.DownloadEndpoint, download.URL)
|
||||
checksum := fmt.Sprintf("https://%s%s", r.conf.App.DownloadEndpoint, download.Checksum)
|
||||
if err = r.backupRepo.UpdatePanel(panel.Version, url, checksum); err != nil {
|
||||
r.log.Warn("[PanelTask] failed to update panel", slog.Any("err", err))
|
||||
_ = r.backupRepo.FixPanel()
|
||||
}
|
||||
|
||||
@@ -111,7 +111,10 @@ func (s *CliService) Update(ctx context.Context, cmd *cli.Command) error {
|
||||
return errors.New(s.t.Get("Download URL is empty"))
|
||||
}
|
||||
|
||||
return s.backupRepo.UpdatePanel(panel.Version, download.URL, download.Checksum)
|
||||
url := fmt.Sprintf("https://%s%s", s.conf.App.DownloadEndpoint, download.URL)
|
||||
checksum := fmt.Sprintf("https://%s%s", s.conf.App.DownloadEndpoint, download.Checksum)
|
||||
|
||||
return s.backupRepo.UpdatePanel(panel.Version, url, checksum)
|
||||
}
|
||||
|
||||
func (s *CliService) Sync(ctx context.Context, cmd *cli.Command) error {
|
||||
|
||||
@@ -316,10 +316,12 @@ func (s *HomeService) Update(w http.ResponseWriter, r *http.Request) {
|
||||
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version download link"))
|
||||
return
|
||||
}
|
||||
ver, url, checksum := panel.Version, download.URL, download.Checksum
|
||||
|
||||
url := fmt.Sprintf("https://%s%s", s.conf.App.DownloadEndpoint, download.URL)
|
||||
checksum := fmt.Sprintf("https://%s%s", s.conf.App.DownloadEndpoint, download.Checksum)
|
||||
|
||||
app.Status = app.StatusUpgrade
|
||||
if err = s.backupRepo.UpdatePanel(ver, url, checksum); err != nil {
|
||||
if err = s.backupRepo.UpdatePanel(panel.Version, url, checksum); err != nil {
|
||||
app.Status = app.StatusFailed
|
||||
Error(w, http.StatusInternalServerError, "%v", err)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user