alist/internal/model/storage.go

60 lines
1.7 KiB
Go
Raw Permalink Normal View History

2022-06-06 13:48:53 +00:00
package model
import (
"time"
)
2022-06-09 15:05:27 +00:00
2022-07-10 06:45:39 +00:00
type Storage struct {
ID uint `json:"id" gorm:"primaryKey"` // unique key
MountPath string `json:"mount_path" gorm:"unique" binding:"required"` // must be standardized
Order int `json:"order"` // use to sort
Driver string `json:"driver"` // driver used
CacheExpiration int `json:"cache_expiration"` // cache expire time
Status string `json:"status"`
Addition string `json:"addition" gorm:"type:text"` // Additional information, defined in the corresponding driver
Remark string `json:"remark"`
Modified time.Time `json:"modified"`
Disabled bool `json:"disabled"` // if disabled
DisableIndex bool `json:"disable_index"`
EnableSign bool `json:"enable_sign"`
2022-06-07 08:38:31 +00:00
Sort
Proxy
}
type Sort struct {
OrderBy string `json:"order_by"`
OrderDirection string `json:"order_direction"`
ExtractFolder string `json:"extract_folder"`
}
type Proxy struct {
2022-06-27 05:58:21 +00:00
WebProxy bool `json:"web_proxy"`
WebdavPolicy string `json:"webdav_policy"`
ProxyRange bool `json:"proxy_range"`
2022-06-07 08:38:31 +00:00
DownProxyUrl string `json:"down_proxy_url"`
2022-06-06 13:48:53 +00:00
}
2022-06-08 08:20:58 +00:00
2022-08-30 13:52:06 +00:00
func (s *Storage) GetStorage() *Storage {
return s
2022-06-08 08:20:58 +00:00
}
func (s *Storage) SetStorage(storage Storage) {
*s = storage
}
2022-08-30 13:52:06 +00:00
func (s *Storage) SetStatus(status string) {
s.Status = status
}
2022-06-27 05:58:21 +00:00
func (p Proxy) Webdav302() bool {
return p.WebdavPolicy == "302_redirect"
}
func (p Proxy) WebdavProxy() bool {
return p.WebdavPolicy == "use_proxy_url"
}
func (p Proxy) WebdavNative() bool {
return !p.Webdav302() && !p.WebdavProxy()
}