package scripts import ( "context" model "github.com/cloudreve/Cloudreve/v3/models" "github.com/cloudreve/Cloudreve/v3/pkg/util" "strconv" ) type UpgradeTo340 int // Run upgrade from older version to 3.4.0 func (script UpgradeTo340) Run(ctx context.Context) { // 取回老版本 aria2 设定 old := model.GetSettingByType([]string{"aria2"}) if len(old) == 0 { return } // 写入到新版本的节点设定 n, err := model.GetNodeByID(1) if err != nil { util.Log().Error("找不到主机节点, %s", err) } n.Aria2Enabled = old["aria2_rpcurl"] != "" n.Aria2OptionsSerialized.Options = old["aria2_options"] n.Aria2OptionsSerialized.Server = old["aria2_rpcurl"] interval, err := strconv.Atoi(old["aria2_interval"]) if err != nil { interval = 10 } n.Aria2OptionsSerialized.Interval = interval n.Aria2OptionsSerialized.TempPath = old["aria2_temp_path"] n.Aria2OptionsSerialized.Token = old["aria2_token"] if err := model.DB.Save(&n).Error; err != nil { util.Log().Error("无法保存主机节点 Aria2 配置信息, %s", err) } else { model.DB.Where("type = ?", "aria2").Delete(model.Setting{}) util.Log().Info("Aria2 配置信息已成功迁移至 3.4.0+ 版本的模式") } }