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 ExtensionTaskMeta
- 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 { Meta *ExtensionTaskMeta `json:"meta"` // contains filtered or unexported fields }
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 ExtensionTaskMeta ¶ added in v1.6.4
ExtensionTaskMeta restricts extension scripts to only modify request info
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.