Merge remote-tracking branch 'airsonic/pr/767'

master
Andrew DeMaria 6 years ago
commit f6905dec1b
No known key found for this signature in database
GPG Key ID: 0A3F5E91F8364EDF
  1. 16
      airsonic-main/src/main/java/org/airsonic/player/service/AudioScrobblerService.java

@ -40,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.util.*; import java.util.*;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
@ -174,8 +175,15 @@ public class AudioScrobblerService {
String clientVersion = "0.1"; String clientVersion = "0.1";
long timestamp = System.currentTimeMillis() / 1000L; long timestamp = System.currentTimeMillis() / 1000L;
String authToken = calculateAuthenticationToken(registrationData.password, timestamp); String authToken = calculateAuthenticationToken(registrationData.password, timestamp);
String[] lines = executeGetRequest("http://post.audioscrobbler.com/?hs=true&p=1.2.1&c=" + clientId + "&v=" + URI uri = new URI("https",
clientVersion + "&u=" + registrationData.username + "&t=" + timestamp + "&a=" + authToken); /* userInfo= */ null, "post.audioscrobbler.com", -1,
"/",
String.format("hs=true&p=1.2.1&c=%s&v=%s&u=%s&t=%s&a=%s",
clientId, clientVersion, registrationData.username,
timestamp, authToken),
/* fragment= */ null);
String[] lines = executeGetRequest(uri);
if (lines[0].startsWith("BANNED")) { if (lines[0].startsWith("BANNED")) {
LOG.warn("Failed to scrobble song '" + registrationData.title + "' at Last.fm. Client version is banned."); LOG.warn("Failed to scrobble song '" + registrationData.title + "' at Last.fm. Client version is banned.");
@ -236,7 +244,7 @@ public class AudioScrobblerService {
return DigestUtils.md5Hex(DigestUtils.md5Hex(password) + timestamp); return DigestUtils.md5Hex(DigestUtils.md5Hex(password) + timestamp);
} }
private String[] executeGetRequest(String url) throws IOException { private String[] executeGetRequest(URI url) throws IOException {
HttpGet method = new HttpGet(url); HttpGet method = new HttpGet(url);
method.setConfig(requestConfig); method.setConfig(requestConfig);
return executeRequest(method); return executeRequest(method);
@ -315,4 +323,4 @@ public class AudioScrobblerService {
public boolean submission; public boolean submission;
} }
} }

Loading…
Cancel
Save