= Format updates and color iteration
This commit is contained in:
@@ -39,7 +39,7 @@ public class CommandBlurry extends Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
filename = ImageUtils.DownloadFromURL(input.args.split(" ")[0], ".png");
|
filename = ImageUtils.downloadFromURL(input.args.split(" ")[0], ".png");
|
||||||
preProcessed = new File(filename);
|
preProcessed = new File(filename);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
@@ -48,7 +48,7 @@ public class CommandBlurry extends Command
|
|||||||
if(input.mentions != null)
|
if(input.mentions != null)
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
filename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
filename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(filename == null)
|
if(filename == null)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class CommandCatch extends Command
|
|||||||
else
|
else
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
String catchFilename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
String catchFilename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(catchFilename == null)
|
if(catchFilename == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package commands;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
@@ -16,6 +17,8 @@ import dataStructures.KittyRole;
|
|||||||
import dataStructures.KittyUser;
|
import dataStructures.KittyUser;
|
||||||
import dataStructures.Response;
|
import dataStructures.Response;
|
||||||
import dataStructures.UserInput;
|
import dataStructures.UserInput;
|
||||||
|
import utils.GlobalLog;
|
||||||
|
import utils.ImageUtils;
|
||||||
|
|
||||||
public class CommandColor extends Command
|
public class CommandColor extends Command
|
||||||
{
|
{
|
||||||
@@ -27,26 +30,35 @@ public class CommandColor extends Command
|
|||||||
@Override
|
@Override
|
||||||
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
|
||||||
{
|
{
|
||||||
|
// Config
|
||||||
int sideLength = 50;
|
int sideLength = 50;
|
||||||
|
float r = 209.0f/255;
|
||||||
float r = 0;
|
float g = 74.0f/255;
|
||||||
float g = 0;
|
float b = 153.0f/255;
|
||||||
float b = 0;
|
|
||||||
float a = 1;
|
float a = 1;
|
||||||
Color parsed = new Color(r, g, b, a);
|
Color parsed = new Color(r, g, b, a);
|
||||||
|
|
||||||
|
GlobalLog.Log("1");
|
||||||
|
|
||||||
|
// Construct the image example file that we intend to display locally
|
||||||
BufferedImage img = new BufferedImage(sideLength, sideLength, BufferedImage.TYPE_4BYTE_ABGR);
|
BufferedImage img = new BufferedImage(sideLength, sideLength, BufferedImage.TYPE_4BYTE_ABGR);
|
||||||
Graphics2D graphics = img.createGraphics();
|
Graphics2D graphics = img.createGraphics();
|
||||||
graphics.setColor(parsed);
|
graphics.setColor(parsed);
|
||||||
graphics.fillRect(0, 0, sideLength, sideLength);
|
graphics.fillRect(0, 0, sideLength, sideLength);
|
||||||
graphics.dispose();
|
graphics.dispose();
|
||||||
|
GlobalLog.Log("2");
|
||||||
|
String tempFileName = ImageUtils.writeTempImageData(img, ".png");
|
||||||
|
File file = new File(tempFileName);
|
||||||
|
GlobalLog.Log("3");
|
||||||
KittyEmbed response = new KittyEmbed();
|
KittyEmbed response = new KittyEmbed();
|
||||||
|
response.title = "Color Name";
|
||||||
response.color = parsed;
|
response.color = parsed;
|
||||||
response.thumbnailURL = "attachment://test.png";
|
response.descriptionText = "`rgba` test\n`hex` test\n`hsv` test";
|
||||||
|
response.thumbnailURL = "attachment://" + tempFileName;
|
||||||
|
GlobalLog.Log("4");
|
||||||
res.CallEmbed(response);
|
res.CallEmbed(response);
|
||||||
//ImageIO.write(bufferedImage, "png", file);
|
ImageUtils.BlockingFileDelete(file);
|
||||||
|
GlobalLog.Log("5");
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class CommandPerish extends Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
filename = ImageUtils.DownloadFromURL(input.args.split(" ")[0], ".png");
|
filename = ImageUtils.downloadFromURL(input.args.split(" ")[0], ".png");
|
||||||
preProcessed = new File(filename);
|
preProcessed = new File(filename);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
@@ -54,7 +54,7 @@ public class CommandPerish extends Command
|
|||||||
if(input.mentions != null)
|
if(input.mentions != null)
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
filename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
filename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(filename == null)
|
if(filename == null)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class CommandStark extends Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
filename = ImageUtils.DownloadFromURL(input.args.split(" ")[0], ".png");
|
filename = ImageUtils.downloadFromURL(input.args.split(" ")[0], ".png");
|
||||||
preProcessed = new File(filename);
|
preProcessed = new File(filename);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
@@ -48,7 +48,7 @@ public class CommandStark extends Command
|
|||||||
if(input.mentions != null)
|
if(input.mentions != null)
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
filename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
filename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(filename == null)
|
if(filename == null)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class CommandTeey extends Command
|
|||||||
else
|
else
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
String yeeteeFilename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
String yeeteeFilename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(yeeteeFilename == null)
|
if(yeeteeFilename == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class CommandWolfram extends Command
|
|||||||
res.CallFile(pic, "png");
|
res.CallFile(pic, "png");
|
||||||
ImageUtils.BlockingFileDelete(pic);
|
ImageUtils.BlockingFileDelete(pic);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
res.Call(LocStrings.Stub("WolframError"));
|
res.Call(LocStrings.Stub("WolframError"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class CommandYeet extends Command
|
|||||||
else
|
else
|
||||||
person = input.mentions[0];
|
person = input.mentions[0];
|
||||||
|
|
||||||
String yeeteeFilename = ImageUtils.DownloadFromURL(person.avatarID, ".png");
|
String yeeteeFilename = ImageUtils.downloadFromURL(person.avatarID, ".png");
|
||||||
if(yeeteeFilename == null)
|
if(yeeteeFilename == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.io.File;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
import net.dv8tion.jda.core.JDA;
|
import net.dv8tion.jda.core.JDA;
|
||||||
|
import net.dv8tion.jda.core.MessageBuilder;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
import net.dv8tion.jda.core.events.message.guild.*;
|
import net.dv8tion.jda.core.events.message.guild.*;
|
||||||
import net.dv8tion.jda.core.EmbedBuilder;
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
@@ -51,12 +52,33 @@ public class Response
|
|||||||
embed.setAuthor(embedInfo.authorText, embedInfo.authorLink, embedInfo.authorImage);
|
embed.setAuthor(embedInfo.authorText, embedInfo.authorLink, embedInfo.authorImage);
|
||||||
|
|
||||||
if(embedInfo.imageURL != null)
|
if(embedInfo.imageURL != null)
|
||||||
embed.setImage(embedInfo.imageURL);
|
embed.setImage(embedInfo.imageURL);
|
||||||
|
|
||||||
if(embedInfo.thumbnailURL != null)
|
if(embedInfo.thumbnailURL != null && embedInfo.thumbnailURL.contains("attachment://"))
|
||||||
embed.setThumbnail(embedInfo.thumbnailURL);
|
{
|
||||||
|
// This is the case where you have a thumbnail image, but you want it to be a local file.
|
||||||
event.getChannel().sendMessage(embed.build()).queue();
|
// TODO: Make this more generic. Consider message builder for the entire thing.
|
||||||
|
String thumbPath = embedInfo.thumbnailURL;
|
||||||
|
String thumbName = thumbPath.replace("attachment://", "");
|
||||||
|
|
||||||
|
MessageBuilder message = new MessageBuilder();
|
||||||
|
embed.setThumbnail(thumbPath);
|
||||||
|
message.setEmbed(embed.build());
|
||||||
|
|
||||||
|
File thumbImage = new File(thumbName);
|
||||||
|
if(thumbImage.exists())
|
||||||
|
{
|
||||||
|
event.getChannel().sendFile(thumbImage, thumbName, message.build()).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(embedInfo.thumbnailURL != null)
|
||||||
|
embed.setThumbnail(embedInfo.thumbnailURL);
|
||||||
|
|
||||||
|
event.getChannel().sendMessage(embed.build());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Queues a standard text-based message response to the channel that issued the command.
|
// Queues a standard text-based message response to the channel that issued the command.
|
||||||
|
|||||||
@@ -5,19 +5,45 @@ import java.awt.image.BufferedImage;
|
|||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
public class ImageUtils
|
public class ImageUtils
|
||||||
{
|
{
|
||||||
private static Long uniqueID = 0l;
|
private static Long uniqueID = 0l;
|
||||||
|
|
||||||
|
public static String writeTempImageData(BufferedImage data, String extension)
|
||||||
|
{
|
||||||
|
String name = null;
|
||||||
|
synchronized(uniqueID)
|
||||||
|
{
|
||||||
|
name = "imagetempwriterutil_" + (uniqueID++) + extension;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File outputfile = new File(name);
|
||||||
|
ImageIO.write(data, extension, outputfile);
|
||||||
|
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
GlobalLog.Error(LogFilter.Util, "Exception in writeTempImageData: " + e.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Downloads the file at the url and assigns it a unique local string.
|
// Downloads the file at the url and assigns it a unique local string.
|
||||||
// The string (filename) is returned, and can be used. It will have to be
|
// The string (filename) is returned, and can be used. It will have to be
|
||||||
// deleted later. By assigning a unique name to the files, this is
|
// deleted later. By assigning a unique name to the files, this is
|
||||||
public static String DownloadFromURL(String URL, String extension)
|
public static String downloadFromURL(String URL, String extension)
|
||||||
{
|
{
|
||||||
String name = null;
|
String name = null;
|
||||||
synchronized(uniqueID)
|
synchronized(uniqueID)
|
||||||
@@ -51,6 +77,7 @@ public class ImageUtils
|
|||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
GlobalLog.Error(LogFilter.Util, "Exception in downloadFromURL: " + e.toString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user