|
@@ -32,60 +32,20 @@ public class Bot extends PircBot {
|
|
|
|
|
|
public void onMessage(String channel, String sender,
|
|
public void onMessage(String channel, String sender,
|
|
String login, String hostname, String message) {
|
|
String login, String hostname, String message) {
|
|
- if (message.equalsIgnoreCase("time?")) {
|
|
|
|
- String time = new java.util.Date().toString();
|
|
|
|
- sendMessage(channel, sender + ": Nous sommes le " + time);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (message.length()>6 && message.substring(0, 5).equalsIgnoreCase("+info")) {
|
|
|
|
- info(channel,sender,login,hostname,message);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (message.length()>9 && message.substring(0, 8).equalsIgnoreCase("+contact")) {
|
|
|
|
- contact(channel,sender,login,hostname,message);
|
|
|
|
- }
|
|
|
|
|
|
|
|
-
|
|
|
|
- if (message.equalsIgnoreCase("+source") || message.equalsIgnoreCase("+code") || message.equalsIgnoreCase("+sources")) {
|
|
|
|
- sendMessage(channel, sender+": mes sources sont disponibles ici: https://code.ffdn.org/marmat8951/bot-irc2");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if (message.length()>= 6 && message.substring(0, 6).equals("+liste")) {
|
|
|
|
- list(channel, sender, login, hostname, message);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if(message.equals("+reload")) {
|
|
|
|
- Date now = new Date();
|
|
|
|
- Date lastCU = Cache.getInstance().getLastCacheUpdate();
|
|
|
|
- if(lastCU.getTime() < now.getTime()-Cache.TIME_BETWEEN_RELOADS ) { // Si la dernière MAJ date de + de 5 minutes
|
|
|
|
- sendMessage(channel, "Je lance le reload!");
|
|
|
|
- if(reload()) {
|
|
|
|
- sendMessage(channel, sender+": Le reload s'est bien passé.");
|
|
|
|
- }else {
|
|
|
|
- sendMessage(channel, sender+": Erreur au moment du reload.");
|
|
|
|
- }
|
|
|
|
- }else {
|
|
|
|
- Date nextAllowed = new Date(lastCU.getTime()+Cache.TIME_BETWEEN_RELOADS);
|
|
|
|
- sendMessage(channel, "Trop de reload, attendez un peu. Le dernier à eu lieu le "+lastCU.toString()+" Prochain autorisé le "+nextAllowed);
|
|
|
|
|
|
+ for(Action a:actions){
|
|
|
|
+ if(a.hasToReact(message)) {
|
|
|
|
+ a.react(channel, sender, login, hostname, message);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
//easter Egg
|
|
//easter Egg
|
|
String ea="Ehlo UneFede";
|
|
String ea="Ehlo UneFede";
|
|
if (message.contains("Ehlo UneFede")) {
|
|
if (message.contains("Ehlo UneFede")) {
|
|
sendMessage(channel, "Ehlo "+sender+"!!");
|
|
sendMessage(channel, "Ehlo "+sender+"!!");
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- private boolean reload() {
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- return c.reload();
|
|
|
|
- }
|
|
|
|
|
|
|
|
public void sendMessage(String channel, List<String> lines) {
|
|
public void sendMessage(String channel, List<String> lines) {
|
|
for(String s : lines) {
|
|
for(String s : lines) {
|
|
@@ -93,148 +53,4 @@ public class Bot extends PircBot {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- public void list(String channel, String sender, String login, String hostname, String message) {
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- List<ISP> listeFAI=null;
|
|
|
|
- try {
|
|
|
|
- listeFAI = c.getListe();
|
|
|
|
- }catch (Exception e) {
|
|
|
|
- try {
|
|
|
|
- listeFAI = idao.getISPs();
|
|
|
|
- } catch (Exception e1) {
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
- e1.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- List<String> messages = new LinkedList<>();
|
|
|
|
- messages.add("Les FAI surveillés par mes petits yeux mignons de bot sont:");
|
|
|
|
- String s="";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(message.indexOf(' ')!=-1 && message.substring(message.indexOf(" ")).contains("all")) {
|
|
|
|
- messages.add("=== Hors fédé: ===");
|
|
|
|
- for(ISP isp: listeFAI) {
|
|
|
|
- if(!isp.isFFDNMember()) {
|
|
|
|
- s+= isp.getBetterName()+", ";
|
|
|
|
- }
|
|
|
|
- if(s.length()>=AffichableSurIRC.MAX_CHARACTERS) {
|
|
|
|
- messages.add(s);
|
|
|
|
- s="";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- messages.add(s);
|
|
|
|
- s="";
|
|
|
|
- }
|
|
|
|
- messages.add("=== Dans la fédé: ===");
|
|
|
|
- for(ISP isp: listeFAI ) {
|
|
|
|
- if(isp.isFFDNMember()) {
|
|
|
|
-
|
|
|
|
- s+= isp.getBetterName();
|
|
|
|
-
|
|
|
|
- if(s.length()>=AffichableSurIRC.MAX_CHARACTERS) {
|
|
|
|
- messages.add(s);
|
|
|
|
- s="";
|
|
|
|
- }else {
|
|
|
|
- s+=", ";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- messages.add(s);
|
|
|
|
- sendMessage(channel, messages);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public void contact(String channel, String sender,
|
|
|
|
- String login, String hostname, String message) {
|
|
|
|
-
|
|
|
|
- String s = message.substring(message.indexOf(' ')+1);
|
|
|
|
- if(!EntierPositifNonVide.verifie(s)) { // +contact suivi d'un mot
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- ISP fai = c.getISPWithName(s);
|
|
|
|
- if(fai == null) {
|
|
|
|
- sendMessage(channel, "Aucun FAI "+s);
|
|
|
|
- }else {
|
|
|
|
- sendMessage(channel, fai.contact());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public void info(String channel, String sender,
|
|
|
|
- String login, String hostname, String message) {
|
|
|
|
-
|
|
|
|
- String s = message.substring(message.indexOf(' ')+1);
|
|
|
|
- if(!EntierPositifNonVide.verifie(s)) { // Un mot après +info
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- if(s.equalsIgnoreCase("all")) { // +info all
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- sendMessage(channel, c.toStringIRC());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- List<ISP> listeFAI;
|
|
|
|
- try {
|
|
|
|
- listeFAI = c.getListe();
|
|
|
|
- }catch (Exception e) {
|
|
|
|
- try {
|
|
|
|
- listeFAI = idao.getISPs();
|
|
|
|
- } catch (Exception e1) {
|
|
|
|
- // TODO Auto-generated catch block
|
|
|
|
- e1.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- for(ISP i : c.getListe()) {
|
|
|
|
- if(i.isFFDNMember()) {
|
|
|
|
- sendMessage(channel, i.toStringIRC());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }else if(s.equalsIgnoreCase("ffdn")) { //+info ffdn
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- sendMessage(channel, c.toStringIRC());
|
|
|
|
-
|
|
|
|
- }else {
|
|
|
|
- Cache c = Cache.getInstance();
|
|
|
|
- ISP i = c.getISPWithName(s);
|
|
|
|
- if(i == null) {
|
|
|
|
- sendMessage(channel, "Recherche d'une zone "+s);
|
|
|
|
- ISP j = c.getISPWithGeoZone(s);
|
|
|
|
- if(j == null)
|
|
|
|
- sendMessage(channel, "Le FAI "+s+" est Inconnu, désolé. Et aucun FAI n'opère sur une sone dénomée "+s+" ...");
|
|
|
|
- else {
|
|
|
|
- sendMessage(channel, "Un FAI opère sur la zone "+s+" : ");
|
|
|
|
- sendMessage(channel, j.toStringIRC());
|
|
|
|
- List<CoveredAreas> cas = j.getCoveredAreas(s);
|
|
|
|
- String technos = "";
|
|
|
|
- for(CoveredAreas ca: cas) {
|
|
|
|
- technos+=ca.getTechnos()+" ";
|
|
|
|
- }
|
|
|
|
- sendMessage(channel, "Avec pour techno "+technos);
|
|
|
|
- }
|
|
|
|
- }else {
|
|
|
|
- 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) {
|
|
|
|
- sendMessage(channel,response);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|