From 63517c0a0363a648be89423597f3f0d0973ac9fe Mon Sep 17 00:00:00 2001 From: Gabe Farrell Date: Thu, 12 Jun 2025 22:03:54 -0400 Subject: [PATCH] chore: move useragent to cfg --- engine/engine.go | 2 +- internal/cfg/cfg.go | 9 +++++++++ internal/images/deezer.go | 5 +++-- internal/images/imagesrc.go | 2 +- internal/mbz/mbz.go | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/engine/engine.go b/engine/engine.go index 7886efc..fb518f2 100644 --- a/engine/engine.go +++ b/engine/engine.go @@ -96,7 +96,7 @@ func Run( } images.Initialize(images.ImageSourceOpts{ - UserAgent: "Koito v0.0.1 (contact@koito.app)", + UserAgent: cfg.UserAgent(), EnableCAA: !cfg.CoverArtArchiveDisabled(), EnableDeezer: !cfg.DeezerDisabled(), }) diff --git a/internal/cfg/cfg.go b/internal/cfg/cfg.go index 16580f7..de27c2e 100644 --- a/internal/cfg/cfg.go +++ b/internal/cfg/cfg.go @@ -63,6 +63,7 @@ type config struct { allowAllHosts bool disableRateLimit bool importThrottleMs int + userAgent string } var ( @@ -123,6 +124,8 @@ func loadConfig(getenv func(string) string) (*config, error) { cfg.disableMusicBrainz = parseBool(getenv(DISABLE_MUSICBRAINZ_ENV)) cfg.skipImport = parseBool(getenv(SKIP_IMPORT_ENV)) + cfg.userAgent = "Koito v0.0.1 (contact@koito.io)" + if getenv(DEFAULT_USERNAME_ENV) == "" { cfg.defaultUsername = "admin" } else { @@ -168,6 +171,12 @@ func parseBool(s string) bool { // Global accessors for configuration values +func UserAgent() string { + lock.RLock() + defer lock.RUnlock() + return globalConfig.userAgent +} + func ListenAddr() string { lock.RLock() defer lock.RUnlock() diff --git a/internal/images/deezer.go b/internal/images/deezer.go index 5ad1e77..f3c7bae 100644 --- a/internal/images/deezer.go +++ b/internal/images/deezer.go @@ -10,6 +10,7 @@ import ( "net/url" "strings" + "github.com/gabehf/koito/internal/cfg" "github.com/gabehf/koito/internal/logger" "github.com/gabehf/koito/internal/utils" "github.com/gabehf/koito/queue" @@ -48,10 +49,10 @@ const ( artistImageEndpoint = "/search/artist?q=%s" ) -func NewDeezerClient(useragent string) *DeezerClient { +func NewDeezerClient() *DeezerClient { ret := new(DeezerClient) ret.url = deezerBaseUrl - ret.userAgent = useragent + ret.userAgent = cfg.UserAgent() ret.requestQueue = queue.NewRequestQueue(1, 1) return ret } diff --git a/internal/images/imagesrc.go b/internal/images/imagesrc.go index c2b7c02..4b65a66 100644 --- a/internal/images/imagesrc.go +++ b/internal/images/imagesrc.go @@ -46,7 +46,7 @@ func Initialize(opts ImageSourceOpts) { } if opts.EnableDeezer { imgsrc.deezerEnabled = true - imgsrc.deezerC = NewDeezerClient(opts.UserAgent) + imgsrc.deezerC = NewDeezerClient() } }) } diff --git a/internal/mbz/mbz.go b/internal/mbz/mbz.go index de53d6d..46d516b 100644 --- a/internal/mbz/mbz.go +++ b/internal/mbz/mbz.go @@ -37,7 +37,7 @@ type MusicBrainzCaller interface { func NewMusicBrainzClient() *MusicBrainzClient { ret := new(MusicBrainzClient) ret.url = cfg.MusicBrainzUrl() - ret.userAgent = "Koito/0.0.1 (contact@koito.app)" + ret.userAgent = cfg.UserAgent() ret.requestQueue = queue.NewRequestQueue(cfg.MusicBrainzRateLimit(), cfg.MusicBrainzRateLimit()) return ret }