Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static IMessage sendFileURL(String message, String imageURL, IChannel channel, boolean loadMessage) {
- IMessage toDelete = null;
- if (loadMessage) {
- toDelete = sendMessage("`Loading...`", channel).get();
- }
- IMessage sentMessage = null;
- HttpURLConnection connection = null;
- try {
- connection = (HttpURLConnection) new URL(imageURL).openConnection();
- connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) " + "AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
- //setup for the stream
- InputStream stream = connection.getInputStream();
- sentMessage = XRequestBuffer.request(() -> {
- try {
- //set up the file name
- URL url = new URL(imageURL);
- String filename = FilenameUtils.getName(url.getPath());
- if (filename.equalsIgnoreCase("giphy.gif")) {
- return sendMessage(message + " " + imageURL, channel).get();
- }
- //checks if url is valid
- if (!isImageLink(filename)) {
- return sendMessage(message + " " + imageURL, channel).get();
- }
- //sends message/files
- if (StringUtils.containsOnly(message, "\n") || (message == null) || message.equals("") && imageURL != null) {
- return channel.sendFile("", stream, filename);
- } else if (message != null && !message.isEmpty() && imageURL != null) {
- return channel.sendFile(removeMentions(message), false, stream, filename);
- } else {
- logger.debug("Error sending File to channel with id: " + channel.getLongID() + " on guild with id: " + channel.getGuild().getLongID() +
- ".\n" + Constants.PREFIX_EDT_LOGGER_INDENT + "Reason: No file to send");
- return null;
- }
- } catch (DiscordException e) {
- if (e.getMessage().contains("CloudFlare")) {
- return sendFileURL(message, imageURL, channel, false);
- } else {
- sendStack(e);
- return null;
- }
- } catch (MalformedURLException e) {
- return sendMessage(message + " " + imageURL, channel).get();
- } catch (MissingPermissionsException e) {
- logger.debug("Error sending File to channel with id: " + channel.getLongID() + " on guild with id: " + channel.getGuild().getLongID() +
- ".\n" + Constants.PREFIX_EDT_LOGGER_INDENT + "Reason: Missing permissions.");
- return sendMessage(message + " <" + imageURL + ">", channel).get();
- }
- }).get();
- stream.close();
- } catch (MalformedURLException e) {
- sendStack(e);
- } catch (SSLHandshakeException e) {
- sendMessage("> Could not get image from website, invalid SSL certificate.", channel);
- } catch (IOException e) {
- try {
- if (connection != null) {
- int responseCode = connection.getResponseCode();
- sendMessage(message + " " + imageURL + " `FAILED TO EMBED - ERROR:" + responseCode + "`", channel).get();
- } else {
- Utility.sendStack(e);
- }
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- if (loadMessage && toDelete != null) {
- deleteMessage(toDelete);
- }
- return sentMessage;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement