Fix #495: use custom user-agent instead of go-http-client
This commit is contained in:
+2
-2
@@ -66,7 +66,7 @@ func (a *App) VersionTag() string {
|
|||||||
return a.appVersionTag
|
return a.appVersionTag
|
||||||
}
|
}
|
||||||
|
|
||||||
func StartupApp(appName, displayAppName, appVersionTag, latestReleaseURL string) (*App, error) {
|
func StartupApp(appName, displayAppName, appVersion, appVersionTag, latestReleaseURL string) (*App, error) {
|
||||||
var confDir, cacheDir string
|
var confDir, cacheDir string
|
||||||
portableMode := false
|
portableMode := false
|
||||||
if p := checkPortablePath(); p != "" {
|
if p := checkPortablePath(); p != "" {
|
||||||
@@ -118,7 +118,7 @@ func StartupApp(appName, displayAppName, appVersionTag, latestReleaseURL string)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
a.ServerManager = NewServerManager(appName, a.Config, !portableMode /*use keyring*/)
|
a.ServerManager = NewServerManager(appName, appVersion, a.Config, !portableMode /*use keyring*/)
|
||||||
a.PlaybackManager = NewPlaybackManager(a.bgrndCtx, a.ServerManager, a.LocalPlayer, &a.Config.Scrobbling, &a.Config.Transcoding, &a.Config.Application)
|
a.PlaybackManager = NewPlaybackManager(a.bgrndCtx, a.ServerManager, a.LocalPlayer, &a.Config.Scrobbling, &a.Config.Transcoding, &a.Config.Application)
|
||||||
a.ImageManager = NewImageManager(a.bgrndCtx, a.ServerManager, cacheDir)
|
a.ImageManager = NewImageManager(a.bgrndCtx, a.ServerManager, cacheDir)
|
||||||
a.Config.Application.MaxImageCacheSizeMB = clamp(a.Config.Application.MaxImageCacheSizeMB, 1, 500)
|
a.Config.Application.MaxImageCacheSizeMB = clamp(a.Config.Application.MaxImageCacheSizeMB, 1, 500)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
@@ -26,6 +27,7 @@ type ServerManager struct {
|
|||||||
useKeyring bool
|
useKeyring bool
|
||||||
prefetchCoverCB func(string)
|
prefetchCoverCB func(string)
|
||||||
appName string
|
appName string
|
||||||
|
appVersion string
|
||||||
config *Config
|
config *Config
|
||||||
onServerConnected []func()
|
onServerConnected []func()
|
||||||
onLogout []func()
|
onLogout []func()
|
||||||
@@ -33,8 +35,13 @@ type ServerManager struct {
|
|||||||
|
|
||||||
var ErrUnreachable = errors.New("server is unreachable")
|
var ErrUnreachable = errors.New("server is unreachable")
|
||||||
|
|
||||||
func NewServerManager(appName string, config *Config, useKeyring bool) *ServerManager {
|
func NewServerManager(appName, appVersion string, config *Config, useKeyring bool) *ServerManager {
|
||||||
return &ServerManager{appName: appName, config: config, useKeyring: useKeyring}
|
return &ServerManager{
|
||||||
|
appName: appName,
|
||||||
|
appVersion: appVersion,
|
||||||
|
config: config,
|
||||||
|
useKeyring: useKeyring,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ServerManager) SetPrefetchAlbumCoverCallback(cb func(string)) {
|
func (s *ServerManager) SetPrefetchAlbumCoverCallback(cb func(string)) {
|
||||||
@@ -194,8 +201,10 @@ func (s *ServerManager) connect(connection ServerConnection, password string) (m
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
ua := fmt.Sprintf("%s/%s", s.appName, s.appVersion)
|
||||||
cli = &subsonicMP.SubsonicServer{
|
cli = &subsonicMP.SubsonicServer{
|
||||||
Client: subsonic.Client{
|
Client: subsonic.Client{
|
||||||
|
UserAgent: ua,
|
||||||
Client: &http.Client{Timeout: 10 * time.Second},
|
Client: &http.Client{Timeout: 10 * time.Second},
|
||||||
BaseUrl: connection.Hostname,
|
BaseUrl: connection.Hostname,
|
||||||
User: connection.Username,
|
User: connection.Username,
|
||||||
@@ -206,6 +215,7 @@ func (s *ServerManager) connect(connection ServerConnection, password string) (m
|
|||||||
s.checkSetInsecureSkipVerify(cli.(*subsonicMP.SubsonicServer).Client.Client)
|
s.checkSetInsecureSkipVerify(cli.(*subsonicMP.SubsonicServer).Client.Client)
|
||||||
altCli = &subsonicMP.SubsonicServer{
|
altCli = &subsonicMP.SubsonicServer{
|
||||||
Client: subsonic.Client{
|
Client: subsonic.Client{
|
||||||
|
UserAgent: ua,
|
||||||
Client: &http.Client{Timeout: 10 * time.Second},
|
Client: &http.Client{Timeout: 10 * time.Second},
|
||||||
BaseUrl: connection.AltHostname,
|
BaseUrl: connection.AltHostname,
|
||||||
User: connection.Username,
|
User: connection.Username,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ require (
|
|||||||
github.com/pelletier/go-toml/v2 v2.0.8
|
github.com/pelletier/go-toml/v2 v2.0.8
|
||||||
github.com/quarckster/go-mpris-server v1.0.3
|
github.com/quarckster/go-mpris-server v1.0.3
|
||||||
github.com/supersonic-app/go-mpv v0.1.0
|
github.com/supersonic-app/go-mpv v0.1.0
|
||||||
github.com/supersonic-app/go-subsonic v0.0.0-20240807031555-2cb1ccd78f85
|
github.com/supersonic-app/go-subsonic v0.0.0-20241017150725-a5686988ef9c
|
||||||
github.com/zalando/go-keyring v0.2.1
|
github.com/zalando/go-keyring v0.2.1
|
||||||
golang.org/x/net v0.25.0
|
golang.org/x/net v0.25.0
|
||||||
golang.org/x/text v0.16.0
|
golang.org/x/text v0.16.0
|
||||||
|
|||||||
@@ -311,8 +311,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
|
|||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/supersonic-app/go-mpv v0.1.0 h1:U+cCnLQxmpqx5mY6nMlC0J4uIdCCXUbAjpjS04XkFu8=
|
github.com/supersonic-app/go-mpv v0.1.0 h1:U+cCnLQxmpqx5mY6nMlC0J4uIdCCXUbAjpjS04XkFu8=
|
||||||
github.com/supersonic-app/go-mpv v0.1.0/go.mod h1:1bQz6kBQumJopXEbkiqoLxIXLy7F7yWFBvknvpAtIC0=
|
github.com/supersonic-app/go-mpv v0.1.0/go.mod h1:1bQz6kBQumJopXEbkiqoLxIXLy7F7yWFBvknvpAtIC0=
|
||||||
github.com/supersonic-app/go-subsonic v0.0.0-20240807031555-2cb1ccd78f85 h1:7PpVvIoF3kUQwqRyIJcKJui8VxbkLzqWH+Ysw1g84tU=
|
github.com/supersonic-app/go-subsonic v0.0.0-20241017150725-a5686988ef9c h1:UsXe5/TXViPgw21zO2Fgh0F/hSl0TXox0yjRc+vT6XQ=
|
||||||
github.com/supersonic-app/go-subsonic v0.0.0-20240807031555-2cb1ccd78f85/go.mod h1:D+OWPXeD9owcdcoXATv5YPBGWxxVvn5k98rt5B4wMc4=
|
github.com/supersonic-app/go-subsonic v0.0.0-20241017150725-a5686988ef9c/go.mod h1:D+OWPXeD9owcdcoXATv5YPBGWxxVvn5k98rt5B4wMc4=
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
// rest of flag actions are handled in backend.StartupApp
|
// rest of flag actions are handled in backend.StartupApp
|
||||||
|
|
||||||
myApp, err := backend.StartupApp(res.AppName, res.DisplayName, res.AppVersionTag, res.LatestReleaseURL)
|
myApp, err := backend.StartupApp(res.AppName, res.DisplayName, res.AppVersion, res.AppVersionTag, res.LatestReleaseURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != backend.ErrAnotherInstance {
|
if err != backend.ErrAnotherInstance {
|
||||||
log.Fatalf("fatal startup error: %v", err.Error())
|
log.Fatalf("fatal startup error: %v", err.Error())
|
||||||
|
|||||||
Reference in New Issue
Block a user