From fe13b286dc4a66a9df98441d3623c8a65f3681a6 Mon Sep 17 00:00:00 2001 From: Sebastien Date: Mon, 10 Sep 2018 13:02:27 +0300 Subject: [PATCH] Add NoDev to reduce loading time on dev mode --- .../java/net/Broken/Commands/Over18/Ass.java | 3 +++ .../net/Broken/Commands/Over18/Boobs.java | 2 ++ .../java/net/Broken/Commands/Over18/Pipe.java | 2 ++ src/main/java/net/Broken/MainBot.java | 11 +++++++-- .../Broken/Tools/Command/CommandLoader.java | 23 +++++++++++++------ .../java/net/Broken/Tools/Command/Ignore.java | 14 +++++++++++ .../java/net/Broken/Tools/Command/NoDev.java | 14 +++++++++++ .../Tools/Command/NumberedCommande.java | 5 ++-- .../java/net/Broken/Tools/LimitChecker.java | 16 ++++++------- .../net/Broken/Tools/UserManager/Oauth.java | 4 ++++ 10 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 src/main/java/net/Broken/Tools/Command/Ignore.java create mode 100644 src/main/java/net/Broken/Tools/Command/NoDev.java create mode 100644 src/main/java/net/Broken/Tools/UserManager/Oauth.java diff --git a/src/main/java/net/Broken/Commands/Over18/Ass.java b/src/main/java/net/Broken/Commands/Over18/Ass.java index a18a407..0094beb 100644 --- a/src/main/java/net/Broken/Commands/Over18/Ass.java +++ b/src/main/java/net/Broken/Commands/Over18/Ass.java @@ -1,11 +1,14 @@ package net.Broken.Commands.Over18; +import net.Broken.Tools.Command.NoDev; import net.Broken.Tools.Command.NumberedCommande; import org.apache.logging.log4j.LogManager; /** * Ass command, return random picture from les400culs.com */ + +@NoDev() public class Ass extends NumberedCommande { public Ass() { diff --git a/src/main/java/net/Broken/Commands/Over18/Boobs.java b/src/main/java/net/Broken/Commands/Over18/Boobs.java index c5c080e..7cdd3c3 100644 --- a/src/main/java/net/Broken/Commands/Over18/Boobs.java +++ b/src/main/java/net/Broken/Commands/Over18/Boobs.java @@ -1,11 +1,13 @@ package net.Broken.Commands.Over18; +import net.Broken.Tools.Command.NoDev; import net.Broken.Tools.Command.NumberedCommande; import org.apache.logging.log4j.LogManager; /** * Boobs command, return random picture from lesaintdesseins.fr */ +@NoDev() public class Boobs extends NumberedCommande { public Boobs() { diff --git a/src/main/java/net/Broken/Commands/Over18/Pipe.java b/src/main/java/net/Broken/Commands/Over18/Pipe.java index ed02f64..83e1916 100644 --- a/src/main/java/net/Broken/Commands/Over18/Pipe.java +++ b/src/main/java/net/Broken/Commands/Over18/Pipe.java @@ -1,11 +1,13 @@ package net.Broken.Commands.Over18; +import net.Broken.Tools.Command.NoDev; import net.Broken.Tools.Command.NumberedCommande; import org.apache.logging.log4j.LogManager; /** * Ass command, return random picture from feelation.com */ +@NoDev() public class Pipe extends NumberedCommande { public Pipe() { super(LogManager.getLogger(), "http://feelation.com/","featured-img","img"); diff --git a/src/main/java/net/Broken/MainBot.java b/src/main/java/net/Broken/MainBot.java index 8b6fe25..a51a750 100644 --- a/src/main/java/net/Broken/MainBot.java +++ b/src/main/java/net/Broken/MainBot.java @@ -7,7 +7,9 @@ import net.Broken.Tools.MessageTimeOut; import net.Broken.Tools.PrivateMessage; import net.Broken.Tools.UserSpamUtils; import net.Broken.audio.Youtube.YoutubeTools; +import net.dv8tion.jda.core.AccountType; import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.JDABuilder; import net.dv8tion.jda.core.Permission; import net.dv8tion.jda.core.entities.ChannelType; import net.dv8tion.jda.core.entities.Member; @@ -40,6 +42,7 @@ public class MainBot { public static HashMap spamUtils = new HashMap<>(); public static JDA jda; public static boolean ready = false; + public static boolean dev = false; @@ -56,7 +59,7 @@ public class MainBot { logger.info("--------------Starting Bot-------------"); logger.info("======================================="); - boolean dev = false; + String token = null; int i = 0; for(String aArg: args){ @@ -70,8 +73,10 @@ public class MainBot { i++; } token = System.getenv("TOKEN"); - jda = Init.initJda(token, dev); + + + ConfigurableApplicationContext ctx = SpringApplication.run(MainBot.class, args); if(jda == null) { System.exit(SpringApplication.exit(ctx, (ExitCodeGenerator) () -> { @@ -89,6 +94,8 @@ public class MainBot { + + } /** diff --git a/src/main/java/net/Broken/Tools/Command/CommandLoader.java b/src/main/java/net/Broken/Tools/Command/CommandLoader.java index e130fa8..af78596 100644 --- a/src/main/java/net/Broken/Tools/Command/CommandLoader.java +++ b/src/main/java/net/Broken/Tools/Command/CommandLoader.java @@ -20,7 +20,7 @@ public class CommandLoader { /** * Search all implemented Command interface class and add it to MainBot.commands HashMap */ - public static void load(){ + public static void load() { logger.info("Loading Command..."); Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage( "net.Broken.Commands", @@ -34,13 +34,22 @@ public class CommandLoader { String reference = command.getName(); String[] splited = reference.split("\\."); - String name = splited[splited.length-1].toLowerCase(); + String name = splited[splited.length - 1].toLowerCase(); + if (!command.isAnnotationPresent(Ignore.class)) { + logger.info("..." + name); - logger.info("..." + name); - try { - MainBot.commandes.put(name, command.newInstance()); - } catch (InstantiationException | IllegalAccessException e) { - logger.error("Failed to load " + name + "!"); + if (!command.isAnnotationPresent(NoDev.class) && MainBot.dev) { + try { + MainBot.commandes.put(name, command.newInstance()); + } catch (InstantiationException | IllegalAccessException e) { + logger.error("Failed to load " + name + "!"); + } + }else{ + logger.warn("Command disable in dev mode"); + } + + } else { + logger.trace("Ignored command: " + name); } } diff --git a/src/main/java/net/Broken/Tools/Command/Ignore.java b/src/main/java/net/Broken/Tools/Command/Ignore.java new file mode 100644 index 0000000..c46458b --- /dev/null +++ b/src/main/java/net/Broken/Tools/Command/Ignore.java @@ -0,0 +1,14 @@ +package net.Broken.Tools.Command; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Used to disable command on dev mode + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface Ignore { +} diff --git a/src/main/java/net/Broken/Tools/Command/NoDev.java b/src/main/java/net/Broken/Tools/Command/NoDev.java new file mode 100644 index 0000000..263c266 --- /dev/null +++ b/src/main/java/net/Broken/Tools/Command/NoDev.java @@ -0,0 +1,14 @@ +package net.Broken.Tools.Command; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Used to disable command on dev mode + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface NoDev { +} diff --git a/src/main/java/net/Broken/Tools/Command/NumberedCommande.java b/src/main/java/net/Broken/Tools/Command/NumberedCommande.java index 35ed4ec..fa8fac5 100644 --- a/src/main/java/net/Broken/Tools/Command/NumberedCommande.java +++ b/src/main/java/net/Broken/Tools/Command/NumberedCommande.java @@ -13,6 +13,7 @@ import java.net.URL; /** * Abstact class used for all command that need to find the max number of page on a web site. */ +@Ignore public abstract class NumberedCommande implements Commande{ private Logger logger = LogManager.getLogger(); private int minNumber = 1; @@ -35,9 +36,9 @@ public abstract class NumberedCommande implements Commande{ this.divClass = divClass; this.htmlType = htmlType; try { - logger.info("Checking max..."); + logger.debug("Checking max..."); maxNumber = LimitChecker.doYourJob(baseURL, minNumber); - logger.info("New limit is "+maxNumber); + logger.info("Limit is "+maxNumber); } catch (IOException e) { logger.catching(e); } diff --git a/src/main/java/net/Broken/Tools/LimitChecker.java b/src/main/java/net/Broken/Tools/LimitChecker.java index f341403..7d20055 100644 --- a/src/main/java/net/Broken/Tools/LimitChecker.java +++ b/src/main/java/net/Broken/Tools/LimitChecker.java @@ -34,13 +34,13 @@ public class LimitChecker { huc.setRequestMethod ("GET"); huc.connect (); result = huc.getResponseCode(); - logger.debug("URL: "+u.toString()+" Result: "+result); + logger.trace("URL: "+u.toString()+" Result: "+result); if(result!=404) number += 500; } number-=400; result = -1; - logger.debug("First pass: "+number); + logger.trace("First pass: "+number); while(result != 404 ) { u = new URL( baseURL+number+"-2/"); @@ -48,13 +48,13 @@ public class LimitChecker { huc.setRequestMethod ("GET"); huc.connect (); result = huc.getResponseCode(); - logger.debug("URL: "+u.toString()+" Result: "+result); + logger.trace("URL: "+u.toString()+" Result: "+result); if(result!=404) number += 100; } number-=90; result = -1; - logger.debug("Second pass: "+number); + logger.trace("Second pass: "+number); while(result != 404 ) { u = new URL( baseURL+number+"-2/"); @@ -62,13 +62,13 @@ public class LimitChecker { huc.setRequestMethod ("GET"); huc.connect (); result = huc.getResponseCode(); - logger.debug("URL: "+u.toString()+" Result: "+result); + logger.trace("URL: "+u.toString()+" Result: "+result); if(result!=404) number += 10; } number-=9; result = -1; - logger.debug("Third pass: "+number); + logger.trace("Third pass: "+number); while(result != 404 ) { u = new URL( baseURL+number+"-2/"); @@ -76,12 +76,12 @@ public class LimitChecker { huc.setRequestMethod ("GET"); huc.connect (); result = huc.getResponseCode(); - logger.debug("URL: "+u.toString()+" Result: "+result); + logger.trace("URL: "+u.toString()+" Result: "+result); if(result!=404) number += 1; } number-=1; - logger.debug("Final pass: "+number); + logger.trace("Final pass: "+number); return number; diff --git a/src/main/java/net/Broken/Tools/UserManager/Oauth.java b/src/main/java/net/Broken/Tools/UserManager/Oauth.java new file mode 100644 index 0000000..1509b3f --- /dev/null +++ b/src/main/java/net/Broken/Tools/UserManager/Oauth.java @@ -0,0 +1,4 @@ +package net.Broken.Tools.UserManager; + +public class Oauth { +}