model

package
v3.0.0-beta.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2022 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SITE = iota
	STYLE
	PREVIEW
	GLOBAL
	SINGLE
	ARIA2
)
View Source
const (
	PUBLIC = iota
	PRIVATE
	READONLY
	DEPRECATED
)
View Source
const (
	GENERAL = iota
	GUEST   // only one exists
	ADMIN
)

Variables

This section is empty.

Functions

func ExtractFolder

func ExtractFolder(objs []Obj, extractFolder string)

func SortFiles

func SortFiles(objs []Obj, orderBy, orderDirection string)

Types

type FileStream

type FileStream struct {
	Obj
	io.ReadCloser
	Mimetype     string
	WebPutAsTask bool
}

func (*FileStream) GetMimetype

func (f *FileStream) GetMimetype() string

func (*FileStream) GetReadCloser

func (f *FileStream) GetReadCloser() io.ReadCloser

func (*FileStream) NeedStore

func (f *FileStream) NeedStore() bool

func (*FileStream) SetReadCloser

func (f *FileStream) SetReadCloser(rc io.ReadCloser)

type FileStreamer

type FileStreamer interface {
	io.ReadCloser
	Obj
	GetMimetype() string
	SetReadCloser(io.ReadCloser)
	NeedStore() bool
	GetReadCloser() io.ReadCloser
}

type FsOtherArgs

type FsOtherArgs struct {
	Path   string      `json:"path" form:"path"`
	Method string      `json:"method" form:"method"`
	Data   interface{} `json:"data" form:"data"`
}
type Link struct {
	URL        string         `json:"url"`
	Header     http.Header    `json:"header"` // needed header
	Data       io.ReadCloser  // return file reader directly
	Status     int            // status maybe 200 or 206, etc
	FilePath   *string        // local file, return the filepath
	Expiration *time.Duration // url expiration time
}

type LinkArgs

type LinkArgs struct {
	IP     string
	Header http.Header
	Type   string
}

type ListArgs

type ListArgs struct {
	ReqPath string
}

type Meta

type Meta struct {
	ID       uint   `json:"id" gorm:"primaryKey"`
	Path     string `json:"path" gorm:"unique" binding:"required"`
	Password string `json:"password"`
	PSub     bool   `json:"p_sub"`
	Write    bool   `json:"write"`
	WSub     bool   `json:"w_sub"`
	Hide     string `json:"hide"`
	HSub     bool   `json:"h_sub"`
	Readme   string `json:"readme"`
	RSub     bool   `json:"r_sub"`
}

type Obj

type Obj interface {
	GetSize() int64
	GetName() string
	ModTime() time.Time
	IsDir() bool
	GetID() string
	GetPath() string
}

type ObjThumb

type ObjThumb struct {
	Object
	Thumbnail
}

type ObjThumbURL

type ObjThumbURL struct {
	Object
	Thumbnail
	Url
}

type Object

type Object struct {
	ID       string
	Path     string
	Name     string
	Size     int64
	Modified time.Time
	IsFolder bool
}

func (*Object) GetID

func (o *Object) GetID() string

func (*Object) GetName

func (o *Object) GetName() string

func (*Object) GetPath

func (o *Object) GetPath() string

func (*Object) GetSize

func (o *Object) GetSize() int64

func (*Object) IsDir

func (o *Object) IsDir() bool

func (*Object) ModTime

func (o *Object) ModTime() time.Time

func (*Object) SetPath

func (o *Object) SetPath(id string)

type ObjectURL

type ObjectURL struct {
	Object
	Url
}

type OtherArgs

type OtherArgs struct {
	Obj    Obj
	Method string
	Data   interface{}
}

type Proxy

type Proxy struct {
	WebProxy     bool   `json:"web_proxy"`
	WebdavPolicy string `json:"webdav_policy"`
	DownProxyUrl string `json:"down_proxy_url"`
}

func (Proxy) Webdav302

func (p Proxy) Webdav302() bool

func (Proxy) WebdavNative

func (p Proxy) WebdavNative() bool

func (Proxy) WebdavProxy

func (p Proxy) WebdavProxy() bool

type SetPath

type SetPath interface {
	SetPath(path string)
}

type SettingItem

type SettingItem struct {
	Key     string `json:"key" gorm:"primaryKey" binding:"required"` // unique key
	Value   string `json:"value"`                                    // value
	Help    string `json:"help"`                                     // help message
	Type    string `json:"type"`                                     // string, number, bool, select
	Options string `json:"options"`                                  // values for select
	Group   int    `json:"group"`                                    // use to group setting in frontend
	Flag    int    `json:"flag"`                                     // 0 = public, 1 = private, 2 = readonly, 3 = deprecated, etc.
}

func (SettingItem) IsDeprecated

func (s SettingItem) IsDeprecated() bool

type Sort

type Sort struct {
	OrderBy        string `json:"order_by"`
	OrderDirection string `json:"order_direction"`
	ExtractFolder  string `json:"extract_folder"`
}

type Storage

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
	Sort
	Proxy
}

func (*Storage) GetStorage

func (s *Storage) GetStorage() *Storage

func (*Storage) SetStatus

func (s *Storage) SetStatus(status string)

type Thumb

type Thumb interface {
	Thumb() string
}

type Thumbnail

type Thumbnail struct {
	Thumbnail string
}

func (Thumbnail) Thumb

func (t Thumbnail) Thumb() string

type URL

type URL interface {
	URL() string
}

type Url

type Url struct {
	Url string
}

func (Url) URL

func (w Url) URL() string

type User

type User struct {
	ID       uint   `json:"id" gorm:"primaryKey"`                      // unique key
	Username string `json:"username" gorm:"unique" binding:"required"` // username
	Password string `json:"password"`                                  // password
	BasePath string `json:"base_path"`                                 // base path
	Role     int    `json:"role"`                                      // user's role
	// Determine permissions by bit
	//  0: can see hidden files
	//  1: can access without password
	//  2: can add aria2 tasks
	//  3: can mkdir and upload
	//  4: can rename
	//  5: can move
	//  6: can copy
	//  7: can remove
	//  8: webdav read
	//  9: webdav write
	Permission int32  `json:"permission"`
	OtpSecret  string `json:"-"`
}

func (User) CanAccessWithoutPassword

func (u User) CanAccessWithoutPassword() bool

func (User) CanAddAria2Tasks

func (u User) CanAddAria2Tasks() bool

func (User) CanCopy

func (u User) CanCopy() bool

func (User) CanMove

func (u User) CanMove() bool

func (User) CanRemove

func (u User) CanRemove() bool

func (User) CanRename

func (u User) CanRename() bool

func (User) CanSeeHides

func (u User) CanSeeHides() bool

func (User) CanWebdavManage

func (u User) CanWebdavManage() bool

func (User) CanWebdavRead

func (u User) CanWebdavRead() bool

func (User) CanWrite

func (u User) CanWrite() bool

func (User) IsAdmin

func (u User) IsAdmin() bool

func (User) IsGuest

func (u User) IsGuest() bool

func (User) ValidatePassword

func (u User) ValidatePassword(password string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL