mirror of https://github.com/Xhofe/alist
🐛 fix change name error
parent
aeb72320ca
commit
27e61c9eb8
|
@ -347,6 +347,7 @@ func (a AliDrive) RefreshToken(account *model.Account) error {
|
|||
func (a AliDrive) Save(account *model.Account, old *model.Account) error {
|
||||
if old != nil {
|
||||
conf.Cron.Remove(cron.EntryID(old.CronId))
|
||||
model.DeleteAccountFromMap(old.Name)
|
||||
}
|
||||
if account.RootFolder == "" {
|
||||
account.RootFolder = "root"
|
||||
|
@ -367,7 +368,9 @@ func (a AliDrive) Save(account *model.Account, old *model.Account) error {
|
|||
account.DriveId = resp["default_drive_id"].(string)
|
||||
cronId, err := conf.Cron.AddFunc("@every 2h", func() {
|
||||
name := account.Name
|
||||
log.Debugf("ali account name: %s", name)
|
||||
newAccount, ok := model.GetAccount(name)
|
||||
log.Debugf("ali account: %+v", newAccount)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/robfig/cron/v3"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"path/filepath"
|
||||
"time"
|
||||
)
|
||||
|
@ -269,6 +270,7 @@ func (o Onedrive) Save(account *model.Account, old *model.Account) error {
|
|||
}
|
||||
if old != nil {
|
||||
conf.Cron.Remove(cron.EntryID(old.CronId))
|
||||
model.DeleteAccountFromMap(old.Name)
|
||||
}
|
||||
account.RootFolder = utils.ParsePath(account.RootFolder)
|
||||
err := o.RefreshToken(account)
|
||||
|
@ -277,7 +279,9 @@ func (o Onedrive) Save(account *model.Account, old *model.Account) error {
|
|||
}
|
||||
cronId, err := conf.Cron.AddFunc("@every 1h", func() {
|
||||
name := account.Name
|
||||
log.Debugf("onedrive account name: %s", name)
|
||||
newAccount, ok := model.GetAccount(name)
|
||||
log.Debugf("onedrive account: %+v", newAccount)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -68,6 +68,10 @@ func DeleteAccount(id uint) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func DeleteAccountFromMap(name string) {
|
||||
delete(accountsMap, name)
|
||||
}
|
||||
|
||||
func AccountsCount() int {
|
||||
return len(accountsMap)
|
||||
}
|
||||
|
@ -86,6 +90,15 @@ func GetAccount(name string) (Account, bool) {
|
|||
return account, ok
|
||||
}
|
||||
|
||||
func GetAccountById(id uint) (*Account, error) {
|
||||
var account Account
|
||||
account.ID = id
|
||||
if err := conf.DB.First(&account).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &account, nil
|
||||
}
|
||||
|
||||
func GetAccountFiles() ([]*File, error) {
|
||||
files := make([]*File, 0)
|
||||
var accounts []Account
|
||||
|
|
|
@ -56,18 +56,18 @@ func SaveAccount(c *gin.Context) {
|
|||
ErrorResp(c, fmt.Errorf("no [%s] driver", req.Type), 400)
|
||||
return
|
||||
}
|
||||
old, ok := model.GetAccount(req.Name)
|
||||
old, err := model.GetAccountById(req.ID)
|
||||
if err != nil {
|
||||
ErrorResp(c, err, 400)
|
||||
return
|
||||
}
|
||||
now := time.Now()
|
||||
req.UpdatedAt = &now
|
||||
if err := model.SaveAccount(&req); err != nil {
|
||||
ErrorResp(c, err, 500)
|
||||
} else {
|
||||
log.Debugf("save account: %+v", req)
|
||||
if ok {
|
||||
err = driver.Save(&req, &old)
|
||||
} else {
|
||||
err = driver.Save(&req, nil)
|
||||
}
|
||||
err = driver.Save(&req, old)
|
||||
if err != nil {
|
||||
ErrorResp(c, err, 500)
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue