adding status code check on http requests for error catching

This commit is contained in:
aj 2019-02-06 20:59:13 +00:00
parent 73373a6565
commit 6ecf2ad982
2 changed files with 435 additions and 343 deletions

View File

@ -27,7 +27,8 @@ public class FmNetwork {
public FmNetwork(String key) { public FmNetwork(String key) {
this.key = key; this.key = key;
} }
@Deprecated
public FmNetwork(String key, String userName) { public FmNetwork(String key, String userName) {
this.key = key; this.key = key;
this.userName = userName; this.userName = userName;
@ -61,85 +62,97 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
JSONObject obj = new JSONObject(response.getBody().toString()); if (response.getStatus() == 200) {
String nameIn; JSONObject obj = new JSONObject(response.getBody().toString());
String artistIn;
try { String nameIn;
String artistIn;
JSONObject albumJson = obj.getJSONObject("album");
nameIn = albumJson.getString("name");
artistIn = albumJson.getString("artist");
AlbumBuilder builder = new AlbumBuilder(nameIn, getArtist(artistIn));
try { try {
builder.setMbid(albumJson.getString("mbid"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
}
try { JSONObject albumJson = obj.getJSONObject("album");
builder.setUrl(albumJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
}
try { nameIn = albumJson.getString("name");
builder.setListeners(albumJson.getInt("listeners")); artistIn = albumJson.getString("artist");
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
}
try { AlbumBuilder builder = new AlbumBuilder(nameIn, getArtist(artistIn));
builder.setPlayCount(albumJson.getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
}
try { try {
builder.setUserPlayCount(albumJson.getInt("userplaycount")); builder.setMbid(albumJson.getString("mbid"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
}
} try {
builder.setUrl(albumJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
}
try { try {
JSONObject wikiJson = albumJson.getJSONObject("wiki"); builder.setListeners(albumJson.getInt("listeners"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
}
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"), try {
wikiJson.getString("content")); builder.setPlayCount(albumJson.getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
}
builder.setWiki(wiki); try {
builder.setUserPlayCount(albumJson.getInt("userplaycount"));
} catch (JSONException e) {
}
try {
JSONObject wikiJson = albumJson.getJSONObject("wiki");
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
wikiJson.getString("content"));
builder.setWiki(wiki);
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
}
return builder.build();
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage()); ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage());
else else
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage()); System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
} }
return builder.build(); } else {
} catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage()); ConsoleHandler.getConsole()
.write("ERROR (getAlbum): " + name + " " + artist + " HTTP REQUEST ERROR");
else else
System.err.println("ERROR: Album Name Not Found, " + e.getMessage()); System.err.println("ERROR (getAlbum): " + name + " " + artist + " HTTP REQUEST ERROR");
return null;
} }
} catch (UnirestException e) { } catch (UnirestException e) {
@ -165,84 +178,96 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
JSONObject obj = new JSONObject(response.getBody().toString()); if (response.getStatus() == 200) {
String artistName; JSONObject obj = new JSONObject(response.getBody().toString());
try { String artistName;
JSONObject artistJson = obj.getJSONObject("artist");
artistName = artistJson.getString("name");
ArtistBuilder builder = new ArtistBuilder(artistName);
try { try {
builder.setMbid(artistJson.getString("mbid"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + artistName + " , " + e.getMessage());
}
try { JSONObject artistJson = obj.getJSONObject("artist");
builder.setUrl(artistJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + artistName + " , " + e.getMessage());
}
try { artistName = artistJson.getString("name");
builder.setListeners(artistJson.getJSONObject("stats").getInt("listeners"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + artistName + " , " + e.getMessage());
}
try { ArtistBuilder builder = new ArtistBuilder(artistName);
builder.setPlayCount(artistJson.getJSONObject("stats").getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + artistName + " , " + e.getMessage());
}
try { try {
builder.setUserPlayCount(artistJson.getJSONObject("stats").getInt("userplaycount")); builder.setMbid(artistJson.getString("mbid"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No MBID for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + artistName + " , " + e.getMessage());
}
} try {
builder.setUrl(artistJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No Url for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + artistName + " , " + e.getMessage());
}
try { try {
JSONObject wikiJson = artistJson.getJSONObject("bio"); builder.setListeners(artistJson.getJSONObject("stats").getInt("listeners"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + artistName + " , " + e.getMessage());
}
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"), try {
wikiJson.getString("content")); builder.setPlayCount(artistJson.getJSONObject("stats").getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + artistName + " , " + e.getMessage());
}
builder.setWiki(wiki); try {
builder.setUserPlayCount(artistJson.getJSONObject("stats").getInt("userplaycount"));
} catch (JSONException e) {
}
try {
JSONObject wikiJson = artistJson.getJSONObject("bio");
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
wikiJson.getString("content"));
builder.setWiki(wiki);
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No wiki for " + artistName + " , " + e.getMessage());
else
System.err.println("ERROR: No wiki for " + artistName + " , " + e.getMessage());
}
return builder.build();
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No wiki for " + artistName + " , " + e.getMessage()); ConsoleHandler.getConsole().write("ERROR: Arist Name Not Found, " + e.getMessage());
else else
System.err.println("ERROR: No wiki for " + artistName + " , " + e.getMessage()); System.err.println("ERROR: Arist Name Not Found, " + e.getMessage());
} }
} else {
return builder.build();
} catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: Arist Name Not Found, " + e.getMessage()); ConsoleHandler.getConsole().write("ERROR (getArtist): " + name + " HTTP REQUEST ERROR");
else else
System.err.println("ERROR: Arist Name Not Found, " + e.getMessage()); System.err.println("ERROR (getArtist): " + name + " HTTP REQUEST ERROR");
return null;
} }
} catch (UnirestException e) { } catch (UnirestException e) {
@ -269,85 +294,96 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
JSONObject obj = new JSONObject(response.getBody().toString()); if (response.getStatus() == 200) {
String nameIn; JSONObject obj = new JSONObject(response.getBody().toString());
String artistIn;
try { String nameIn;
String artistIn;
JSONObject trackJson = obj.getJSONObject("track");
nameIn = trackJson.getString("name");
artistIn = trackJson.getJSONObject("artist").getString("name");
TrackBuilder builder = new TrackBuilder(nameIn, getArtist(artistIn));
try { try {
builder.setMbid(trackJson.getString("mbid"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
}
try { JSONObject trackJson = obj.getJSONObject("track");
builder.setUrl(trackJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
}
try { nameIn = trackJson.getString("name");
builder.setListeners(trackJson.getInt("listeners")); artistIn = trackJson.getJSONObject("artist").getString("name");
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
}
try { TrackBuilder builder = new TrackBuilder(nameIn, getArtist(artistIn));
builder.setPlayCount(trackJson.getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
}
try { try {
builder.setUserPlayCount(trackJson.getInt("userplaycount")); builder.setMbid(trackJson.getString("mbid"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No MBID for " + nameIn + " , " + e.getMessage());
}
} try {
builder.setUrl(trackJson.getString("url"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No Url for " + nameIn + " , " + e.getMessage());
}
try { try {
JSONObject wikiJson = trackJson.getJSONObject("wiki"); builder.setListeners(trackJson.getInt("listeners"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
}
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"), try {
wikiJson.getString("content")); builder.setPlayCount(trackJson.getInt("playcount"));
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR: No play count for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No play count for " + nameIn + " , " + e.getMessage());
}
builder.setWiki(wiki); try {
builder.setUserPlayCount(trackJson.getInt("userplaycount"));
} catch (JSONException e) {
}
try {
JSONObject wikiJson = trackJson.getJSONObject("wiki");
Wiki wiki = new Wiki(wikiJson.getString("published"), wikiJson.getString("summary"),
wikiJson.getString("content"));
builder.setWiki(wiki);
} catch (JSONException e) {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
else
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage());
}
return builder.build();
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No wiki for " + nameIn + " , " + e.getMessage()); ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage());
else else
System.err.println("ERROR: No wiki for " + nameIn + " , " + e.getMessage()); System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
} }
return builder.build(); } else {
} catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: Album Name Not Found, " + e.getMessage()); ConsoleHandler.getConsole().write("ERROR (getTrack): " + name + " " + artist + " HTTP REQUEST ERROR");
else else
System.err.println("ERROR: Album Name Not Found, " + e.getMessage()); System.err.println("ERROR (getTrack): " + name + " " + artist + " HTTP REQUEST ERROR");
return null;
} }
} catch (UnirestException e) { } catch (UnirestException e) {
@ -360,32 +396,35 @@ public class FmNetwork {
public Album refresh(Album album) { public Album refresh(Album album) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>refreshAlbum: " + album.getName() + " " + album.getArtist().getName()); ConsoleHandler.getConsole().write(">>refreshAlbum: " + album.getName() + " " + album.getArtist().getName());
return getAlbum(album.getName(), album.getArtist().getName()); return getAlbum(album.getName(), album.getArtist().getName());
} }
public Artist refresh(Artist artist) { public Artist refresh(Artist artist) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>refreshArtist: " + artist.getName()); ConsoleHandler.getConsole().write(">>refreshArtist: " + artist.getName());
return getArtist(artist.getName()); return getArtist(artist.getName());
} }
public Track refresh(Track track) { public Track refresh(Track track) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>refreshTrack: " + track.getName() + " " + track.getArtist().getName()); ConsoleHandler.getConsole().write(">>refreshTrack: " + track.getName() + " " + track.getArtist().getName());
Track refreshedTrack = getTrack(track.getName(), track.getArtist().getName()); Track refreshedTrack = getTrack(track.getName(), track.getArtist().getName());
refreshedTrack.setAlbum(refresh(track.getAlbum())); refreshedTrack.setAlbum(refresh(track.getAlbum()));
return refreshedTrack; return refreshedTrack;
} }
public FMObj refresh(FMObj obj) { public FMObj refresh(FMObj obj) {
if(obj.getClass() == Track.class) return refresh((Track)obj); if (obj.getClass() == Track.class)
if(obj.getClass() == Album.class) return refresh((Album)obj); return refresh((Track) obj);
if(obj.getClass() == Artist.class) return refresh((Artist)obj); if (obj.getClass() == Album.class)
return refresh((Album) obj);
if (obj.getClass() == Artist.class)
return refresh((Artist) obj);
return null; return null;
} }
} }

View File

@ -19,30 +19,42 @@ import sarsoo.fmframework.util.ConsoleHandler;
import sarsoo.fmframework.util.FMObjList; import sarsoo.fmframework.util.FMObjList;
public class FmUserNetwork extends FmNetwork { public class FmUserNetwork extends FmNetwork {
public enum TaggingType { public enum TaggingType {
ARTIST, ALBUM, TRACK ARTIST, ALBUM, TRACK
} }
public FmUserNetwork(String key, String userName) { public FmUserNetwork(String key, String userName) {
super(key, userName); // super(key, userName);
super(key);
this.userName = userName;
} }
public User getUser() { public User getUser() {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getUser"); ConsoleHandler.getConsole().write(">>getUser");
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/") HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
.header("Accept", "application/json").header("User-Agent", "fmframework") .header("Accept", "application/json").header("User-Agent", "fmframework")
.queryString("method", "user.getinfo").queryString("user", userName).queryString("api_key", key) .queryString("method", "user.getinfo").queryString("user", userName).queryString("api_key", key)
.queryString("format", "json").asJson(); .queryString("format", "json").asJson();
JSONObject obj = new JSONObject(response.getBody().toString()).getJSONObject("user"); if (response.getStatus() == 200) {
return new User(obj.getString("name"), obj.getString("realname"), obj.getString("url"), JSONObject obj = new JSONObject(response.getBody().toString()).getJSONObject("user");
obj.getString("country"), obj.getInt("age"), obj.getString("gender").charAt(0),
obj.getInt("playcount")); return new User(obj.getString("name"), obj.getString("realname"), obj.getString("url"),
obj.getString("country"), obj.getInt("age"), obj.getString("gender").charAt(0),
obj.getInt("playcount"));
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getUser): HTTP REQUEST ERROR");
else
System.err.println("ERROR (getUser): HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
@ -54,7 +66,7 @@ public class FmUserNetwork extends FmNetwork {
public String getUserRealName() { public String getUserRealName() {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getUserRealname"); ConsoleHandler.getConsole().write(">>getUserRealname");
return getUser().getRealName(); return getUser().getRealName();
} }
@ -68,23 +80,33 @@ public class FmUserNetwork extends FmNetwork {
public Track getLastTrack() { public Track getLastTrack() {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getLastTrack"); ConsoleHandler.getConsole().write(">>getLastTrack");
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/") HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
.header("Accept", "application/json").header("User-Agent", "fmframework") .header("Accept", "application/json").header("User-Agent", "fmframework")
.queryString("method", "user.getrecenttracks").queryString("user", userName) .queryString("method", "user.getrecenttracks").queryString("user", userName)
.queryString("api_key", key).queryString("format", "json").queryString("limit", "1").asJson(); .queryString("api_key", key).queryString("format", "json").queryString("limit", "1").asJson();
JSONArray obj = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks") if (response.getStatus() == 200) {
.getJSONArray("track");
JSONObject track = (JSONObject) obj.get(0); JSONArray obj = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks")
.getJSONArray("track");
Track trackObj = getTrack(track.getString("name"), track.getJSONObject("artist").getString("#text")); JSONObject track = (JSONObject) obj.get(0);
trackObj.setAlbum(getAlbum(track.getJSONObject("album").getString("#text"),
track.getJSONObject("artist").getString("#text")));
return trackObj; Track trackObj = getTrack(track.getString("name"), track.getJSONObject("artist").getString("#text"));
trackObj.setAlbum(getAlbum(track.getJSONObject("album").getString("#text"),
track.getJSONObject("artist").getString("#text")));
return trackObj;
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getLastTrack): HTTP REQUEST ERROR");
else
System.err.println("ERROR (getLastTrack): HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
@ -92,196 +114,227 @@ public class FmUserNetwork extends FmNetwork {
return null; return null;
} }
public int getScrobblesToday() { public int getScrobblesToday() {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getScrobblesToday"); ConsoleHandler.getConsole().write(">>getScrobblesToday");
LocalDate local = LocalDate.now(); LocalDate local = LocalDate.now();
ZoneId zoneId = ZoneId.systemDefault(); ZoneId zoneId = ZoneId.systemDefault();
long epoch = local.atStartOfDay(zoneId).toEpochSecond(); long epoch = local.atStartOfDay(zoneId).toEpochSecond();
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/"). HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
header("Accept", "application/json"). .header("Accept", "application/json").header("User-Agent", "fmframework")
header("User-Agent", "fmframework"). .queryString("method", "user.getrecenttracks").queryString("user", userName)
queryString("method","user.getrecenttracks"). .queryString("from", epoch).queryString("limit", 1).queryString("api_key", key)
queryString("user", userName). .queryString("format", "json").asJson();
queryString("from", epoch).
queryString("limit", 1). if (response.getStatus() == 200) {
queryString("api_key", key).
queryString("format", "json"). int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks")
asJson(); .getJSONObject("@attr").getInt("total");
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total"); return total;
return total; } else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getScrobblesToday): HTTP REQUEST ERROR");
else
System.err.println("ERROR (getScrobblesToday): HTTP REQUEST ERROR");
return 0;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
return 0; return 0;
} }
public int getScrobbleCountByDate(int day, int month, int year) { public int getScrobbleCountByDate(int day, int month, int year) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getScrobblesByDate " + day + "." + month + "." + year); ConsoleHandler.getConsole().write(">>getScrobblesByDate " + day + "." + month + "." + year);
LocalDate startDate = LocalDate.of(year, month, day); LocalDate startDate = LocalDate.of(year, month, day);
ZoneId zoneId = ZoneId.systemDefault(); ZoneId zoneId = ZoneId.systemDefault();
long epoch = startDate.atStartOfDay(zoneId).toEpochSecond(); long epoch = startDate.atStartOfDay(zoneId).toEpochSecond();
long endEpoch = epoch + (24*60*60); long endEpoch = epoch + (24 * 60 * 60);
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/"). HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
header("Accept", "application/json"). .header("Accept", "application/json").header("User-Agent", "fmframework")
header("User-Agent", "fmframework"). .queryString("method", "user.getrecenttracks").queryString("user", userName)
queryString("method","user.getrecenttracks"). .queryString("from", epoch).queryString("to", endEpoch).queryString("limit", 1)
queryString("user", userName). .queryString("api_key", key).queryString("format", "json").asJson();
queryString("from", epoch).
queryString("to", endEpoch). if (response.getStatus() == 200) {
queryString("limit", 1).
queryString("api_key", key). int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks")
queryString("format", "json"). .getJSONObject("@attr").getInt("total");
asJson();
return total;
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total");
} else {
return total; if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getScrobbleCountByDate): " + day + " " + month + " "
+ year + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getScrobbleCountByDate): " + day + " " + month + " " + year
+ " HTTP REQUEST ERROR");
return 0;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
return 0; return 0;
} }
public int getScrobbleCountByDeltaDay(int day) { public int getScrobbleCountByDeltaDay(int day) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getScrobblesByDeltaDay " + day); ConsoleHandler.getConsole().write(">>getScrobblesByDeltaDay " + day);
LocalDate local = LocalDate.now(); LocalDate local = LocalDate.now();
ZoneId zoneId = ZoneId.systemDefault(); ZoneId zoneId = ZoneId.systemDefault();
long epoch = local.atStartOfDay(zoneId).toEpochSecond(); long epoch = local.atStartOfDay(zoneId).toEpochSecond();
epoch -= (day * (24*60*60)); epoch -= (day * (24 * 60 * 60));
long endEpoch = epoch + (24*60*60); long endEpoch = epoch + (24 * 60 * 60);
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/"). HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
header("Accept", "application/json"). .header("Accept", "application/json").header("User-Agent", "fmframework")
header("User-Agent", "fmframework"). .queryString("method", "user.getrecenttracks").queryString("user", userName)
queryString("method","user.getrecenttracks"). .queryString("from", epoch).queryString("to", endEpoch).queryString("limit", 1)
queryString("user", userName). .queryString("api_key", key).queryString("format", "json").asJson();
queryString("from", epoch).
queryString("to", endEpoch). if (response.getStatus() == 200) {
queryString("limit", 1).
queryString("api_key", key). int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks")
queryString("format", "json"). .getJSONObject("@attr").getInt("total");
asJson();
return total;
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total");
} else {
return total; if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR (getScrobbleCountByDeltaDay): " + day + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getScrobbleCountByDeltaDay): " + day + " HTTP REQUEST ERROR");
return 0;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
return 0; return 0;
} }
public ArrayList<Tag> getTags(){ public ArrayList<Tag> getTags() {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getTags"); ConsoleHandler.getConsole().write(">>getTags");
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/"). HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
header("Accept", "application/json"). .header("Accept", "application/json").header("User-Agent", "fmframework")
header("User-Agent", "fmframework"). .queryString("method", "user.gettoptags").queryString("user", userName).queryString("api_key", key)
queryString("method","user.gettoptags"). .queryString("format", "json").asJson();
queryString("user", userName).
queryString("api_key", key). if (response.getStatus() == 200) {
queryString("format", "json").
asJson(); JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("toptags")
.getJSONArray("tag");
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("toptags").getJSONArray("tag");
JSONObject tagJson;
JSONObject tagJson;
ArrayList<Tag> tags = new ArrayList<Tag>();
ArrayList<Tag> tags = new ArrayList<Tag>();
int counter;
int counter; for (counter = 0; counter < tagJsonArray.length(); counter++) {
for(counter = 0; counter < tagJsonArray.length(); counter++) {
tagJson = (JSONObject) tagJsonArray.get(counter);
tagJson = (JSONObject) tagJsonArray.get(counter);
Tag tag = new Tag(tagJson.getString("name"), tagJson.getString("url"), tagJson.getInt("count"));
Tag tag = new Tag(tagJson.getString("name"), tagJson.getString("url"), tagJson.getInt("count"));
tags.add(tag);
tags.add(tag);
}
return tags;
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getTags): HTTP REQUEST ERROR");
else
System.err.println("ERROR (getTags): HTTP REQUEST ERROR");
return null;
} }
return tags;
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;
} }
public FMObjList getTag(String tagName) { public FMObjList getTag(String tagName) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">>getTag: " + tagName); ConsoleHandler.getConsole().write(">>getTag: " + tagName);
try { try {
HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/"). HttpResponse<JsonNode> response = Unirest.get("http://ws.audioscrobbler.com/2.0/")
header("Accept", "application/json"). .header("Accept", "application/json").header("User-Agent", "fmframework")
header("User-Agent", "fmframework"). .queryString("method", "user.getpersonaltags").queryString("user", userName)
queryString("method","user.getpersonaltags"). .queryString("tag", tagName).queryString("taggingtype", "artist").queryString("limit", 70)
queryString("user", userName). .queryString("api_key", key).queryString("format", "json").asJson();
queryString("tag", tagName).
queryString("taggingtype", "artist"). if (response.getStatus() == 200) {
queryString("limit", 70).
queryString("api_key", key). JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("taggings")
queryString("format", "json"). .getJSONObject("artists").getJSONArray("artist");
asJson();
JSONObject artistJson;
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("taggings").getJSONObject("artists").getJSONArray("artist");
FMObjList list = new FMObjList();
JSONObject artistJson;
list.setGroupName(tagName);
FMObjList list = new FMObjList();
int counter;
list.setGroupName(tagName); for (counter = 0; counter < tagJsonArray.length(); counter++) {
int counter; artistJson = (JSONObject) tagJsonArray.get(counter);
for(counter = 0; counter < tagJsonArray.length(); counter++) {
Artist artist = getArtist(artistJson.getString("name"));
artistJson = (JSONObject) tagJsonArray.get(counter);
if (ConsoleHandler.isVerbose())
Artist artist = getArtist(artistJson.getString("name")); ConsoleHandler.getConsole().write(">Tag: " + tagName + ", " + artist.getName());
list.add(artist);
}
return list;
} else {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write(">Tag: " + tagName + ", " + artist.getName()); ConsoleHandler.getConsole().write("ERROR (getTag): " + tagName + " HTTP REQUEST ERROR");
else
list.add(artist); System.err.println("ERROR (getTag): " + tagName + " HTTP REQUEST ERROR");
return null;
} }
return list;
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;
} }
} }