Advertisement
Vaerys_Dawn

Such a mess

Oct 28th, 2017
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.84 KB | None | 0 0
  1. public static IMessage sendFileURL(String message, String imageURL, IChannel channel, boolean loadMessage) {
  2.         IMessage toDelete = null;
  3.         if (loadMessage) {
  4.             toDelete = sendMessage("`Loading...`", channel).get();
  5.         }
  6.         IMessage sentMessage = null;
  7.  
  8.         HttpURLConnection connection = null;
  9.         try {
  10.             connection = (HttpURLConnection) new URL(imageURL).openConnection();
  11.             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");
  12.             //setup for the stream
  13.  
  14.             InputStream stream = connection.getInputStream();
  15.             sentMessage = XRequestBuffer.request(() -> {
  16.                 try {
  17.                     //set up the file name
  18.                     URL url = new URL(imageURL);
  19.                     String filename = FilenameUtils.getName(url.getPath());
  20.                     if (filename.equalsIgnoreCase("giphy.gif")) {
  21.                         return sendMessage(message + " " + imageURL, channel).get();
  22.                     }
  23.                     //checks if url is valid
  24.                     if (!isImageLink(filename)) {
  25.                         return sendMessage(message + " " + imageURL, channel).get();
  26.                     }
  27.                     //sends message/files
  28.                     if (StringUtils.containsOnly(message, "\n") || (message == null) || message.equals("") && imageURL != null) {
  29.                         return channel.sendFile("", stream, filename);
  30.                     } else if (message != null && !message.isEmpty() && imageURL != null) {
  31.                         return channel.sendFile(removeMentions(message), false, stream, filename);
  32.                     } else {
  33.                         logger.debug("Error sending File to channel with id: " + channel.getLongID() + " on guild with id: " + channel.getGuild().getLongID() +
  34.                                 ".\n" + Constants.PREFIX_EDT_LOGGER_INDENT + "Reason: No file to send");
  35.                         return null;
  36.                     }
  37.                 } catch (DiscordException e) {
  38.                     if (e.getMessage().contains("CloudFlare")) {
  39.                         return sendFileURL(message, imageURL, channel, false);
  40.                     } else {
  41.                         sendStack(e);
  42.                         return null;
  43.                     }
  44.                 } catch (MalformedURLException e) {
  45.                     return sendMessage(message + " " + imageURL, channel).get();
  46.                 } catch (MissingPermissionsException e) {
  47.                     logger.debug("Error sending File to channel with id: " + channel.getLongID() + " on guild with id: " + channel.getGuild().getLongID() +
  48.                             ".\n" + Constants.PREFIX_EDT_LOGGER_INDENT + "Reason: Missing permissions.");
  49.                     return sendMessage(message + " <" + imageURL + ">", channel).get();
  50.                 }
  51.             }).get();
  52.             stream.close();
  53.         } catch (MalformedURLException e) {
  54.             sendStack(e);
  55.         } catch (SSLHandshakeException e) {
  56.             sendMessage("> Could not get image from website, invalid SSL certificate.", channel);
  57.         } catch (IOException e) {
  58.             try {
  59.                 if (connection != null) {
  60.                     int responseCode = connection.getResponseCode();
  61.                     sendMessage(message + " " + imageURL + " `FAILED TO EMBED - ERROR:" + responseCode + "`", channel).get();
  62.                 } else {
  63.                     Utility.sendStack(e);
  64.                 }
  65.             } catch (IOException e1) {
  66.                 e1.printStackTrace();
  67.             }
  68.         }
  69.         if (loadMessage && toDelete != null) {
  70.             deleteMessage(toDelete);
  71.         }
  72.         return sentMessage;
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement