=E6 bug fixes

E6 changed Json request and response
Edited to mirror those changes
This commit is contained in:
Alex Stewart
2020-03-26 02:53:20 -04:00
parent 0728370bf2
commit 99e3566188
+69 -35
View File
@@ -24,23 +24,55 @@ public class NetworkE6
// Internal JSON class and variables // // Internal JSON class and variables //
//////////////////////////////////.//// //////////////////////////////////.////
private static final Gson jsonParser_ = new Gson(); private static final Gson jsonParser_ = new Gson();
private static final String API_ROOT = "https://e621.net/post/index.json?"; private static final String API_ROOT = "https://e621.net/posts.json?";
private static int maxSearchResults_ = 10; private static int maxSearchResults_ = 10;
private static String[] blacklist = Ref.e621Blacklist; private static String[] blacklist = Ref.e621Blacklist;
private class E6ResponseObject private class E6ResponseObject
{ {
// public varaibles matching the case and the type we want for JSON. // public variables matching the case and the type we want for JSON.
// There are many more fields, but if we don't provide some it just // There are many more fields, but if we don't provide some it just
// doesn't bother parsing them. // doesn't bother parsing them.
public String file_url; public E6ResponseObjectPost [] posts;
public String id;
public String tags;
public String [] artist;
public String [] sources;
public String score;
} }
private class E6ResponseObjectPost
{
public String id;
public String [] sources;
public String[] pools;
public String rating;
public E6ResponseObjectFile file;
public E6ResponseObjectScore score;
public E6ResponseObjectTags tags;
public E6ResponseObjectRelationships relationships;
}
private class E6ResponseObjectFile
{
public String url;
}
private class E6ResponseObjectScore
{
public String total;
}
private class E6ResponseObjectTags
{
public String[] general;
public String[] artist;
}
private class E6ResponseObjectRelationships
{
public String has_children;
public String[] children;
}
//////////////////// ////////////////////
@@ -59,28 +91,26 @@ public class NetworkE6
// Configure and send request. Note: Random ordering added as first // Configure and send request. Note: Random ordering added as first
// tag by default. User-provided tags, therefore, will override it. // tag by default. User-provided tags, therefore, will override it.
// If order:score is provided, that will be honored over order:random. // If order:score is provided, that will be honored over order:random.
String res = HTTPUtils.sendPOSTRequest(API_ROOT String res = HTTPUtils.sendGETRequest(API_ROOT + "tags=order:random%20" + input + "&limit=" + maxSearchResults_);
, "tags=order:random%20" + input + "&limit=" + maxSearchResults_);
if(res != null) if(res != null)
{ {
// Use class evaluation on an array of the response imageObject to be able to hold multiple.
E6ResponseObject[] imageObj = jsonParser_.fromJson(res, E6ResponseObject[].class);
// Use class evaluation on an array of the response imageObject to be able to hold multiple.
System.out.println("Still");
E6ResponseObject imageObj = jsonParser_.fromJson(res, E6ResponseObject.class);
System.out.println("Broken");
// For now, we really just wanna display images and their source. // For now, we really just wanna display images and their source.
// Append them all separately to a response string w/ some flavor text. // Append them all separately to a response string w/ some flavor text.
if(imageObj.length < 1) if(imageObj.posts.length < 1)
{ {
} }
else else
{ {
for(int i = 0; i < imageObj.posts.length; ++i)
for(int i = 0; i < imageObj.length; ++i)
{ {
String [] TagsList = imageObj[i].tags.split(" "); String [] TagsList = imageObj.posts[i].tags.general;
blacklisted = false; blacklisted = false;
for(int j = 0; j < blacklist.length; j++) for(int j = 0; j < blacklist.length; j++)
{ {
@@ -99,10 +129,15 @@ public class NetworkE6
return null; return null;
} }
// We will always have a file URL. That's a given. // We will always have a file URL. That's a given.
image.editImageURL(imageObj[i].file_url); image.editImageURL(imageObj.posts[i].file.url);
image.editPostURL("https://e621.net/post/show/" + imageObj[i].id); image.editPostURL("https://e621.net/posts/" + imageObj.posts[i].id);
if(imageObj[i].artist.length > 0) if(imageObj.posts[i].tags.artist.length > 0)
image.editArtist(imageObj[i].artist[0]); {
String artists = "";
for(int j = 0; j < imageObj.posts[i].tags.artist.length; j++)
artists += imageObj.posts[i].tags.artist[j];
image.editArtist(artists);
}
else else
image.editArtist("Artist Not Found!"); image.editArtist("Artist Not Found!");
@@ -110,13 +145,13 @@ public class NetworkE6
String sources = ""; String sources = "";
if(imageObj[i].sources != null) if(imageObj.posts[i].sources != null)
{ {
for(int k = 0; k < imageObj[i].sources.length; k ++) for(int k = 0; k < imageObj.posts[i].sources.length; k ++)
{ {
if(!imageObj[i].sources[k].endsWith(imageObj[i].file_url.substring(imageObj[i].file_url.lastIndexOf('.')))) if(!imageObj.posts[i].sources[k].endsWith(imageObj.posts[i].file.url.substring(imageObj.posts[i].file.url.lastIndexOf('.'))))
{ {
String source = imageObj[i].sources[k]; String source = imageObj.posts[i].sources[k];
if(source.contains("//www.")) if(source.contains("//www."))
{ {
source = source.substring(source.indexOf(".") + 1); source = source.substring(source.indexOf(".") + 1);
@@ -127,31 +162,30 @@ public class NetworkE6
source = source.substring(source.indexOf("/") + 2); source = source.substring(source.indexOf("/") + 2);
source = source.substring(0, source.indexOf('.')); source = source.substring(0, source.indexOf('.'));
} }
sources += " [" + source + "](" + imageObj[i].sources[k] + ") "; sources += " [" + source + "](" + imageObj.posts[i].sources[k] + ") ";
} }
} }
image.editDescriptionText("Score: " + imageObj[i].score + "\n**Source:**" + sources); image.editDescriptionText("Score: " + imageObj.posts[i].score.total + "\n**Source:**" + sources);
} }
else else
{ {
image.editDescriptionText("Score: " + imageObj[i].score); image.editDescriptionText("Score: " + imageObj.posts[i].score.total);
} }
String descTags = "";
if(imageObj[i].tags.split(" ").length > 15) if(imageObj.posts[i].tags.general.length > 15)
{ {
String [] splitTags = imageObj[i].tags.split(" ");
String descTags = "";
for(int o = 0; o < 15; o++) for(int o = 0; o < 15; o++)
{ {
descTags += splitTags[o] + ", "; descTags += imageObj.posts[i].tags.general[o] + ", ";
} }
image.editFooterText("[Tags] " + descTags + " etc."); image.editFooterText("[Tags] " + descTags + " etc.");
} }
else else
{ {
image.editFooterText("[Tags] " + imageObj[i].tags.replace(" ", ", ")); descTags = imageObj.posts[i].tags.general.toString();
image.editFooterText("[Tags] " + descTags);
} }
if(image.output().authorText != null) if(image.output().authorText != null)