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

@ -28,6 +28,7 @@ public class FmNetwork {
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,6 +62,8 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
if (response.getStatus() == 200) {
JSONObject obj = new JSONObject(response.getBody().toString()); JSONObject obj = new JSONObject(response.getBody().toString());
String nameIn; String nameIn;
@ -97,7 +100,8 @@ public class FmNetwork {
builder.setListeners(albumJson.getInt("listeners")); builder.setListeners(albumJson.getInt("listeners"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage()); ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage()); System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
} }
@ -142,6 +146,15 @@ public class FmNetwork {
System.err.println("ERROR: Album Name Not Found, " + e.getMessage()); System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
} }
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole()
.write("ERROR (getAlbum): " + name + " " + artist + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getAlbum): " + name + " " + artist + " HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -165,6 +178,8 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
if (response.getStatus() == 200) {
JSONObject obj = new JSONObject(response.getBody().toString()); JSONObject obj = new JSONObject(response.getBody().toString());
String artistName; String artistName;
@ -181,7 +196,8 @@ public class FmNetwork {
builder.setMbid(artistJson.getString("mbid")); builder.setMbid(artistJson.getString("mbid"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No MBID for " + artistName + " , " + e.getMessage()); ConsoleHandler.getConsole()
.write("ERROR: No MBID for " + artistName + " , " + e.getMessage());
else else
System.err.println("ERROR: No MBID for " + artistName + " , " + e.getMessage()); System.err.println("ERROR: No MBID for " + artistName + " , " + e.getMessage());
} }
@ -190,7 +206,8 @@ public class FmNetwork {
builder.setUrl(artistJson.getString("url")); builder.setUrl(artistJson.getString("url"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No Url for " + artistName + " , " + e.getMessage()); ConsoleHandler.getConsole()
.write("ERROR: No Url for " + artistName + " , " + e.getMessage());
else else
System.err.println("ERROR: No Url for " + artistName + " , " + e.getMessage()); System.err.println("ERROR: No Url for " + artistName + " , " + e.getMessage());
} }
@ -231,7 +248,8 @@ public class FmNetwork {
} 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: No wiki for " + artistName + " , " + e.getMessage());
else else
System.err.println("ERROR: No wiki for " + artistName + " , " + e.getMessage()); System.err.println("ERROR: No wiki for " + artistName + " , " + e.getMessage());
} }
@ -244,6 +262,13 @@ public class FmNetwork {
else else
System.err.println("ERROR: Arist Name Not Found, " + e.getMessage()); System.err.println("ERROR: Arist Name Not Found, " + e.getMessage());
} }
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getArtist): " + name + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getArtist): " + name + " HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
@ -269,6 +294,8 @@ public class FmNetwork {
HttpResponse<JsonNode> response = request.asJson(); HttpResponse<JsonNode> response = request.asJson();
if (response.getStatus() == 200) {
JSONObject obj = new JSONObject(response.getBody().toString()); JSONObject obj = new JSONObject(response.getBody().toString());
String nameIn; String nameIn;
@ -305,7 +332,8 @@ public class FmNetwork {
builder.setListeners(trackJson.getInt("listeners")); builder.setListeners(trackJson.getInt("listeners"));
} catch (JSONException e) { } catch (JSONException e) {
if (ConsoleHandler.isVerbose()) if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR: No listeners for " + nameIn + " , " + e.getMessage()); ConsoleHandler.getConsole()
.write("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
else else
System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage()); System.err.println("ERROR: No listeners for " + nameIn + " , " + e.getMessage());
} }
@ -350,6 +378,14 @@ public class FmNetwork {
System.err.println("ERROR: Album Name Not Found, " + e.getMessage()); System.err.println("ERROR: Album Name Not Found, " + e.getMessage());
} }
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getTrack): " + name + " " + artist + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getTrack): " + name + " " + artist + " HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -383,9 +419,12 @@ public class FmNetwork {
} }
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

@ -25,7 +25,9 @@ public class FmUserNetwork extends FmNetwork {
} }
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() {
@ -38,12 +40,22 @@ public class FmUserNetwork extends FmNetwork {
.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();
if (response.getStatus() == 200) {
JSONObject obj = new JSONObject(response.getBody().toString()).getJSONObject("user"); JSONObject obj = new JSONObject(response.getBody().toString()).getJSONObject("user");
return new User(obj.getString("name"), obj.getString("realname"), obj.getString("url"), return new User(obj.getString("name"), obj.getString("realname"), obj.getString("url"),
obj.getString("country"), obj.getInt("age"), obj.getString("gender").charAt(0), obj.getString("country"), obj.getInt("age"), obj.getString("gender").charAt(0),
obj.getInt("playcount")); 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();
} }
@ -75,6 +87,8 @@ public class FmUserNetwork extends FmNetwork {
.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();
if (response.getStatus() == 200) {
JSONArray obj = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks") JSONArray obj = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks")
.getJSONArray("track"); .getJSONArray("track");
@ -86,6 +100,14 @@ public class FmUserNetwork extends FmNetwork {
return trackObj; 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();
} }
@ -103,21 +125,27 @@ public class FmUserNetwork extends FmNetwork {
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).
queryString("api_key", key).
queryString("format", "json").
asJson();
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total"); if (response.getStatus() == 200) {
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();
} }
@ -136,22 +164,29 @@ public class FmUserNetwork extends FmNetwork {
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).
queryString("limit", 1).
queryString("api_key", key).
queryString("format", "json").
asJson();
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total"); if (response.getStatus() == 200) {
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 (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();
} }
@ -171,22 +206,28 @@ public class FmUserNetwork extends FmNetwork {
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).
queryString("limit", 1).
queryString("api_key", key).
queryString("format", "json").
asJson();
int total = new JSONObject(response.getBody().toString()).getJSONObject("recenttracks").getJSONObject("@attr").getInt("total"); if (response.getStatus() == 200) {
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 (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();
} }
@ -199,16 +240,15 @@ public class FmUserNetwork extends FmNetwork {
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).
queryString("format", "json").
asJson();
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("toptags").getJSONArray("tag"); if (response.getStatus() == 200) {
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("toptags")
.getJSONArray("tag");
JSONObject tagJson; JSONObject tagJson;
@ -227,6 +267,14 @@ public class FmUserNetwork extends FmNetwork {
return tags; 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;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -240,19 +288,16 @@ public class FmUserNetwork extends FmNetwork {
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").
queryString("limit", 70).
queryString("api_key", key).
queryString("format", "json").
asJson();
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("taggings").getJSONObject("artists").getJSONArray("artist"); if (response.getStatus() == 200) {
JSONArray tagJsonArray = new JSONObject(response.getBody().toString()).getJSONObject("taggings")
.getJSONObject("artists").getJSONArray("artist");
JSONObject artistJson; JSONObject artistJson;
@ -276,6 +321,14 @@ public class FmUserNetwork extends FmNetwork {
return list; return list;
} else {
if (ConsoleHandler.isVerbose())
ConsoleHandler.getConsole().write("ERROR (getTag): " + tagName + " HTTP REQUEST ERROR");
else
System.err.println("ERROR (getTag): " + tagName + " HTTP REQUEST ERROR");
return null;
}
} catch (UnirestException e) { } catch (UnirestException e) {
e.printStackTrace(); e.printStackTrace();
} }