2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

feat: 传递channel参数

This commit is contained in:
2025-05-15 09:47:43 +08:00
parent 04c8eb5cad
commit 7f87030cc8
5 changed files with 18 additions and 11 deletions

View File

@@ -111,9 +111,11 @@ func (r *PanelTask) updatePanel() {
return
}
channel, _ := r.settingRepo.Get(biz.SettingKeyChannel)
// 加 300 秒确保在缓存更新后才更新面板
time.AfterFunc(time.Duration(rand.IntN(300))*time.Second+300*time.Second, func() {
panel, err := r.api.LatestVersion()
panel, err := r.api.LatestVersion(channel)
if err != nil {
return
}

View File

@@ -96,7 +96,8 @@ func (s *CliService) Start(ctx context.Context, cmd *cli.Command) error {
}
func (s *CliService) Update(ctx context.Context, cmd *cli.Command) error {
panel, err := s.api.LatestVersion()
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
panel, err := s.api.LatestVersion(channel)
if err != nil {
return errors.New(s.t.Get("Failed to get latest version: %v", err))
}

View File

@@ -230,7 +230,8 @@ func (s *DashboardService) CheckUpdate(w http.ResponseWriter, r *http.Request) {
}
current := app.Version
latest, err := s.api.LatestVersion()
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
latest, err := s.api.LatestVersion(channel)
if err != nil {
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
return
@@ -265,7 +266,8 @@ func (s *DashboardService) UpdateInfo(w http.ResponseWriter, r *http.Request) {
}
current := app.Version
latest, err := s.api.LatestVersion()
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
latest, err := s.api.LatestVersion(channel)
if err != nil {
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
return
@@ -286,7 +288,7 @@ func (s *DashboardService) UpdateInfo(w http.ResponseWriter, r *http.Request) {
return
}
versions, err := s.api.IntermediateVersions()
versions, err := s.api.IntermediateVersions(channel)
if err != nil {
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the update information: %v", err))
return
@@ -306,7 +308,8 @@ func (s *DashboardService) Update(w http.ResponseWriter, r *http.Request) {
return
}
panel, err := s.api.LatestVersion()
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
panel, err := s.api.LatestVersion(channel)
if err != nil {
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
return

View File

@@ -18,12 +18,12 @@ func TestAPITestSuite(t *testing.T) {
}
func (s *APITestSuite) TestGetLatestVersion() {
_, err := s.api.LatestVersion()
_, err := s.api.LatestVersion("stable")
s.NoError(err)
}
func (s *APITestSuite) TestGetIntermediateVersions() {
_, err := s.api.IntermediateVersions()
_, err := s.api.IntermediateVersions("stable")
s.NoError(err)
}

View File

@@ -26,8 +26,8 @@ type Version struct {
type Versions []Version
// LatestVersion 返回最新版本
func (r *API) LatestVersion() (*Version, error) {
resp, err := r.client.R().SetResult(&Response{}).Get("/version/latest")
func (r *API) LatestVersion(channel string) (*Version, error) {
resp, err := r.client.R().SetResult(&Response{}).SetQueryParam("channel", channel).Get("/version/latest")
if err != nil {
return nil, err
}
@@ -52,9 +52,10 @@ func (r *API) LatestVersion() (*Version, error) {
}
// IntermediateVersions 返回当前版本之后的所有版本
func (r *API) IntermediateVersions() (*Versions, error) {
func (r *API) IntermediateVersions(channel string) (*Versions, error) {
resp, err := r.client.R().
SetQueryParam("start", r.panelVersion).
SetQueryParam("channel", channel).
SetResult(&Response{}).Get("/version/intermediate")
if err != nil {
return nil, err