diff --git a/drivers/115/appver.go b/drivers/115/appver.go index 925cd17a..bc937538 100644 --- a/drivers/115/appver.go +++ b/drivers/115/appver.go @@ -1,43 +1,60 @@ package _115 import ( + "errors" "github.com/OpenListTeam/OpenList/v4/drivers/base" + "github.com/OpenListTeam/OpenList/v4/pkg/utils" driver115 "github.com/SheltonZhu/115driver/pkg/driver" log "github.com/sirupsen/logrus" ) var ( md5Salt = "Qclm8MGWUv59TnrR0XPg" - appVer = "27.0.5.7" + appVer = "35.6.0.3" ) -func (d *Pan115) getAppVersion() ([]driver115.AppVersion, error) { - result := driver115.VersionResp{} - resp, err := base.RestyClient.R().Get(driver115.ApiGetVersion) - - err = driver115.CheckErr(err, &result, resp) +func (d *Pan115) getAppVersion() (string, error) { + result := VersionResp{} + res, err := base.RestyClient.R().Get(driver115.ApiGetVersion) if err != nil { - return nil, err + return "", err } - - return result.Data.GetAppVersions(), nil + err = utils.Json.Unmarshal(res.Body(), &result) + if err != nil { + return "", err + } + if len(result.Error) > 0 { + return "", errors.New(result.Error) + } + return result.Data.Win.Version, nil } func (d *Pan115) getAppVer() string { - // todo add some cache? - vers, err := d.getAppVersion() + ver, err := d.getAppVersion() if err != nil { log.Warnf("[115] get app version failed: %v", err) return appVer } - for _, ver := range vers { - if ver.AppName == "win" { - return ver.Version - } + if len(ver) > 0 { + return ver } return appVer } func (d *Pan115) initAppVer() { appVer = d.getAppVer() + log.Debugf("use app version: %v", appVer) +} + +type VersionResp struct { + Error string `json:"error,omitempty"` + Data Versions `json:"data"` +} + +type Versions struct { + Win Version `json:"win"` +} + +type Version struct { + Version string `json:"version_code"` }