diff --git a/server/subsonic/api.go b/server/subsonic/api.go
index 8d65faa8..bdad5e2d 100644
--- a/server/subsonic/api.go
+++ b/server/subsonic/api.go
@@ -175,6 +175,9 @@ func (api *Router) routes() http.Handler {
} else {
h501(r, "getShares", "createShare", "updateShare", "deleteShare")
}
+ r.Group(func(r chi.Router) {
+ h(r, "getOpenSubsonicExtensions", api.GetOpenSubsonicExtensions)
+ })
// Not Implemented (yet?)
h501(r, "jukeboxControl")
diff --git a/server/subsonic/helpers.go b/server/subsonic/helpers.go
index d460e53f..f7b13d10 100644
--- a/server/subsonic/helpers.go
+++ b/server/subsonic/helpers.go
@@ -16,7 +16,13 @@ import (
)
func newResponse() *responses.Subsonic {
- return &responses.Subsonic{Status: "ok", Version: Version, Type: consts.AppName, ServerVersion: consts.Version}
+ return &responses.Subsonic{
+ Status: "ok",
+ Version: Version,
+ Type: consts.AppName,
+ ServerVersion: consts.Version,
+ OpenSubsonic: true,
+ }
}
func requiredParamString(r *http.Request, param string) (string, error) {
diff --git a/server/subsonic/opensubsonic.go b/server/subsonic/opensubsonic.go
new file mode 100644
index 00000000..106029da
--- /dev/null
+++ b/server/subsonic/opensubsonic.go
@@ -0,0 +1,13 @@
+package subsonic
+
+import (
+ "net/http"
+
+ "github.com/navidrome/navidrome/server/subsonic/responses"
+)
+
+func (api *Router) GetOpenSubsonicExtensions(_ *http.Request) (*responses.Subsonic, error) {
+ response := newResponse()
+ response.OpenSubsonicExtensions = &responses.OpenSubsonicExtensions{}
+ return response, nil
+}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON
index 30919663..bd090769 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","albumInfo":{"notes":"Believe is the twenty-third studio album by American singer-actress Cher...","musicBrainzId":"03c91c40-49a6-44a7-90e7-a700edf97a62","lastFmUrl":"https://www.last.fm/music/Cher/Believe","smallImageUrl":"https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png","mediumImageUrl":"https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png","largeImageUrl":"https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumInfo":{"notes":"Believe is the twenty-third studio album by American singer-actress Cher...","musicBrainzId":"03c91c40-49a6-44a7-90e7-a700edf97a62","lastFmUrl":"https://www.last.fm/music/Cher/Believe","smallImageUrl":"https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png","mediumImageUrl":"https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png","largeImageUrl":"https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png"}}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML
index a2f86147..4a1015d8 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML
@@ -1 +1 @@
-Believe is the twenty-third studio album by American singer-actress Cher...03c91c40-49a6-44a7-90e7-a700edf97a62https://www.last.fm/music/Cher/Believehttps://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.pnghttps://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.pnghttps://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png
+Believe is the twenty-third studio album by American singer-actress Cher...03c91c40-49a6-44a7-90e7-a700edf97a62https://www.last.fm/music/Cher/Believehttps://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.pnghttps://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.pnghttps://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON
index 07e7bfa8..8322d184 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","albumInfo":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumInfo":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML
index 3dff7bbe..422a7546 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON
index cf751c27..40c69195 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","albumList":{"album":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumList":{"album":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML
index 7ccca023..e4f61a70 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON
index 497f1609..441f17c9 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","albumList":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumList":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML
index b710114c..7647de2f 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON
index 4d4c99f5..6190d65e 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","artistInfo":{"biography":"Black Sabbath is an English \u003ca target='_blank' href=\"http://www.last.fm/tag/heavy%20metal\" class=\"bbcode_tag\" rel=\"tag\"\u003eheavy metal\u003c/a\u003e band","musicBrainzId":"5182c1d9-c7d2-4dad-afa0-ccfeada921a8","lastFmUrl":"https://www.last.fm/music/Black+Sabbath","smallImageUrl":"https://userserve-ak.last.fm/serve/64/27904353.jpg","mediumImageUrl":"https://userserve-ak.last.fm/serve/126/27904353.jpg","largeImageUrl":"https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg","similarArtist":[{"id":"22","name":"Accept"},{"id":"101","name":"Bruce Dickinson"},{"id":"26","name":"Aerosmith"}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"artistInfo":{"biography":"Black Sabbath is an English \u003ca target='_blank' href=\"http://www.last.fm/tag/heavy%20metal\" class=\"bbcode_tag\" rel=\"tag\"\u003eheavy metal\u003c/a\u003e band","musicBrainzId":"5182c1d9-c7d2-4dad-afa0-ccfeada921a8","lastFmUrl":"https://www.last.fm/music/Black+Sabbath","smallImageUrl":"https://userserve-ak.last.fm/serve/64/27904353.jpg","mediumImageUrl":"https://userserve-ak.last.fm/serve/126/27904353.jpg","largeImageUrl":"https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg","similarArtist":[{"id":"22","name":"Accept"},{"id":"101","name":"Bruce Dickinson"},{"id":"26","name":"Aerosmith"}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML
index a3cc029b..d53a9d2b 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML
@@ -1 +1 @@
-Black Sabbath is an English <a target='_blank' href="http://www.last.fm/tag/heavy%20metal" class="bbcode_tag" rel="tag">heavy metal</a> band5182c1d9-c7d2-4dad-afa0-ccfeada921a8https://www.last.fm/music/Black+Sabbathhttps://userserve-ak.last.fm/serve/64/27904353.jpghttps://userserve-ak.last.fm/serve/126/27904353.jpghttps://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg
+Black Sabbath is an English <a target='_blank' href="http://www.last.fm/tag/heavy%20metal" class="bbcode_tag" rel="tag">heavy metal</a> band5182c1d9-c7d2-4dad-afa0-ccfeada921a8https://www.last.fm/music/Black+Sabbathhttps://userserve-ak.last.fm/serve/64/27904353.jpghttps://userserve-ak.last.fm/serve/126/27904353.jpghttps://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON
index b237947b..43d477ab 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","artistInfo":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"artistInfo":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML
index 87910d5b..8e2fa628 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON
index 42034480..60227980 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","bookmarks":{"bookmark":[{"entry":{"id":"1","isDir":false,"title":"title","isVideo":false},"position":123,"username":"user2","comment":"a comment","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"bookmarks":{"bookmark":[{"entry":{"id":"1","isDir":false,"title":"title","isVideo":false},"position":123,"username":"user2","comment":"a comment","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML
index cda50663..080d4fc4 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON
index 06316950..41dfd365 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","bookmarks":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"bookmarks":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML
index 746ee55b..9424d82a 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON
index 2d9e1ec5..0444d8e7 100644
--- a/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","directory":{"child":[{"id":"1","isDir":true,"title":"title","album":"album","artist":"artist","track":1,"year":1985,"genre":"Rock","coverArt":"1","size":8421341,"contentType":"audio/flac","suffix":"flac","starred":"2016-03-02T20:30:00Z","transcodedContentType":"audio/mpeg","transcodedSuffix":"mp3","duration":146,"bitRate":320,"isVideo":false}],"id":"1","name":"N"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"child":[{"id":"1","isDir":true,"title":"title","album":"album","artist":"artist","track":1,"year":1985,"genre":"Rock","coverArt":"1","size":8421341,"contentType":"audio/flac","suffix":"flac","starred":"2016-03-02T20:30:00Z","transcodedContentType":"audio/mpeg","transcodedSuffix":"mp3","duration":146,"bitRate":320,"isVideo":false}],"id":"1","name":"N"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Child with data should match .XML b/server/subsonic/responses/.snapshots/Responses Child with data should match .XML
index 1eeeaac1..1ce29024 100644
--- a/server/subsonic/responses/.snapshots/Responses Child with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Child with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON
index ad1d1c3d..7b3f7de8 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","directory":{"child":[{"id":"1","isDir":false,"title":"title","isVideo":false}],"id":"1","name":"N"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"child":[{"id":"1","isDir":false,"title":"title","isVideo":false}],"id":"1","name":"N"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML b/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML
index d161bfb2..b11f3fce 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON
index 3964f66d..e66f5ac2 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","directory":{"id":"1","name":"N"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"id":"1","name":"N"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML b/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML
index 8cd0bece..cf5cea64 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON
index 6348cab1..3150c9a6 100644
--- a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0"}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true}
diff --git a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .XML b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .XML
index bb84788d..651d6df0 100644
--- a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON
index 1138cfc6..a81a9666 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","genres":{"genre":[{"value":"Rock","songCount":1000,"albumCount":100},{"value":"Reggae","songCount":500,"albumCount":50},{"value":"Pop","songCount":0,"albumCount":0}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"genres":{"genre":[{"value":"Rock","songCount":1000,"albumCount":100},{"value":"Reggae","songCount":500,"albumCount":50},{"value":"Pop","songCount":0,"albumCount":0}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML b/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML
index 038255b1..cc69c08a 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML
@@ -1 +1 @@
-RockReggaePop
+RockReggaePop
diff --git a/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON
index ca90b27a..80049cd5 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","genres":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"genres":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML b/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML
index f0ba9ea6..48a18fa5 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON
index be2e03db..3ae84683 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","indexes":{"index":[{"name":"A","artist":[{"id":"111","name":"aaa","albumCount":2,"starred":"2016-03-02T20:30:00Z","userRating":3,"artistImageUrl":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}]}],"lastModified":1,"ignoredArticles":"A"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"indexes":{"index":[{"name":"A","artist":[{"id":"111","name":"aaa","albumCount":2,"starred":"2016-03-02T20:30:00Z","userRating":3,"artistImageUrl":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}]}],"lastModified":1,"ignoredArticles":"A"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML
index c8757df9..92836929 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON
index 5e9ffa25..c5c0607d 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","indexes":{"lastModified":1,"ignoredArticles":"A"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"indexes":{"lastModified":1,"ignoredArticles":"A"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML
index 7943840d..b4cdef1d 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON
index 8b6371e0..eb1a8dc4 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","internetRadioStations":{"internetRadioStation":[{"id":"12345678","name":"Example Stream","streamUrl":"https://example.com/stream","homePageUrl":"https://example.com"}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"internetRadioStations":{"internetRadioStation":[{"id":"12345678","name":"Example Stream","streamUrl":"https://example.com/stream","homePageUrl":"https://example.com"}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML
index e89e11e3..a0794eeb 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON
index d08b5908..a5dfc5e1 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","internetRadioStations":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"internetRadioStations":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML
index e2ed13e4..d670c317 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses License should match .JSON b/server/subsonic/responses/.snapshots/Responses License should match .JSON
index 89e52248..f815a209 100644
--- a/server/subsonic/responses/.snapshots/Responses License should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses License should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","license":{"valid":true}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"license":{"valid":true}}
diff --git a/server/subsonic/responses/.snapshots/Responses License should match .XML b/server/subsonic/responses/.snapshots/Responses License should match .XML
index 0a724f69..e5a90c46 100644
--- a/server/subsonic/responses/.snapshots/Responses License should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses License should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON
index bd15ee94..204a358f 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","lyrics":{"artist":"Rick Astley","title":"Never Gonna Give You Up","value":"Never gonna give you up\n\t\t\t\tNever gonna let you down\n\t\t\t\tNever gonna run around and desert you\n\t\t\t\tNever gonna say goodbye"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"lyrics":{"artist":"Rick Astley","title":"Never Gonna Give You Up","value":"Never gonna give you up\n\t\t\t\tNever gonna let you down\n\t\t\t\tNever gonna run around and desert you\n\t\t\t\tNever gonna say goodbye"}}
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML
index 92f3a001..c7e6f82d 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML
@@ -1 +1 @@
-Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna say goodbye
+Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna say goodbye
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON
index 5bb964d9..10f5c211 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","lyrics":{"value":""}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"lyrics":{"value":""}}
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML
index 3a2ae01a..9abc77e1 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON
index 634549ea..fb79b75c 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","musicFolders":{"musicFolder":[{"id":111,"name":"aaa"},{"id":222,"name":"bbb"}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"musicFolders":{"musicFolder":[{"id":111,"name":"aaa"},{"id":222,"name":"bbb"}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML
index 4a4e88b5..da940c3f 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON
index d0a73ebd..ee512ae4 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","musicFolders":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"musicFolders":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML
index 71a88eed..63848d75 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON
index 3821ebd6..2603112b 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","playQueue":{"entry":[{"id":"1","isDir":false,"title":"title","isVideo":false}],"current":"111","position":243,"username":"user1","changed":"0001-01-01T00:00:00Z","changedBy":"a_client"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playQueue":{"entry":[{"id":"1","isDir":false,"title":"title","isVideo":false}],"current":"111","position":243,"username":"user1","changed":"0001-01-01T00:00:00Z","changedBy":"a_client"}}
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML
index 9e0f82ae..d96030df 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON
index 0386aaa9..d13e3ae8 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","playQueue":{"username":"","changedBy":""}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playQueue":{"username":"","changedBy":""}}
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML
index 42ccb087..b2a09b36 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON
index ca11eb3b..9f1f57e0 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","playlists":{"playlist":[{"id":"111","name":"aaa","comment":"comment","songCount":2,"duration":120,"public":true,"owner":"admin","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","coverArt":"pl-123123123123"},{"id":"222","name":"bbb","songCount":0,"duration":0,"public":false,"created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playlists":{"playlist":[{"id":"111","name":"aaa","comment":"comment","songCount":2,"duration":120,"public":true,"owner":"admin","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","coverArt":"pl-123123123123"},{"id":"222","name":"bbb","songCount":0,"duration":0,"public":false,"created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML
index c97edbf0..cd6d1cca 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON
index 3dec0b4b..cd9ece06 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","playlists":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playlists":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML
index c12651c9..90bf400e 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON
index 3a4da64a..8e8b0e1b 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","scanStatus":{"scanning":true,"count":456,"folderCount":123,"lastScan":"2006-01-02T15:04:00Z"}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"scanStatus":{"scanning":true,"count":456,"folderCount":123,"lastScan":"2006-01-02T15:04:00Z"}}
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML
index 8a88d16d..69c2e9c0 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON
index cacbff46..4b65e3fe 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","scanStatus":{"scanning":false,"count":0,"folderCount":0}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"scanStatus":{"scanning":false,"count":0,"folderCount":0}}
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML
index b8f0d866..9d3b38d1 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON
index 1a75ee78..e35b2729 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","shares":{"share":[{"entry":[{"id":"1","isDir":false,"title":"title","album":"album","artist":"artist","duration":120,"isVideo":false},{"id":"2","isDir":false,"title":"title 2","album":"album","artist":"artist","duration":300,"isVideo":false}],"id":"ABC123","url":"http://localhost/p/ABC123","description":"Check it out!","username":"deluan","created":"0001-01-01T00:00:00Z","expires":"0001-01-01T00:00:00Z","lastVisited":"0001-01-01T00:00:00Z","visitCount":2}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"shares":{"share":[{"entry":[{"id":"1","isDir":false,"title":"title","album":"album","artist":"artist","duration":120,"isVideo":false},{"id":"2","isDir":false,"title":"title 2","album":"album","artist":"artist","duration":300,"isVideo":false}],"id":"ABC123","url":"http://localhost/p/ABC123","description":"Check it out!","username":"deluan","created":"0001-01-01T00:00:00Z","expires":"0001-01-01T00:00:00Z","lastVisited":"0001-01-01T00:00:00Z","visitCount":2}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML b/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML
index 371c2c13..4fa5cda1 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON
index 5271cb8e..bf12c71e 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","shares":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"shares":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML b/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML
index dbf58a6d..6b8aec3f 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON
index 49f25fc9..1a09565e 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","similarSongs":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML
index 29e13bb6..f0a2e016 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON
index 3ae1c3e8..642ee62b 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","similarSongs":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML
index b8506c7d..ff1ad253 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON
index 0aea25e1..2236dc35 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","similarSongs2":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs2":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML
index d9d1db3a..090a59d7 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON
index 0293c5af..e7e22062 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","similarSongs2":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs2":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML
index 834a853b..0c07e934 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON
index b8044a50..889707ae 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","topSongs":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"topSongs":{"song":[{"id":"1","isDir":false,"title":"title","isVideo":false}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML
index a4e62d77..bda5a0a6 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON
index d578a767..dba6277c 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","topSongs":{}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"topSongs":{}}
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML
index cec47f95..479cf867 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses User with data should match .JSON b/server/subsonic/responses/.snapshots/Responses User with data should match .JSON
index 917d9c36..f54aba0d 100644
--- a/server/subsonic/responses/.snapshots/Responses User with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses User with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","user":{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"user":{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}}
diff --git a/server/subsonic/responses/.snapshots/Responses User with data should match .XML b/server/subsonic/responses/.snapshots/Responses User with data should match .XML
index ad424509..cc107ad2 100644
--- a/server/subsonic/responses/.snapshots/Responses User with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses User with data should match .XML
@@ -1 +1 @@
-1
+1
diff --git a/server/subsonic/responses/.snapshots/Responses User without data should match .JSON b/server/subsonic/responses/.snapshots/Responses User without data should match .JSON
index 0fec700d..f904447a 100644
--- a/server/subsonic/responses/.snapshots/Responses User without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses User without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","user":{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"user":{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}}
diff --git a/server/subsonic/responses/.snapshots/Responses User without data should match .XML b/server/subsonic/responses/.snapshots/Responses User without data should match .XML
index d49c1078..094b1e33 100644
--- a/server/subsonic/responses/.snapshots/Responses User without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses User without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON
index f2a9ec6b..eee65ff2 100644
--- a/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","users":{"user":[{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":true,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"users":{"user":[{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":true,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Users with data should match .XML b/server/subsonic/responses/.snapshots/Responses Users with data should match .XML
index 1a346207..4c5ebbe9 100644
--- a/server/subsonic/responses/.snapshots/Responses Users with data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Users with data should match .XML
@@ -1 +1 @@
-1
+1
diff --git a/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON
index 365eabd0..601ea1d6 100644
--- a/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON
+++ b/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON
@@ -1 +1 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","users":{"user":[{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}]}}
+{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"users":{"user":[{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}]}}
diff --git a/server/subsonic/responses/.snapshots/Responses Users without data should match .XML b/server/subsonic/responses/.snapshots/Responses Users without data should match .XML
index a92c2e2f..fb7ce116 100644
--- a/server/subsonic/responses/.snapshots/Responses Users without data should match .XML
+++ b/server/subsonic/responses/.snapshots/Responses Users without data should match .XML
@@ -1 +1 @@
-
+
diff --git a/server/subsonic/responses/responses.go b/server/subsonic/responses/responses.go
index 916aeb4a..0df2c0ad 100644
--- a/server/subsonic/responses/responses.go
+++ b/server/subsonic/responses/responses.go
@@ -11,6 +11,7 @@ type Subsonic struct {
Version string `xml:"version,attr" json:"version"`
Type string `xml:"type,attr" json:"type"`
ServerVersion string `xml:"serverVersion,attr" json:"serverVersion"`
+ OpenSubsonic bool `xml:"openSubsonic,attr,omitempty" json:"openSubsonic,omitempty"`
Error *Error `xml:"error,omitempty" json:"error,omitempty"`
License *License `xml:"license,omitempty" json:"license,omitempty"`
MusicFolders *MusicFolders `xml:"musicFolders,omitempty" json:"musicFolders,omitempty"`
@@ -50,7 +51,8 @@ type Subsonic struct {
ScanStatus *ScanStatus `xml:"scanStatus,omitempty" json:"scanStatus,omitempty"`
Lyrics *Lyrics `xml:"lyrics,omitempty" json:"lyrics,omitempty"`
- InternetRadioStations *InternetRadioStations `xml:"internetRadioStations,omitempty" json:"internetRadioStations,omitempty"`
+ InternetRadioStations *InternetRadioStations `xml:"internetRadioStations,omitempty" json:"internetRadioStations,omitempty"`
+ OpenSubsonicExtensions *OpenSubsonicExtensions `xml:"openSubsonicExtensions,omitempty" json:"openSubsonicExtensions,omitempty"`
}
type JsonWrapper struct {
@@ -399,3 +401,5 @@ type Radio struct {
StreamUrl string `xml:"streamUrl,attr" json:"streamUrl"`
HomepageUrl string `xml:"homePageUrl,omitempty,attr" json:"homePageUrl,omitempty"`
}
+
+type OpenSubsonicExtensions struct{}
diff --git a/server/subsonic/responses/responses_test.go b/server/subsonic/responses/responses_test.go
index 850317aa..c4681221 100644
--- a/server/subsonic/responses/responses_test.go
+++ b/server/subsonic/responses/responses_test.go
@@ -19,7 +19,13 @@ import (
var _ = Describe("Responses", func() {
var response *Subsonic
BeforeEach(func() {
- response = &Subsonic{Status: "ok", Version: "1.8.0", Type: consts.AppName, ServerVersion: "v0.0.0"}
+ response = &Subsonic{
+ Status: "ok",
+ Version: "1.8.0",
+ Type: consts.AppName,
+ ServerVersion: "v0.0.0",
+ OpenSubsonic: true,
+ }
})
Describe("EmptyResponse", func() {