123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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) {
- super(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();
- Bot ib = (Bot)bot;
- if(!EntierPositifNonVide.verifie(s)) { // Un mot après +info
- if(s.equalsIgnoreCase("all")) { // +info all
- Cache c = Cache.getInstance();
- ib.sendMessage(channel, c.toStringIRC());
- for(ISP i : c.getListe()) {
- if(i.isFFDNMember()) {
- ib.sendMessage(channel, i.toStringIRC());
- }
- }
- }else if(s.equalsIgnoreCase("ffdn")) { //+info ffdn
- Cache c = Cache.getInstance();
- ib.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+" : ");
- ib.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 {
- ib.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);
- }
- }
- }
- @Override
- public String help() {
- return " suivi du nom d'un FAI ou de son numero. Dans le cas d'un nom, il va le chercher dans le Cache. Dans le cas d'un numéro, il fait la requète directement dans db.ffdn.org. Exemples: \"+info 2\" ou \"+info fdn\" ";
- }
- }
|