provider

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: May 23, 2021 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MetadataDirectoryName directory when metadata are stored
	MetadataDirectoryName = ".fibr"
)

Variables

View Source
var (
	// ArchiveExtensions contains extensions of Archive
	ArchiveExtensions = map[string]bool{".zip": true, ".tar": true, ".gz": true, ".rar": true}
	// AudioExtensions contains extensions of Audio
	AudioExtensions = map[string]bool{".mp3": true}
	// CodeExtensions contains extensions of Code
	CodeExtensions = map[string]bool{".html": true, ".css": true, ".js": true, ".jsx": true, ".json": true, ".yml": true, ".yaml": true, ".toml": true, ".md": true, ".go": true, ".py": true, ".java": true, ".xml": true}
	// ExcelExtensions contains extensions of Excel
	ExcelExtensions = map[string]bool{".xls": true, ".xlsx": true, ".xlsm": true}
	// ImageExtensions contains extensions of Image
	ImageExtensions = map[string]bool{".jpg": true, ".jpeg": true, ".png": true, ".gif": true, ".svg": true, ".tiff": true}
	// PdfExtensions contains extensions of Pdf
	PdfExtensions = map[string]bool{".pdf": true}
	// VideoExtensions contains extensions of Video
	VideoExtensions = map[string]string{".mp4": "video/mp4", ".mov": "video/quicktime", ".avi": "video/x-msvideo"}
	// WordExtensions contains extensions of Word
	WordExtensions = map[string]bool{".doc": true, ".docx": true, ".docm": true}
)
View Source
var (
	// NoneShare is an undefined Share
	NoneShare = Share{}
)

Functions

func ErrNotExist

func ErrNotExist(err error) error

ErrNotExist create a NotExist error

func FindIndex

func FindIndex(arr []string, value string) int

FindIndex finds index of given value into array, or -1 if not found

func GetPathname

func GetPathname(folder, name string, share Share) string

GetPathname computes pathname for given params

func IsNotExist

func IsNotExist(err error) bool

IsNotExist checks if error match a not found

func RemoveIndex

func RemoveIndex(arr []string, index int) []string

RemoveIndex removes element at given index, if valid

func SafeWrite

func SafeWrite(w io.Writer, content string)

SafeWrite writes content to writer with error handling

func SanitizeName

func SanitizeName(name string, removeSlash bool) (string, error)

SanitizeName return sanitized name (remove diacritics)

func SetPrefsCookie added in v0.4.1

func SetPrefsCookie(w http.ResponseWriter, request Request)

SetPrefsCookie set preferences cookie for given request

func URL added in v0.4.1

func URL(folder, name string, share Share) string

URL computes public URI for given params

Types

type Preferences

type Preferences struct {
	ListLayoutPath []string
}

Preferences holds preferences of the user

type ReadSeekerCloser

type ReadSeekerCloser interface {
	Read([]byte) (int, error)
	Seek(int64, int) (int64, error)
	Close() error
}

ReadSeekerCloser is a combination of io.Reader, io.Seeker and io.Closer

type RenderItem

type RenderItem struct {
	ID  string
	URI string
	StorageItem
}

RenderItem is a storage item with an id

type Request

type Request struct {
	Path        string
	Display     string
	Preferences Preferences
	Share       Share
	CanEdit     bool
	CanShare    bool
}

Request from user

func (Request) Description added in v0.4.1

func (r Request) Description() string

Description returns description of the page

func (Request) GetFilepath

func (r Request) GetFilepath(name string) string

GetFilepath of request

func (Request) Layout

func (r Request) Layout(name string) string

Layout returns layout of given name based on preferences

func (Request) LayoutPath

func (r Request) LayoutPath(path string) string

LayoutPath returns layout of given path based on preferences

func (Request) Title added in v0.4.1

func (r Request) Title() string

Title returns title of the page

func (Request) URL added in v0.4.1

func (r Request) URL(name string) string

URL of request

type Share

type Share struct {
	Creation time.Time     `json:"creation"`
	ID       string        `json:"id"`
	Path     string        `json:"path"`
	RootName string        `json:"rootName"`
	Password string        `json:"password"`
	Duration time.Duration `json:"duration"`
	Edit     bool          `json:"edit"`
	File     bool          `json:"file"`
}

Share stores informations about shared paths

func (Share) CheckPassword

func (s Share) CheckPassword(authorizationHeader string) error

CheckPassword verifies that request has correct password for share

func (Share) IsExpired added in v0.4.0

func (s Share) IsExpired(now time.Time) bool

IsExpired check if given share is expired

type Storage

type Storage interface {
	SetIgnoreFn(ignoreFn func(StorageItem) bool)
	Info(pathname string) (StorageItem, error)
	List(pathname string) ([]StorageItem, error)
	WriterTo(pathname string) (io.WriteCloser, error)
	ReaderFrom(pathname string) (ReadSeekerCloser, error)
	Walk(pathname string, walkFn func(StorageItem, error) error) error
	CreateDir(pathname string) error
	Store(pathname string, content io.ReadCloser) error
	Rename(oldName, newName string) error
	Remove(pathname string) error
}

Storage describe action on a storage provider

type StorageItem

type StorageItem struct {
	Info     interface{}
	Date     time.Time
	Pathname string
	Name     string

	IsDir bool
}

StorageItem describe item on a storage provider

func (StorageItem) Extension

func (s StorageItem) Extension() string

Extension gives extensions of item

func (StorageItem) IsImage

func (s StorageItem) IsImage() bool

IsImage determine if item if an image

func (StorageItem) IsPdf

func (s StorageItem) IsPdf() bool

IsPdf determine if item if a pdf

func (StorageItem) IsVideo

func (s StorageItem) IsVideo() bool

IsVideo determine if item if a video

func (StorageItem) Mime

func (s StorageItem) Mime() string

Mime gives Mime Type of item

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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