Documentation ¶
Index ¶
- Constants
- Variables
- func Boot() *boot
- type ActivationEvent
- type BoltStorage
- func (b *BoltStorage) Clear() error
- func (b *BoltStorage) Close() error
- func (b *BoltStorage) Delete(bucket string, key string) error
- func (b *BoltStorage) Get(bucket string, key string, v any) (bool, error)
- func (b *BoltStorage) List(bucket string, v any) error
- func (b *BoltStorage) Pop(bucket string, key string, v any) error
- func (b *BoltStorage) Put(bucket string, key string, v any) error
- func (b *BoltStorage) Setup(buckets []string) error
- type ContextStorage
- type Downloader
- func (d *Downloader) Clear() error
- func (d *Downloader) Close() error
- func (d *Downloader) Continue(filter *TaskFilter) (err error)
- func (d *Downloader) ContinueBatch(filter *TaskFilter) (err error)
- func (d *Downloader) Create(rrId string, opts *base.Options) (taskId string, err error)
- func (d *Downloader) CreateDirect(req *base.Request, opts *base.Options) (taskId string, err error)
- func (d *Downloader) CreateDirectBatch(reqs []*base.Request, opts *base.Options) (taskId []string, err error)
- func (d *Downloader) Delete(filter *TaskFilter, force bool) (err error)
- func (d *Downloader) DeleteExtension(identity string) error
- func (d *Downloader) ExtensionPath(ext *Extension) string
- func (d *Downloader) GetConfig() (*base.DownloaderStoreConfig, error)
- func (d *Downloader) GetExtension(identity string) (*Extension, error)
- func (d *Downloader) GetExtensions() []*Extension
- func (d *Downloader) GetTask(id string) *Task
- func (d *Downloader) GetTasks() []*Task
- func (d *Downloader) GetTasksByFilter(filter *TaskFilter) []*Task
- func (d *Downloader) InstallExtensionByFolder(path string, devMode bool) (*Extension, error)
- func (d *Downloader) InstallExtensionByGit(url string) (*Extension, error)
- func (d *Downloader) Listener(fn Listener)
- func (d *Downloader) Pause(filter *TaskFilter) (err error)
- func (d *Downloader) PutConfig(v *base.DownloaderStoreConfig) error
- func (d *Downloader) Resolve(req *base.Request) (rr *ResolveResult, err error)
- func (d *Downloader) Setup() error
- func (d *Downloader) Stats(id string) (sr any, err error)
- func (d *Downloader) SwitchExtension(identity string, status bool) error
- func (d *Downloader) UpdateExtensionSettings(identity string, settings map[string]any) error
- func (d *Downloader) UpgradeCheckExtension(identity string) (newVersion string, err error)
- func (d *Downloader) UpgradeExtension(identity string) error
- type DownloaderConfig
- type Event
- type EventKey
- type Extension
- type ExtensionInfo
- type ExtensionTask
- type Instance
- type InstanceEvents
- type InstanceLogger
- type Listener
- type Match
- type MemStorage
- func (n *MemStorage) Clear() error
- func (n *MemStorage) Close() error
- func (n *MemStorage) Delete(bucket string, key string) error
- func (n *MemStorage) Get(bucket string, key string, v any) (bool, error)
- func (n *MemStorage) List(bucket string, v any) error
- func (n *MemStorage) Pop(bucket string, key string, v any) error
- func (n *MemStorage) Put(bucket string, key string, v any) error
- func (n *MemStorage) Setup(buckets []string) error
- type OnDoneContext
- type OnErrorContext
- type OnResolveContext
- type OnStartContext
- type Option
- type Progress
- type Repository
- type ResolveResult
- type Script
- type Setting
- type SettingType
- type Storage
- type Task
- type TaskFilter
Constants ¶
View Source
const ( EventKeyStart = "start" EventKeyPause = "pause" EventKeyProgress = "progress" EventKeyError = "error" EventKeyDelete = "delete" EventKeyDone = "done" EventKeyFinally = "finally" )
Variables ¶
View Source
var ( ErrTaskNotFound = errors.New("task not found") ErrUnSupportedProtocol = errors.New("unsupported protocol") )
View Source
var ( ErrExtensionNoManifest = fmt.Errorf("manifest.json not found") ErrExtensionNotFound = fmt.Errorf("extension not found") )
Functions ¶
Types ¶
type ActivationEvent ¶ added in v1.4.0
type ActivationEvent string
const ( EventOnResolve ActivationEvent = "onResolve" EventOnStart ActivationEvent = "onStart" EventOnError ActivationEvent = "onError" EventOnDone ActivationEvent = "onDone" )
type BoltStorage ¶
type BoltStorage struct {
// contains filtered or unexported fields
}
func NewBoltStorage ¶
func NewBoltStorage(dir string) *BoltStorage
func (*BoltStorage) Clear ¶
func (b *BoltStorage) Clear() error
func (*BoltStorage) Close ¶
func (b *BoltStorage) Close() error
func (*BoltStorage) Setup ¶
func (b *BoltStorage) Setup(buckets []string) error
type ContextStorage ¶ added in v1.4.1
type ContextStorage struct {
// contains filtered or unexported fields
}
func (*ContextStorage) Clear ¶ added in v1.4.1
func (s *ContextStorage) Clear()
func (*ContextStorage) Get ¶ added in v1.4.1
func (s *ContextStorage) Get(key string) any
func (*ContextStorage) Keys ¶ added in v1.4.1
func (s *ContextStorage) Keys() []string
func (*ContextStorage) Remove ¶ added in v1.4.1
func (s *ContextStorage) Remove(key string)
func (*ContextStorage) Set ¶ added in v1.4.1
func (s *ContextStorage) Set(key string, value string)
type Downloader ¶
type Downloader struct { Logger *logger.Logger ExtensionLogger *logger.Logger // contains filtered or unexported fields }
func NewDownloader ¶
func NewDownloader(cfg *DownloaderConfig) *Downloader
func (*Downloader) Clear ¶
func (d *Downloader) Clear() error
func (*Downloader) Close ¶
func (d *Downloader) Close() error
func (*Downloader) Continue ¶
func (d *Downloader) Continue(filter *TaskFilter) (err error)
Continue specific tasks, if continue tasks will exceed maxRunning, it needs pause some running tasks before that
func (*Downloader) ContinueBatch ¶ added in v1.6.0
func (d *Downloader) ContinueBatch(filter *TaskFilter) (err error)
func (*Downloader) CreateDirect ¶ added in v1.3.1
func (*Downloader) CreateDirectBatch ¶ added in v1.5.7
func (*Downloader) Delete ¶
func (d *Downloader) Delete(filter *TaskFilter, force bool) (err error)
func (*Downloader) DeleteExtension ¶ added in v1.4.0
func (d *Downloader) DeleteExtension(identity string) error
func (*Downloader) ExtensionPath ¶ added in v1.4.0
func (d *Downloader) ExtensionPath(ext *Extension) string
func (*Downloader) GetConfig ¶
func (d *Downloader) GetConfig() (*base.DownloaderStoreConfig, error)
func (*Downloader) GetExtension ¶ added in v1.4.0
func (d *Downloader) GetExtension(identity string) (*Extension, error)
func (*Downloader) GetExtensions ¶ added in v1.4.0
func (d *Downloader) GetExtensions() []*Extension
func (*Downloader) GetTask ¶
func (d *Downloader) GetTask(id string) *Task
func (*Downloader) GetTasks ¶
func (d *Downloader) GetTasks() []*Task
func (*Downloader) GetTasksByFilter ¶ added in v1.6.0
func (d *Downloader) GetTasksByFilter(filter *TaskFilter) []*Task
GetTasksByFilter get tasks by filter, if filter is nil, return all tasks return tasks and if match all tasks
func (*Downloader) InstallExtensionByFolder ¶ added in v1.4.0
func (d *Downloader) InstallExtensionByFolder(path string, devMode bool) (*Extension, error)
func (*Downloader) InstallExtensionByGit ¶ added in v1.4.0
func (d *Downloader) InstallExtensionByGit(url string) (*Extension, error)
func (*Downloader) Listener ¶
func (d *Downloader) Listener(fn Listener)
func (*Downloader) Pause ¶
func (d *Downloader) Pause(filter *TaskFilter) (err error)
func (*Downloader) PutConfig ¶
func (d *Downloader) PutConfig(v *base.DownloaderStoreConfig) error
func (*Downloader) Resolve ¶
func (d *Downloader) Resolve(req *base.Request) (rr *ResolveResult, err error)
func (*Downloader) Setup ¶
func (d *Downloader) Setup() error
func (*Downloader) Stats ¶ added in v1.5.4
func (d *Downloader) Stats(id string) (sr any, err error)
func (*Downloader) SwitchExtension ¶ added in v1.4.0
func (d *Downloader) SwitchExtension(identity string, status bool) error
func (*Downloader) UpdateExtensionSettings ¶ added in v1.4.0
func (d *Downloader) UpdateExtensionSettings(identity string, settings map[string]any) error
func (*Downloader) UpgradeCheckExtension ¶ added in v1.4.0
func (d *Downloader) UpgradeCheckExtension(identity string) (newVersion string, err error)
UpgradeCheckExtension Check if there is a new version for the extension.
func (*Downloader) UpgradeExtension ¶ added in v1.4.0
func (d *Downloader) UpgradeExtension(identity string) error
type DownloaderConfig ¶
type DownloaderConfig struct { Controller *controller.Controller FetchManagers []fetcher.FetcherManager RefreshInterval int `json:"refreshInterval"` // RefreshInterval time duration to refresh task progress(ms) Storage Storage StorageDir string DownloadDirWhiteList []string `json:"downloadDirWhiteList"` ProductionMode bool *base.DownloaderStoreConfig }
func (*DownloaderConfig) Init ¶
func (cfg *DownloaderConfig) Init() *DownloaderConfig
type Extension ¶ added in v1.4.0
type Extension struct { // Identity is global unique for an extension, it's a combination of author and name Identity string `json:"identity"` Name string `json:"name"` Author string `json:"author"` Title string `json:"title"` Description string `json:"description"` Icon string `json:"icon"` // Version semantic version string, like: 1.0.0 Version string `json:"version"` // Homepage homepage url Homepage string `json:"homepage"` // Repository git repository info Repository *Repository `json:"repository"` Scripts []*Script `json:"scripts"` Settings []*Setting `json:"settings"` // Disabled if true, this extension will be ignored Disabled bool `json:"disabled"` DevMode bool `json:"devMode"` // DevPath is the local path of extension source code DevPath string `json:"devPath"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
type ExtensionInfo ¶ added in v1.4.2
type ExtensionInfo struct { Identity string `json:"identity"` Name string `json:"name"` Author string `json:"author"` Title string `json:"title"` Version string `json:"version"` }
func NewExtensionInfo ¶ added in v1.4.2
func NewExtensionInfo(ext *Extension) *ExtensionInfo
type ExtensionTask ¶ added in v1.5.2
type ExtensionTask struct { *Task // contains filtered or unexported fields }
ExtensionTask is a wrapper of Task, it's used to interact with extension scripts. Avoid extension scripts modifying task directly, use ExtensionTask to encapsulate task, only some fields can be modified, such as request info.
func NewExtensionTask ¶ added in v1.5.2
func NewExtensionTask(download *Downloader, task *Task) *ExtensionTask
func (*ExtensionTask) Continue ¶ added in v1.5.2
func (t *ExtensionTask) Continue() error
func (*ExtensionTask) Pause ¶ added in v1.5.2
func (t *ExtensionTask) Pause() error
type Instance ¶ added in v1.4.0
type Instance struct { Events InstanceEvents `json:"events"` Info *ExtensionInfo `json:"info"` Logger *InstanceLogger `json:"logger"` Settings map[string]any `json:"settings"` Storage *ContextStorage `json:"storage"` }
Instance inject to js context when extension script is activated
type InstanceEvents ¶ added in v1.4.0
type InstanceEvents map[ActivationEvent]goja.Callable
func (InstanceEvents) OnDone ¶ added in v1.5.9
func (h InstanceEvents) OnDone(fn goja.Callable)
func (InstanceEvents) OnError ¶ added in v1.5.2
func (h InstanceEvents) OnError(fn goja.Callable)
func (InstanceEvents) OnResolve ¶ added in v1.4.0
func (h InstanceEvents) OnResolve(fn goja.Callable)
func (InstanceEvents) OnStart ¶ added in v1.4.2
func (h InstanceEvents) OnStart(fn goja.Callable)
type InstanceLogger ¶ added in v1.4.0
type InstanceLogger struct {
// contains filtered or unexported fields
}
func (*InstanceLogger) Debug ¶ added in v1.4.0
func (l *InstanceLogger) Debug(msg ...goja.Value)
func (*InstanceLogger) Error ¶ added in v1.4.0
func (l *InstanceLogger) Error(msg ...goja.Value)
func (*InstanceLogger) Info ¶ added in v1.4.0
func (l *InstanceLogger) Info(msg ...goja.Value)
func (*InstanceLogger) Warn ¶ added in v1.4.0
func (l *InstanceLogger) Warn(msg ...goja.Value)
type Match ¶ added in v1.4.2
type Match struct { // Urls match expression, refer to https://developer.chrome.com/docs/extensions/mv3/match_patterns/ Urls []string `json:"urls"` // Labels match request labels Labels []string `json:"labels"` }
type MemStorage ¶
type MemStorage struct {
// contains filtered or unexported fields
}
func NewMemStorage ¶
func NewMemStorage() *MemStorage
func (*MemStorage) Clear ¶
func (n *MemStorage) Clear() error
func (*MemStorage) Close ¶
func (n *MemStorage) Close() error
func (*MemStorage) Setup ¶
func (n *MemStorage) Setup(buckets []string) error
type OnDoneContext ¶ added in v1.5.9
type OnDoneContext struct {
Task *Task `json:"task"`
}
type OnErrorContext ¶ added in v1.5.2
type OnErrorContext struct { Task *ExtensionTask `json:"task"` Error error `json:"error"` }
type OnResolveContext ¶ added in v1.4.2
type OnStartContext ¶ added in v1.4.2
type OnStartContext struct {
Task *ExtensionTask `json:"task"`
}
type Progress ¶
type Progress struct { // Total download time(ns) Used int64 `json:"used"` // Download speed(bytes/s) Speed int64 `json:"speed"` // Downloaded size(bytes) Downloaded int64 `json:"downloaded"` // Uploaded speed(bytes/s) UploadSpeed int64 `json:"uploadSpeed"` // Uploaded size(bytes) Uploaded int64 `json:"uploaded"` }
type Repository ¶ added in v1.4.0
type ResolveResult ¶
type Setting ¶ added in v1.4.0
type Setting struct { Name string `json:"name"` Title string `json:"title"` Description string `json:"description"` Required bool `json:"required"` // setting type Type SettingType `json:"type"` // setting value Value any `json:"value"` //Multiple bool `json:"multiple"` Options []*Option `json:"options"` }
type SettingType ¶ added in v1.4.0
type SettingType string
const ( SettingTypeString SettingType = "string" SettingTypeNumber SettingType = "number" SettingTypeBoolean SettingType = "boolean" )
type Task ¶
type Task struct { ID string `json:"id"` Protocol string `json:"protocol"` Meta *fetcher.FetcherMeta `json:"meta"` Status base.Status `json:"status"` Uploading bool `json:"uploading"` Progress *Progress `json:"progress"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` // contains filtered or unexported fields }
func (*Task) MarshalJSON ¶ added in v1.5.9
Click to show internal directories.
Click to hide internal directories.