base

package
v0.0.0-...-57f3d10 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HttpCodeOK             = 200
	HttpCodePartialContent = 206

	HttpHeaderRange              = "Range"
	HttpHeaderAcceptRanges       = "Accept-Ranges"
	HttpHeaderContentLength      = "Content-Length"
	HttpHeaderContentRange       = "Content-Range"
	HttpHeaderContentDisposition = "Content-Disposition"
	HttpHeaderUserAgent          = "User-Agent"
	HttpHeaderLastModified       = "Last-Modified"

	HttpHeaderBytes       = "bytes"
	HttpHeaderRangeFormat = "bytes=%d-%d"
)

Variables

View Source
var (
	NotFound  = errors.New("not found")
	BadParams = errors.New("bad params")
)
View Source
var InDocker string
View Source
var Version string

Version is the build version, set at build time, using `go build -ldflags "-X github.com/qauzy/trat/pkg/base.Version=1.0.0"`.

Functions

func ParseOptsExtra

func ParseOptsExtra[E any](opts *Options) error

func ParseReqExtra

func ParseReqExtra[E any](req *Request) error

Types

type FileInfo

type FileInfo struct {
	Name  string     `json:"name"`
	Path  string     `json:"path"`
	Size  int64      `json:"size"`
	Ctime *time.Time `json:"ctime"`

	Req *Request `json:"req"`
}

type Options

type Options struct {
	// Download file name
	Name string `json:"name"`
	// Download file path
	Path string `json:"path"`
	// Select file indexes to download
	SelectFiles []int `json:"selectFiles"`
	// Extra info for specific fetcher
	Extra any `json:"extra"`
}

Options for download

func (*Options) Clone

func (o *Options) Clone() *Options

func (*Options) InitSelectFiles

func (o *Options) InitSelectFiles(fileSize int)

type Request

type Request struct {
	URL   string `json:"url"`
	Extra any    `json:"extra"`
	// Labels is used to mark the download task
	Labels map[string]string `json:"labels"`
}

Request download request

func (*Request) Validate

func (r *Request) Validate() error

type Resource

type Resource struct {
	// if name is not empty, the resource is a folder and the name is the folder name
	Name string `json:"name"`
	Size int64  `json:"size"`
	// is support range download
	Range bool `json:"range"`
	// file list
	Files []*FileInfo `json:"files"`
	Hash  string      `json:"hash"`
}

Resource download resource

func (*Resource) CalcSize

func (r *Resource) CalcSize(selectFiles []int)

func (*Resource) Validate

func (r *Resource) Validate() error

type Status

type Status string
const (
	DownloadStatusReady   Status = "ready" // task create but not start
	DownloadStatusRunning Status = "running"
	DownloadStatusPause   Status = "pause"
	DownloadStatusWait    Status = "wait" // task is wait for running
	DownloadStatusError   Status = "error"
	DownloadStatusDone    Status = "done"
)

Jump to

Keyboard shortcuts

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