90 lines
2.1 KiB
Go
90 lines
2.1 KiB
Go
package config
|
|
|
|
import "math/rand"
|
|
|
|
type ZurgConfig struct {
|
|
Version string `yaml:"zurg"`
|
|
Token string `yaml:"token"`
|
|
Host string `yaml:"host"`
|
|
Port string `yaml:"port"`
|
|
NumOfWorkers int `yaml:"concurrent_workers"`
|
|
RefreshEverySeconds int `yaml:"check_for_changes_every_secs"`
|
|
CacheTimeHours int `yaml:"info_cache_time_hours"`
|
|
CanRepair bool `yaml:"enable_repair"`
|
|
OnLibraryUpdate string `yaml:"on_library_update"`
|
|
NetworkBufferSize int `yaml:"network_buffer_size"`
|
|
MountPoint string `yaml:"mount_point"`
|
|
RetainFolderNameExtension bool `yaml:"retain_folder_name_extension"`
|
|
PreferredHosts []string `yaml:"preferred_hosts"`
|
|
}
|
|
|
|
func (z *ZurgConfig) GetToken() string {
|
|
return z.Token
|
|
}
|
|
|
|
func (z *ZurgConfig) GetHost() string {
|
|
if z.Host == "" {
|
|
return "[::]"
|
|
}
|
|
return z.Host
|
|
}
|
|
|
|
func (z *ZurgConfig) GetPort() string {
|
|
if z.Port == "" {
|
|
return "9999"
|
|
}
|
|
return z.Port
|
|
}
|
|
|
|
func (z *ZurgConfig) GetNumOfWorkers() int {
|
|
if z.NumOfWorkers == 0 {
|
|
return 10
|
|
}
|
|
return z.NumOfWorkers
|
|
}
|
|
|
|
func (z *ZurgConfig) GetRefreshEverySeconds() int {
|
|
if z.RefreshEverySeconds == 0 {
|
|
return 60
|
|
}
|
|
return z.RefreshEverySeconds
|
|
}
|
|
|
|
func (z *ZurgConfig) GetCacheTimeHours() int {
|
|
return z.CacheTimeHours
|
|
}
|
|
|
|
func (z *ZurgConfig) EnableRepair() bool {
|
|
return z.CanRepair
|
|
}
|
|
|
|
func (z *ZurgConfig) GetOnLibraryUpdate() string {
|
|
return z.OnLibraryUpdate
|
|
}
|
|
|
|
func (z *ZurgConfig) GetNetworkBufferSize() int {
|
|
if z.NetworkBufferSize == 0 {
|
|
return 64 * 1024 // 64kb
|
|
}
|
|
return z.NetworkBufferSize
|
|
}
|
|
|
|
func (z *ZurgConfig) GetMountPoint() string {
|
|
if z.MountPoint == "" {
|
|
return "/mnt/zurg"
|
|
}
|
|
return z.MountPoint
|
|
}
|
|
|
|
func (z *ZurgConfig) EnableRetainFolderNameExtension() bool {
|
|
return z.RetainFolderNameExtension
|
|
}
|
|
|
|
func (z *ZurgConfig) GetRandomPreferredHost() string {
|
|
if len(z.PreferredHosts) == 0 {
|
|
return ""
|
|
}
|
|
randomIndex := rand.Intn(len(z.PreferredHosts))
|
|
return z.PreferredHosts[randomIndex]
|
|
}
|