From 63e1d6c216074469d7e3e718f71148c0e2f04c46 Mon Sep 17 00:00:00 2001 From: Sebastien Date: Mon, 14 May 2018 09:28:16 +0200 Subject: [PATCH] Bypass Tumblr safe mode --- .../java/net/Broken/Commands/Over18/SM.java | 19 ++++---- .../net/Broken/Commands/Over18/Suicide.java | 43 +++++++++++++++++-- .../Broken/Tools/FindContentOnWebPage.java | 2 + .../java/net/Broken/Tools/Redirection.java | 2 + 4 files changed, 54 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/Broken/Commands/Over18/SM.java b/src/main/java/net/Broken/Commands/Over18/SM.java index fbaa75e..73d07c5 100644 --- a/src/main/java/net/Broken/Commands/Over18/SM.java +++ b/src/main/java/net/Broken/Commands/Over18/SM.java @@ -1,28 +1,31 @@ package net.Broken.Commands.Over18; import net.Broken.Commande; +import net.Broken.Tools.FindContentOnWebPage; import net.Broken.Tools.Redirection; import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.io.IOException; + /** * TODO Remove this */ public class SM implements Commande { Logger logger = LogManager.getLogger(); - public String HELP="T'es sérieux la?"; @Override public void action(String[] args, MessageReceivedEvent event) { Redirection redirect= new Redirection(); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: SM n'est plus disponible pour le moment. Pour plus d'info: https://lc.cx/cbSw :warning: ").queue(); -// try { -// event.getTextChannel().sendMessage(redirect.get("https://bonjourfetish.tumblr.com/random")).queue(); -// } catch (IOException e) { -// logger.warn("Erreur de redirection."); -// event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur de redirection (5 essais), Réessayez__**:warning: ").queue(); -// } + try { + String redirectUrl = redirect.get("https://bonjourfetish.tumblr.com/random"); + String img = FindContentOnWebPage.doYourJob(redirectUrl, "article-picture center", "img"); + event.getTextChannel().sendMessage(img).queue(); + } catch (IOException e) { + logger.warn("Erreur de redirection."); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur de redirection (5 essais), Réessayez__**:warning: ").queue(); + } } diff --git a/src/main/java/net/Broken/Commands/Over18/Suicide.java b/src/main/java/net/Broken/Commands/Over18/Suicide.java index 340d6cf..39cf711 100644 --- a/src/main/java/net/Broken/Commands/Over18/Suicide.java +++ b/src/main/java/net/Broken/Commands/Over18/Suicide.java @@ -2,26 +2,61 @@ package net.Broken.Commands.Over18; import net.Broken.Commande; import net.Broken.Tools.EmbedMessageUtils; +import net.Broken.Tools.FindContentOnWebPage; import net.Broken.Tools.Redirection; import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.IOException; public class Suicide implements Commande{ - private String redirectUrl = "https://suicidegirlsandhopefuls.tumblr.com/random"; + private Logger logger = LogManager.getLogger(); @Override public void action(String[] args, MessageReceivedEvent event) { Redirection redirection = new Redirection(); + + String base = "http://suicidegirls.tumblr.com"; + String redirectUrl = null; try { - event.getTextChannel().sendMessage(redirection.get(redirectUrl)).queue(); + + Boolean success = false; + int tryCount = 0; + while(!success && tryCount < 10 ){ + redirectUrl = redirection.get(base + "/random"); + + String img; + try{ + img = FindContentOnWebPage.doYourJob(redirectUrl, "post photo_nav_caption", "img"); + event.getTextChannel().sendMessage(img).queue(); + success = true; + + }catch (StringIndexOutOfBoundsException | IOException e){ + logger.debug("Photo_nav not found try photoset"); + + try { + String mid = FindContentOnWebPage.doYourJob(redirectUrl, "html_photoset", "iframe"); + img = FindContentOnWebPage.doYourJob(base + mid, "photoset_row", "img"); + event.getTextChannel().sendMessage(img).queue(); + success = true; + } catch (StringIndexOutOfBoundsException | IOException e1) { + logger.debug("Nothing found, assume it's a comment."); + } + + + } + tryCount ++; + } } catch (IOException e) { - LogManager.getLogger().catching(e); - event.getTextChannel().sendMessage(EmbedMessageUtils.getInternalError()).queue(); + logger.catching(e); } + + + + } @Override diff --git a/src/main/java/net/Broken/Tools/FindContentOnWebPage.java b/src/main/java/net/Broken/Tools/FindContentOnWebPage.java index 68f7446..a815426 100644 --- a/src/main/java/net/Broken/Tools/FindContentOnWebPage.java +++ b/src/main/java/net/Broken/Tools/FindContentOnWebPage.java @@ -16,6 +16,7 @@ public class FindContentOnWebPage { * @throws IOException */ public static String doYourJob(String url, String divClass, String htmlType) throws IOException { +// System.out.println(url); String source = getSourceUrl(url); int divIndex = source.indexOf(divClass); String sub = source.substring(divIndex); @@ -38,6 +39,7 @@ public class FindContentOnWebPage { public static String getSourceUrl(String url) throws IOException { URL urlC = new URL(url); URLConnection yc = urlC.openConnection(); + yc.setRequestProperty("User-Agent","Googlebot"); BufferedReader in = new BufferedReader(new InputStreamReader( yc.getInputStream(), "UTF-8")); String inputLine; diff --git a/src/main/java/net/Broken/Tools/Redirection.java b/src/main/java/net/Broken/Tools/Redirection.java index 23d30e7..f685135 100644 --- a/src/main/java/net/Broken/Tools/Redirection.java +++ b/src/main/java/net/Broken/Tools/Redirection.java @@ -22,7 +22,9 @@ public class Redirection { * @throws IOException */ public String get(String urlString) throws IOException { + System.setProperty("http.agent","Googlebot"); URLConnection con = new URL(urlString).openConnection(); + con.setRequestProperty("User-Agent","Googlebot"); //System.out.println( "orignal url: " + con.getURL() ); con.connect(); //System.out.println( "connected url: " + con.getURL() );