mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2026-05-06 23:31:59 +08:00
feat(alias): support pass through provider (#1269)
This commit is contained in:
@@ -80,6 +80,10 @@ type SetPath interface {
|
||||
SetPath(path string)
|
||||
}
|
||||
|
||||
type ObjWithProvider interface {
|
||||
GetProvider() string
|
||||
}
|
||||
|
||||
func SortFiles(objs []Obj, orderBy, orderDirection string) {
|
||||
if orderBy == "" {
|
||||
return
|
||||
@@ -166,6 +170,16 @@ func GetUrl(obj Obj) (url string, ok bool) {
|
||||
return url, false
|
||||
}
|
||||
|
||||
func GetProvider(obj Obj) (string, bool) {
|
||||
if obj, ok := obj.(ObjWithProvider); ok {
|
||||
return obj.GetProvider(), true
|
||||
}
|
||||
if unwrap, ok := obj.(ObjUnwrap); ok {
|
||||
return GetProvider(unwrap.Unwrap())
|
||||
}
|
||||
return "unknown", false
|
||||
}
|
||||
|
||||
func GetRawObject(obj Obj) *Object {
|
||||
switch v := obj.(type) {
|
||||
case *ObjThumbURL:
|
||||
@@ -174,6 +188,8 @@ func GetRawObject(obj Obj) *Object {
|
||||
return &v.Object
|
||||
case *ObjectURL:
|
||||
return &v.Object
|
||||
case *ObjectProvider:
|
||||
return &v.Object
|
||||
case *Object:
|
||||
return v
|
||||
}
|
||||
|
||||
@@ -99,3 +99,16 @@ type ObjThumbURL struct {
|
||||
Thumbnail
|
||||
Url
|
||||
}
|
||||
|
||||
type Provider struct {
|
||||
Provider string
|
||||
}
|
||||
|
||||
func (p Provider) GetProvider() string {
|
||||
return p.Provider
|
||||
}
|
||||
|
||||
type ObjectProvider struct {
|
||||
Object
|
||||
Provider
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user