mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 09:53:33 +00:00
Added basic Subsonic interface
This commit is contained in:
parent
3fa634df39
commit
30ded0951b
5 changed files with 221 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
package com.cappielloantonio.play.subsonic;
|
||||
|
||||
import com.cappielloantonio.play.subsonic.base.Version;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Subsonic {
|
||||
private final SubsonicPreferences preferences;
|
||||
|
||||
private static final Version API_MIN_VERSION = Version.of("1.13.0");
|
||||
private static final Version API_MAX_VERSION = Version.of("1.15.0");
|
||||
|
||||
private Version apiVersion = API_MAX_VERSION;
|
||||
|
||||
public Subsonic(SubsonicPreferences preferences) {
|
||||
this.preferences = preferences;
|
||||
}
|
||||
|
||||
public SubsonicPreferences getPreferences() {
|
||||
return preferences;
|
||||
}
|
||||
|
||||
public static Version getApiMinVersion() {
|
||||
return API_MIN_VERSION;
|
||||
}
|
||||
|
||||
public static Version getApiMaxVersion() {
|
||||
return API_MAX_VERSION;
|
||||
}
|
||||
|
||||
public Version getApiVersion() {
|
||||
return apiVersion;
|
||||
}
|
||||
|
||||
public String createUrl(String path, Map<String, List<String>> params) {
|
||||
final StringBuilder sb = new StringBuilder(preferences.getServerUrl());
|
||||
|
||||
sb.append("/rest/").append(path);
|
||||
sb.append("?u=").append(preferences.getUsername());
|
||||
sb.append("&s=").append(preferences.getAuthentication().getSalt());
|
||||
sb.append("&t=").append(preferences.getAuthentication().getToken());
|
||||
sb.append("&v=").append(getApiVersion().getVersionString());
|
||||
sb.append("&c=").append(preferences.getClientName());
|
||||
sb.append("&f=").append("xml");
|
||||
|
||||
params.keySet().forEach(k -> params.get(k).forEach(v -> sb.append("&").append(k).append("=").append(v)));
|
||||
|
||||
return sb.toString().replace("//rest", "/rest");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue