Browse Source

Ajout package et classe Actions

Martin Passard 7 years ago
parent
commit
e4a6d9e3f6
3 changed files with 107 additions and 1 deletions
  1. 28 0
      src/actions/Action.java
  2. 78 0
      src/actions/Info.java
  3. 1 1
      src/main/Main.java

+ 28 - 0
src/actions/Action.java

@@ -0,0 +1,28 @@
+package actions;
+
+import java.util.List;
+
+import main.Bot;
+
+public abstract class Action {
+
+	public List<String> keyWords;
+	public Bot bot;
+	
+	public abstract void react(String channel, String sender,
+			String login, String hostname, String message);
+	
+	
+	public boolean hasToReact(String s) {
+		String chaineLowerCase = s.toLowerCase();
+		for(String kw : keyWords) {
+			if(chaineLowerCase.contains(kw.toLowerCase())){
+				return true;
+			}
+		}
+		return false;
+		
+	}
+	
+
+}

+ 78 - 0
src/actions/Info.java

@@ -0,0 +1,78 @@
+package actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import data.CoveredAreas;
+import data.ISP;
+import data.ISPDAO;
+import main.Bot;
+import main.Cache;
+import verif_saisie.EntierPositifNonVide;
+
+public class Info extends Action {
+
+	public Info(Bot b) {
+		this.bot = b;
+		List<String> ar = new ArrayList<>();
+		ar.add("info");
+		this.keyWords = ar;
+	}
+
+	@Override
+	public void react(String channel, String sender, String login, String hostname, String message) {
+		String s = message.substring(message.indexOf(' ')+1);
+		ISPDAO idao = ISPDAO.getInstance();
+		if(!EntierPositifNonVide.verifie(s)) {			// Un mot après +info
+
+
+			if(s.equalsIgnoreCase("all")) {	          			  // +info all
+				Cache c = Cache.getInstance();
+				bot.sendMessage(channel, c.toStringIRC());
+				for(ISP i : c.getListe()) {
+					if(i.isFFDNMember()) {
+						bot.sendMessage(channel, i.toStringIRC());
+					}
+				}
+
+			}else if(s.equalsIgnoreCase("ffdn")) {				//+info ffdn
+				Cache c = Cache.getInstance();
+				bot.sendMessage(channel, c.toStringIRC());
+
+			}else {
+				Cache c = Cache.getInstance();
+				ISP i = c.getISPWithName(s);
+				if(i == null) {
+					bot.sendMessage(channel, "Recherche d'une zone "+s);
+					ISP j = c.getISPWithGeoZone(s);
+					if(j == null)
+						bot.sendMessage(channel, "Le FAI "+s+" est Inconnu, désolé. Et aucun FAI n'opère sur une sone dénomée "+s+" ...");
+					else {
+						bot.sendMessage(channel, "Un FAI opère sur la zone "+s+" : ");
+						bot.sendMessage(channel, j.toStringIRC());
+						List<CoveredAreas> cas = j.getCoveredAreas(s);
+						String technos = "";
+						for(CoveredAreas ca: cas) {
+							technos+=ca.getTechnos()+" ";
+						}
+						bot.sendMessage(channel, "Avec pour techno "+technos);
+					}
+				}else {
+					bot.sendMessage(channel, i.toStringIRC());
+				}
+			}
+
+		}else {											// Un nombre après +info
+
+			int  id = Integer.parseInt(message.substring(message.indexOf(' ')+1));
+			List<String> strings = idao.getISP(id).toStringIRC();
+			for(String response : strings) {
+				bot.sendMessage(channel,response);
+			}
+		}
+
+	}
+
+}
+
+

+ 1 - 1
src/main/Main.java

@@ -6,7 +6,7 @@ public class Main {
 
 
 	public static final String SERVER = "irc.geeknode.net";
 	public static final String SERVER = "irc.geeknode.net";
 	public static final int PORT = 6667;
 	public static final int PORT = 6667;
-	public static final String[] CHANNELS = { "#marmat", "#ffdn" };
+	public static final String[] CHANNELS = { "#marmat" };
 	public static final long TIMEOUT_BEFORE_RECONNECTING = 360;
 	public static final long TIMEOUT_BEFORE_RECONNECTING = 360;
 	public static final Cache cache = Cache.getInstance();
 	public static final Cache cache = Cache.getInstance();
 	public static int failures = 0;
 	public static int failures = 0;