mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 07:45:30 +00:00
59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
package model
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"io/fs"
|
|
)
|
|
|
|
type Storage string
|
|
|
|
const (
|
|
StorageMem Storage = "mem"
|
|
StorageBolt Storage = "bolt"
|
|
)
|
|
|
|
type StartConfig struct {
|
|
Network string `json:"network"`
|
|
Address string `json:"address"`
|
|
RefreshInterval int `json:"refreshInterval"`
|
|
Storage Storage `json:"storage"`
|
|
StorageDir string `json:"storageDir"`
|
|
ApiToken string `json:"apiToken"`
|
|
|
|
ProductionMode bool
|
|
|
|
WebEnable bool
|
|
WebFS fs.FS
|
|
WebBasicAuth *WebBasicAuth
|
|
}
|
|
|
|
func (cfg *StartConfig) Init() *StartConfig {
|
|
if cfg.Network == "" {
|
|
cfg.Network = "tcp"
|
|
}
|
|
if cfg.Address == "" {
|
|
cfg.Address = "127.0.0.1:0"
|
|
}
|
|
if cfg.RefreshInterval == 0 {
|
|
cfg.RefreshInterval = 350
|
|
}
|
|
if cfg.Storage == "" {
|
|
cfg.Storage = StorageBolt
|
|
}
|
|
if cfg.StorageDir == "" {
|
|
cfg.StorageDir = "./"
|
|
}
|
|
return cfg
|
|
}
|
|
|
|
type WebBasicAuth struct {
|
|
Username string
|
|
Password string
|
|
}
|
|
|
|
// Authorization returns the value of the Authorization header to be used in HTTP requests.
|
|
func (cfg *WebBasicAuth) Authorization() string {
|
|
userId := cfg.Username + ":" + cfg.Password
|
|
return "Basic " + base64.StdEncoding.EncodeToString([]byte(userId))
|
|
}
|