diff --git a/.classpath b/.classpath
index 30f7b88..b7ca818 100644
--- a/.classpath
+++ b/.classpath
@@ -26,7 +26,7 @@
-
+
diff --git a/assets/beans/BeansBG.png b/assets/beans/BeansBG.png
index ae1bd6d..8658397 100644
Binary files a/assets/beans/BeansBG.png and b/assets/beans/BeansBG.png differ
diff --git a/beanImage.png b/beanImage.png
index 4de82bd..c244ec4 100644
Binary files a/beanImage.png and b/beanImage.png differ
diff --git a/lib/LavaPlayerJar-0.0.1-jar-with-dependencies.jar b/lib/LavaPlayerJar-1.3.50-jar-with-dependencies.jar
similarity index 83%
rename from lib/LavaPlayerJar-0.0.1-jar-with-dependencies.jar
rename to lib/LavaPlayerJar-1.3.50-jar-with-dependencies.jar
index 3a4e0ea..86753e0 100644
Binary files a/lib/LavaPlayerJar-0.0.1-jar-with-dependencies.jar and b/lib/LavaPlayerJar-1.3.50-jar-with-dependencies.jar differ
diff --git a/src/commands/general/CommandBeansShow.java b/src/commands/general/CommandBeansShow.java
index 3b0d6fc..36c7b82 100644
--- a/src/commands/general/CommandBeansShow.java
+++ b/src/commands/general/CommandBeansShow.java
@@ -1,7 +1,9 @@
package commands.general;
import java.awt.Font;
+import java.awt.FontMetrics;
import java.awt.Graphics;
+import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@@ -64,8 +66,6 @@ public class CommandBeansShow extends Command
long calcBean = beans;
- System.out.println("BEANS: " + beans);
-
long thousands = beans / 1000;
calcBean = beans % 1000;
long hundreds = (calcBean / 100);
@@ -76,6 +76,8 @@ public class CommandBeansShow extends Command
BufferedImage beanImage = new BufferedImage(baseWidth, baseHeight, BufferedImage.TYPE_INT_ARGB);
Graphics beanGraphics = beanImage.getGraphics();
+ Rectangle rect = new Rectangle(0, 0, baseWidth, baseHeight);
+ beanGraphics.drawImage(imageBase,0,0,null);
for(int i = 0; i < ones; i++)
{
@@ -115,9 +117,22 @@ public class CommandBeansShow extends Command
}
Font beanFont = new Font("font", Font.BOLD, 45);
beanGraphics.setFont(beanFont);
- beanGraphics.drawString("YOU GOT " + beans + " BEANS", 0, baseHeight / 2);
+ drawCenteredString(beanGraphics, "YOU HAVE", rect, beanFont, .25);
+ drawCenteredString(beanGraphics, "" + beans, rect, beanFont, .5);
+ drawCenteredString(beanGraphics, "BEANS!", rect, beanFont, .75);
+
ImageIO.write(beanImage, "PNG", new File("beanImage.png"));
return new File("beanImage.png");
}
+
+ private void drawCenteredString(Graphics beanGraphics, String text, Rectangle rect, Font font, double segment)
+ {
+ FontMetrics metrics = beanGraphics.getFontMetrics(font);
+
+ int x = rect.x + (rect.width - metrics.stringWidth(text)) / 2;
+ int y = (int)(rect.y + ((rect.height - metrics.getHeight()) * segment) + metrics.getAscent());
+
+ beanGraphics.drawString(text, x, y);
+ }
}
diff --git a/src/commands/general/CommandE6.java b/src/commands/general/CommandE6.java
index cfd5551..7338d0d 100644
--- a/src/commands/general/CommandE6.java
+++ b/src/commands/general/CommandE6.java
@@ -26,7 +26,7 @@ public class CommandE6 extends Command
{
if(guild.contentRating == KittyRating.Filtered)
{
- image = searcher.getE6(input.args + " rating:safe");
+ image = searcher.getE6(input.args + " rating:safe", "");
try
{
response = image.output();
@@ -58,7 +58,7 @@ public class CommandE6 extends Command
{
try
{
- response = searcher.getE6(input.args).output();
+ response = searcher.getE6(input.args, "").output();
res.send(response);
}
catch(Exception e)
diff --git a/src/commands/general/CommandGetSauce.java b/src/commands/general/CommandGetSauce.java
index ae4e703..cb26a2c 100644
--- a/src/commands/general/CommandGetSauce.java
+++ b/src/commands/general/CommandGetSauce.java
@@ -23,7 +23,13 @@ public class CommandGetSauce extends Command
@Override
public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
{
- res.send(sauce.getSauce(input.args).output());
-
+ try
+ {
+ res.send(sauce.getSauce(input.args).output());
+ }
+ catch(Exception e)
+ {
+ res.send("Image not found");
+ }
}
}
\ No newline at end of file
diff --git a/src/commands/guildrole/SubCommandWipeRoles.java b/src/commands/guildrole/SubCommandWipeRoles.java
new file mode 100644
index 0000000..bfa1243
--- /dev/null
+++ b/src/commands/guildrole/SubCommandWipeRoles.java
@@ -0,0 +1,21 @@
+package commands.guildrole;
+
+import core.SubCommand;
+import core.SubCommandFormattable;
+import dataStructures.KittyChannel;
+import dataStructures.KittyGuild;
+import dataStructures.KittyRating;
+import dataStructures.KittyRole;
+import dataStructures.KittyUser;
+import dataStructures.UserInput;
+
+public class SubCommandWipeRoles extends SubCommand
+{
+ public SubCommandWipeRoles(KittyRole level, KittyRating rating) { super(level, rating); }
+
+ @Override
+ public SubCommandFormattable OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input)
+ {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/src/dataStructures/KittyGuild.java b/src/dataStructures/KittyGuild.java
index 6e18606..ebef5a9 100644
--- a/src/dataStructures/KittyGuild.java
+++ b/src/dataStructures/KittyGuild.java
@@ -44,7 +44,8 @@ public class KittyGuild extends DatabaseTrackedObject
}
// Default content for a guild
- public KittyGuild(String uniqueID, AdminControl adminControl, ArrayList emoji, AudioUtils audio, HashMap channels)
+ public KittyGuild(String uniqueID, AdminControl adminControl, ArrayList emoji,
+ AudioUtils audio, HashMap channels)
{
super(uniqueID);
@@ -63,7 +64,8 @@ public class KittyGuild extends DatabaseTrackedObject
}
// Explicit constructor
- public KittyGuild(String commandIndicator, KittyRating contentRating, KittyUser guildOwner, String uniqueID, AudioUtils audio, HashMap channels)
+ public KittyGuild(String commandIndicator, KittyRating contentRating, KittyUser guildOwner,
+ String uniqueID, AudioUtils audio, HashMap channels)
{
super(uniqueID);
this.uniqueID = uniqueID;
diff --git a/src/network/NetworkDerpi.java b/src/network/NetworkDerpi.java
index b0451b2..30c0e72 100644
--- a/src/network/NetworkDerpi.java
+++ b/src/network/NetworkDerpi.java
@@ -7,7 +7,7 @@ import utils.*;
public class NetworkDerpi
{
- private final String mainURL = "https://derpibooru.org/search.json?q=";
+ private final String mainURL = "https://derpibooru.org/api/v1/json/search/images?q=";
private static final Gson jsonParser_ = new Gson();
private class DerpiResponseObject
@@ -24,10 +24,20 @@ public class NetworkDerpi
public GenericImage getDerpi(String query)
{
+ String res;
GenericImage image = new GenericImage(" ", " ", " ");
query = query.trim();
query = query.replace(" ", ",");
- String res = HTTPUtils.sendGETRequest(mainURL + query + "&random_image=1&key=" + Ref.derpiKey);
+ System.out.println(mainURL + query + "&sf=random&key=" + Ref.derpiKey);
+ if(query.startsWith("ID:"))
+ {
+ res = HTTPUtils.sendGETRequest("https://derpibooru.org/api/v1/json/images/" + query.substring(3));
+ }
+ else
+ {
+ res = HTTPUtils.sendGETRequest(mainURL + query + "&sf=random&key=" + Ref.derpiKey);
+ }
+ System.out.println(res);
if(res != null)
{
InitialRequest obj;
@@ -43,7 +53,6 @@ public class NetworkDerpi
if(res != null)
{
-
String res2 = HTTPUtils.sendGETRequest("https://derpibooru.org/" + obj.id + ".json");
image.editPostURL("https://derpibooru.org/" + obj.id);
DerpiResponseObject imageObj = jsonParser_.fromJson(res2, DerpiResponseObject.class);
diff --git a/src/network/NetworkE6.java b/src/network/NetworkE6.java
index 5042555..1134dab 100644
--- a/src/network/NetworkE6.java
+++ b/src/network/NetworkE6.java
@@ -79,7 +79,7 @@ public class NetworkE6
// Static methods //
////////////////////
// Requests a specific image, then returns a few.
- public GenericImage getE6(String input)
+ public GenericImage getE6(String input, String sauceNaoDependant)
{
GenericImage image = new GenericImage("","","");
boolean blacklisted;
@@ -92,7 +92,6 @@ public class NetworkE6
// tag by default. User-provided tags, therefore, will override it.
// If order:score is provided, that will be honored over order:random.
String res = HTTPUtils.sendGETRequest(API_ROOT + "tags=order:random%20" + input + "&limit=" + maxSearchResults_);
- System.out.println("LOOK HERE: " + res);
if(res != null)
{
@@ -108,7 +107,6 @@ public class NetworkE6
{
for(int i = 0; i < imageObj.posts.length; ++i)
{
- System.out.println(imageObj.posts.length);
String [] TagsList = imageObj.posts[i].tags.general;
blacklisted = false;
for(int j = 0; j < blacklist.length; j++)
@@ -159,12 +157,27 @@ public class NetworkE6
else
{
source = source.substring(source.indexOf("/") + 2);
- source = source.substring(0, source.indexOf('.'));
+ source = "[" + source.substring(0, source.indexOf('.')) + "]";
+ if(source.equals("[pbs]"))
+ {
+ source = "[twitter-cdn]";
+ }
}
sources += " [" + source + "](" + imageObj.posts[i].sources[k] + ") ";
}
}
- image.editDescriptionText("Score: " + imageObj.posts[i].score.total + "\n**Source:**" + sources);
+ if(sources.equals(""))
+ {
+ sources = " Source not listed";
+ }
+ if(sauceNaoDependant.equals(""))
+ {
+ image.editDescriptionText("Score: " + imageObj.posts[i].score.total + "\n**Source:**" + sources);
+ }
+ else
+ {
+ image.editDescriptionText(sauceNaoDependant + "\nScore: " + imageObj.posts[i].score.total + "\n**Source:**" + sources);
+ }
}
else
{
@@ -183,14 +196,17 @@ public class NetworkE6
}
else
{
- descTags = imageObj.posts[i].tags.general.toString();
+ for(int o = 0; o < imageObj.posts[i].tags.general.length - 1; o++)
+ {
+ descTags += imageObj.posts[i].tags.general[o] + ", ";
+ }
+ descTags += imageObj.posts[i].tags.general[imageObj.posts[i].tags.general.length-1] + "";
+
image.editFooterText("[Tags] " + descTags);
}
if(image.output().authorText != null)
{
- System.out.println(image);
- System.out.println(image.toString());
return image;
}
}
diff --git a/src/network/NetworkSauceNAO.java b/src/network/NetworkSauceNAO.java
index 8e136f6..71ac22b 100644
--- a/src/network/NetworkSauceNAO.java
+++ b/src/network/NetworkSauceNAO.java
@@ -21,6 +21,12 @@ public class NetworkSauceNAO
private class SauceNAOResult
{
SauceNAOData data;
+ SauceNAOHeader header;
+ }
+
+ private class SauceNAOHeader
+ {
+ double similarity;
}
private class SauceNAOData
@@ -30,21 +36,21 @@ public class NetworkSauceNAO
public GenericImage getSauce(String input)
{
+ double similarity;
input = input.trim();
input = input.replace("+", "%2B");
input = input.replace(" ", "%20");
String res = HTTPUtils.sendGETRequest(API_ROOT + input);
-
SauceNAOResponseObject sauce = jsonParser_.fromJson(res, SauceNAOResponseObject.class);
String sauceUrl = sauce.results.get(0).data.ext_urls[0];
+ similarity = sauce.results.get(0).header.similarity;
if(sauceUrl.startsWith("https://e621.net/post/show/"))
{
- return e6Sauce.getE6("id:" + sauceUrl.substring(27));
+ return e6Sauce.getE6("id:" + sauceUrl.substring(27), "Confidence: " + similarity + "%");
}
GenericImage unknown = new GenericImage("", "","");
return unknown;
-// return sauce.results.get(0).data.ext_urls[0];
}
}
diff --git a/src/network/NetworkYoutube.java b/src/network/NetworkYoutube.java
index 8bb0f76..4a5ee6b 100644
--- a/src/network/NetworkYoutube.java
+++ b/src/network/NetworkYoutube.java
@@ -27,11 +27,11 @@ public class NetworkYoutube
public class YTInner
{
- TYID id;
+ YTID id;
YTSnippet snippet;
}
- public class TYID
+ public class YTID
{
String videoId;
}
@@ -48,8 +48,9 @@ public class NetworkYoutube
input = input.replace("+", "%2B");
input = input.replace(" ", "%20");
- String res = HTTPUtils.sendGETRequest(API_ROOT + input + "&order=viewCount&type=video&topicId=%2Fm%2F04rlf&videoDefinition=high&key=" + Ref.youtube);
+ String res = HTTPUtils.sendGETRequest(API_ROOT + input +
+ "&order=viewCount&type=video&topicId=%2Fm%2F04rlf&videoDefinition=high&key=" + Ref.youtube);
YTOuter videoObj = jsonParser_.fromJson(res, YTOuter.class);
return "https://www.youtube.com/watch?v=" + videoObj.items.get(0).id.videoId;
}
-}
+}
\ No newline at end of file