Subsonic: Use common static function CreateUrl()

This commit is contained in:
Jonas Kvinge
2021-09-25 01:18:08 +02:00
parent 23ef4fb132
commit 71868936d1
7 changed files with 18 additions and 57 deletions

View File

@@ -46,29 +46,7 @@ UrlHandler::LoadResult SubsonicUrlHandler::StartLoading(const QUrl &url) {
return LoadResult(url, LoadResult::Error, tr("Missing Subsonic username or password."));
}
ParamList params = ParamList() << Param("c", client_name())
<< Param("v", api_version())
<< Param("f", "json")
<< Param("u", username())
<< Param("id", url.path());
SubsonicBaseRequest::AddPasswordToParams(params, auth_method(), password());
QUrlQuery url_query;
for (const Param &param : params) {
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
QUrl stream_url(server_url());
if (!stream_url.path().isEmpty() && stream_url.path().right(1) == "/") {
stream_url.setPath(stream_url.path() + QString("rest/stream.view"));
}
else {
stream_url.setPath(stream_url.path() + QString("/rest/stream.view"));
}
stream_url.setQuery(url_query);
const QUrl stream_url = SubsonicBaseRequest::CreateUrl(server_url(), auth_method(), username(), password(), "stream", ParamList() << Param("id", url.path()));
return LoadResult(url, LoadResult::TrackAvailable, stream_url);