Documentation
¶
Index ¶
- Constants
- Variables
- func Dirname(name string) string
- func DoneWriter(ctx context.Context, isDone func() bool, w io.Writer, content string)
- func EtagMatch(w http.ResponseWriter, r *http.Request, hash string) (etag string, match bool)
- func GetPathname(folder, name string, share Share) string
- func Hash(value string) string
- func Identifier() string
- func IgnoreNotExistsErr[K comparable](_ context.Context, _ K, err error) error
- func Join(parts ...string) string
- func KeepOnlyDir(items []absto.Item) []absto.Item
- func KeepOnlyFile(items []absto.Item) []absto.Item
- func LoadJSON[T any](ctx context.Context, storageService absto.Storage, filename string) (output T, err error)
- func LogClose(ctx context.Context, closer io.Closer, fn, item string)
- func MetadataDirectory(item absto.Item) string
- func ParseDisplayPreferences(value string) map[string]Display
- func RawHash(content any) string
- func RenameDirectory(ctx context.Context, storageService absto.Storage, renamers []Renamer, ...)
- func SafeWrite(ctx context.Context, w io.Writer, content string)
- func SanitizeName(name string, removeSlash bool) (string, error)
- func SaveJSON[T any](ctx context.Context, storageService absto.Storage, filename string, content T) error
- func SendLargeFile(ctx context.Context, storageService absto.Storage, item absto.Item, ...) (*http.Response, error)
- func SetPrefsCookie(w http.ResponseWriter, request Request)
- func URL(folder, name string, share Share) string
- func WriteToStorage(ctx context.Context, storageService absto.Storage, output string, size int64, ...) error
- type Aggregate
- type Auth
- type ByHybridSort
- type ByID
- type Crud
- type Display
- type DisplayPreferences
- type Event
- func NewAccessEvent(ctx context.Context, item absto.Item, r *http.Request) Event
- func NewDeleteEvent(ctx context.Context, request Request, item absto.Item, ...) Event
- func NewDescriptionEvent(ctx context.Context, item absto.Item, shareableURL string, description string, ...) Event
- func NewRenameEvent(ctx context.Context, old, new absto.Item, shareableURL string, ...) Event
- func NewRestartEvent(ctx context.Context, item absto.Item, subset string) Event
- func NewStartEvent(ctx context.Context, item absto.Item) Event
- func NewUploadEvent(ctx context.Context, request Request, item absto.Item, shareableURL string, ...) Event
- type EventBus
- type EventConsumer
- type EventProducer
- type EventType
- type ExifResponse
- type Metadata
- type MetadataAction
- type MetadataManager
- type Preferences
- type Renamer
- type RenderItem
- type Request
- func (r Request) AbsoluteURL(name string) string
- func (r Request) DeletePreference(path string) Request
- func (r Request) Description() string
- func (r Request) Filepath() string
- func (r Request) IsStory() bool
- func (r Request) LayoutPath(path string) Display
- func (r Request) RelativeURL(item absto.Item) string
- func (r Request) String() string
- func (r Request) SubPath(name string) string
- func (r Request) Title() string
- func (r Request) UpdatePreferences() Request
- type Search
- type Share
- type ShareManager
- type StoryItem
- type Webhook
- type WebhookKind
- type WebhookManager
Constants ¶
View Source
const ( MetadataDirectoryName = "/.fibr" MaxConcurrency = 6 MaxClientSideCaching = 2000 )
Variables ¶
View Source
var ( ArchiveExtensions = map[string]bool{".zip": true, ".tar": true, ".gz": true, ".rar": true} AudioExtensions = map[string]bool{".mp3": true} 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 = map[string]bool{".xls": true, ".xlsx": true, ".xlsm": true} ImageExtensions = map[string]bool{".jpg": true, ".jpeg": true, ".png": true, ".gif": true, ".svg": true, ".tiff": true, ".webp": true, ".heic": true, ".dng": true} PdfExtensions = map[string]bool{".pdf": true} VideoExtensions = map[string]string{".mp4": "video/mp4", ".mov": "video/mp4", ".avi": "video/x-msvideo", ".ogg": "video/ogg", ".mkv": "video/x-matroska"} StreamExtensions = map[string]bool{".ts": true} WordExtensions = map[string]bool{".doc": true, ".docx": true, ".docm": true} // ThumbnailExtensions contains extensions of file eligible to thumbnail ThumbnailExtensions = map[string]bool{".jpg": true, ".jpeg": true, ".png": true, ".gif": true, ".tiff": true, ".webp": true, ".pdf": true, ".mp4": true, ".mov": true, ".avi": true, ".ogg": true, ".mkv": true} )
View Source
var ( BufferPool = sync.Pool{ New: func() any { return bytes.NewBuffer(make([]byte, 4*1024)) }, } SlowClient = request.CreateClient(5*time.Minute, request.NoRedirection) )
View Source
var WebhookKindValues = []string{"raw", "discord", "slack", "telegram"}
Functions ¶
func DoneWriter ¶ added in v0.13.0
func GetPathname ¶
func Identifier ¶ added in v0.26.0
func Identifier() string
func IgnoreNotExistsErr ¶ added in v0.26.0
func IgnoreNotExistsErr[K comparable](_ context.Context, _ K, err error) error
func MetadataDirectory ¶ added in v0.18.0
func ParseDisplayPreferences ¶ added in v0.25.0
func RenameDirectory ¶ added in v0.18.0
func SendLargeFile ¶ added in v0.9.0
func SetPrefsCookie ¶ added in v0.4.1
func SetPrefsCookie(w http.ResponseWriter, request Request)
Types ¶
type ByHybridSort ¶ added in v0.9.0
func (ByHybridSort) Len ¶ added in v0.9.0
func (a ByHybridSort) Len() int
func (ByHybridSort) Less ¶ added in v0.9.0
func (a ByHybridSort) Less(i, j int) bool
func (ByHybridSort) Swap ¶ added in v0.9.0
func (a ByHybridSort) Swap(i, j int)
type Crud ¶ added in v0.8.0
type Crud interface { Get(http.ResponseWriter, *http.Request, Request) (renderer.Page, error) Post(http.ResponseWriter, *http.Request, Request) Create(http.ResponseWriter, *http.Request, Request) Rename(http.ResponseWriter, *http.Request, Request) Delete(http.ResponseWriter, *http.Request, Request) }
type Display ¶ added in v0.25.0
type Display string
var ( GridDisplay Display = "grid" ListDisplay Display = "list" StoryDisplay Display = "story" DefaultDisplay = GridDisplay LayoutPathsCookieName = "layout_paths" )
func ParseDisplay ¶ added in v0.25.0
type DisplayPreferences ¶ added in v0.25.0
func (DisplayPreferences) String ¶ added in v0.25.0
func (dp DisplayPreferences) String() string
type Event ¶ added in v0.7.0
type Event struct { Time time.Time `json:"time"` New *absto.Item `json:"new,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` URL string `json:"url,omitempty"` TraceLink trace.Link `json:"-"` Item absto.Item `json:"item"` Type EventType `json:"type"` }
func NewAccessEvent ¶ added in v0.8.0
func NewDeleteEvent ¶ added in v0.7.0
func NewDescriptionEvent ¶ added in v0.20.0
func NewRenameEvent ¶ added in v0.7.0
func NewRestartEvent ¶ added in v0.16.0
func NewUploadEvent ¶ added in v0.7.0
func (Event) BrowserURL ¶ added in v0.22.0
func (Event) GetMetadata ¶ added in v0.14.0
func (Event) IsForcedFor ¶ added in v0.18.0
type EventBus ¶ added in v0.7.0
type EventBus struct {
// contains filtered or unexported fields
}
func NewEventBus ¶ added in v0.7.0
func NewEventBus(size uint64, meterProvider metric.MeterProvider, tracerProvider trace.TracerProvider) (EventBus, error)
type EventConsumer ¶ added in v0.7.0
type EventProducer ¶ added in v0.7.0
type EventType ¶ added in v0.7.0
type EventType uint
func ParseEventType ¶ added in v0.8.0
func (EventType) MarshalJSON ¶ added in v0.8.0
func (*EventType) UnmarshalJSON ¶ added in v0.8.0
type ExifResponse ¶ added in v0.10.0
type MetadataAction ¶ added in v0.25.0
func ReplaceDescription ¶ added in v0.25.0
func ReplaceDescription(description string) MetadataAction
func ReplaceExif ¶ added in v0.25.0
func ReplaceExif(exif exas.Exif) MetadataAction
func ReplaceTags ¶ added in v0.25.0
func ReplaceTags(tags []string) MetadataAction
type MetadataManager ¶ added in v0.25.0
type MetadataManager interface { ListDir(ctx context.Context, item absto.Item) ([]absto.Item, error) GetAggregateFor(ctx context.Context, item absto.Item) (Aggregate, error) GetAllAggregateFor(ctx context.Context, items ...absto.Item) (map[string]Aggregate, error) SaveAggregateFor(ctx context.Context, item absto.Item, aggregate Aggregate) error GetMetadataFor(ctx context.Context, item absto.Item) (Metadata, error) GetAllMetadataFor(ctx context.Context, items ...absto.Item) (map[string]Metadata, error) Update(ctx context.Context, item absto.Item, opts ...MetadataAction) (Metadata, error) }
type Preferences ¶
type Preferences struct {
LayoutPaths DisplayPreferences
}
func ParsePreferences ¶ added in v0.16.0
func ParsePreferences(value string) Preferences
func (Preferences) AddLayout ¶ added in v0.16.0
func (p Preferences) AddLayout(path string, display Display) Preferences
func (Preferences) GetLayout ¶ added in v0.25.0
func (p Preferences) GetLayout(path string) Display
func (Preferences) RemoveLayout ¶ added in v0.16.0
func (p Preferences) RemoveLayout(path string) Preferences
func (Preferences) SetCookie ¶ added in v0.25.0
func (p Preferences) SetCookie(w http.ResponseWriter)
type RenderItem ¶
type RenderItem struct { Aggregate Aggregate Tags []string URL string Path string absto.Item HasThumbnail bool IsCover bool }
func StorageToRender ¶ added in v0.12.0
func StorageToRender(item absto.Item, request Request) RenderItem
func (RenderItem) IsImage ¶ added in v0.14.0
func (r RenderItem) IsImage() bool
func (RenderItem) IsVideo ¶ added in v0.14.0
func (r RenderItem) IsVideo() bool
func (RenderItem) IsZero ¶ added in v0.15.0
func (r RenderItem) IsZero() bool
func (RenderItem) Mime ¶ added in v0.13.0
func (r RenderItem) Mime() string
func (RenderItem) String ¶ added in v0.24.0
func (r RenderItem) String() string
type Request ¶
type Request struct { Path string Item string Display Display Preferences Preferences CanEdit bool CanWebhook bool }
func (Request) AbsoluteURL ¶ added in v0.12.0
func (Request) DeletePreference ¶ added in v0.16.0
func (Request) Description ¶ added in v0.4.1
func (Request) LayoutPath ¶
func (Request) UpdatePreferences ¶ added in v0.16.0
type ShareManager ¶ added in v0.8.0
type ShareManager interface {}
type StoryItem ¶ added in v0.16.0
type StoryItem struct { Exif Metadata RenderItem }
func StorageToStory ¶ added in v0.16.0
type Webhook ¶ added in v0.8.0
type WebhookKind ¶ added in v0.12.0
type WebhookKind int
const ( Raw WebhookKind = iota Discord Slack Telegram )
func ParseWebhookKind ¶ added in v0.12.0
func ParseWebhookKind(value string) (WebhookKind, error)
func (WebhookKind) MarshalJSON ¶ added in v0.12.0
func (r WebhookKind) MarshalJSON() ([]byte, error)
func (WebhookKind) String ¶ added in v0.12.0
func (r WebhookKind) String() string
func (*WebhookKind) UnmarshalJSON ¶ added in v0.12.0
func (r *WebhookKind) UnmarshalJSON(b []byte) error
Click to show internal directories.
Click to hide internal directories.