alist/drivers/driver.go

40 lines
821 B
Go
Raw Normal View History

2021-10-26 14:28:37 +00:00
package drivers
2021-10-27 14:45:36 +00:00
import (
"encoding/json"
"github.com/Xhofe/alist/model"
2021-10-28 16:02:02 +00:00
"github.com/gofiber/fiber/v2"
2021-10-27 14:45:36 +00:00
)
2021-10-26 14:28:37 +00:00
type Driver interface {
Path(path string, account *model.Account) (*model.File, []*model.File, error)
Link(path string, account *model.Account) (string,error)
2021-10-27 10:59:03 +00:00
Save(account *model.Account, old *model.Account) error
2021-10-28 16:02:02 +00:00
Proxy(ctx *fiber.Ctx)
2021-10-26 14:28:37 +00:00
}
var driversMap = map[string]Driver{}
func RegisterDriver(name string, driver Driver) {
driversMap[name] = driver
}
func GetDriver(name string) (driver Driver, ok bool) {
driver, ok = driversMap[name]
return
}
func GetDriverNames() []string {
names := make([]string, 0)
for k, _ := range driversMap {
names = append(names, k)
}
return names
}
2021-10-27 14:45:36 +00:00
type Json map[string]interface{}
func JsonStr(j Json) string {
data, _ := json.Marshal(j)
return string(data)
}