From 9e4d18ee0d090690789b0848ff07268f53fcd25b Mon Sep 17 00:00:00 2001 From: "Vyacheslav N. Boyko" Date: Thu, 16 Nov 2017 17:19:46 +0300 Subject: [PATCH] changed auto channel join. --- .gitignore | 4 +++- config.json | 2 +- src/main/java/ru/bvn13/jircbot/bot/JircBot.java | 7 ++++--- .../jircbot/config/JircBotConfiguration.java | 17 ++++++++++++++++- .../jircbot/listeners/CalculatorListener.java | 2 +- .../jircbot/listeners/GoogleDoodleListener.java | 2 +- .../jircbot/listeners/GoogleSearchListener.java | 2 +- .../jircbot/listeners/PingPongListener.java | 2 +- .../jircbot/listeners/RegexCheckerListener.java | 2 +- .../jircbot/listeners/UrlRetrieverListener.java | 15 ++++++++++----- .../java/ru/bvn13/jircbot/model/Config.java | 4 +++- 11 files changed, 42 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 0d9dd97..217e145 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,6 @@ build/** build/* -google-search.txt \ No newline at end of file +google-search.txt +yandex-search.txt + diff --git a/config.json b/config.json index 343b2df..fbbae54 100644 --- a/config.json +++ b/config.json @@ -5,7 +5,7 @@ "enabled" : true, "server" : "irc.freenode.net", "port" : 6667, - "channelName" : "#voidforum", + "channelsNames" : ["#voidforum", "#lor"], "botName" : "jircbot" } ], diff --git a/src/main/java/ru/bvn13/jircbot/bot/JircBot.java b/src/main/java/ru/bvn13/jircbot/bot/JircBot.java index 26cbde2..3dcf962 100644 --- a/src/main/java/ru/bvn13/jircbot/bot/JircBot.java +++ b/src/main/java/ru/bvn13/jircbot/bot/JircBot.java @@ -50,18 +50,19 @@ public class JircBot extends ListenerAdapter { List servers = new ArrayList<>(); servers.add(new Configuration.ServerEntry(c.getServer(), c.getPort())); this.bots.put( - String.format("%s/%s", c.getServer(), c.getChannelName()), + String.format("%s/%s", c.getServer(), "1"), //c.getChannelName()), new PircBotX(templateConfig .setName(c.getBotName()) .addListener(new PingPongListener()) .addListener(new CalculatorListener()) //This class is a listener, so add it to the bots known listeners .addListener(new GoogleDoodleListener(this.config)) - .addListener(new GoogleSearchListener(this.config)) + //.addListener(new GoogleSearchListener(this.config)) .addListener(new UrlRetrieverListener()) .addListener(new RegexCheckerListener()) .setServers(servers) .setAutoReconnect(true) - .addAutoJoinChannel(c.getChannelName()) //Join the official #pircbotx channel + //.addAutoJoinChannel(c.getChannelName()) //Join the official #pircbotx channel + .addAutoJoinChannels(c.getChannelsNames()) .buildForServer(c.getServer()) ) ); diff --git a/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java b/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java index 6594d9c..c0f6d99 100644 --- a/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java +++ b/src/main/java/ru/bvn13/jircbot/config/JircBotConfiguration.java @@ -84,7 +84,22 @@ public class JircBotConfiguration { config.setEnabled((Boolean)data.get("enabled")); config.setServer((String)data.get("server")); config.setPort(Integer.parseInt(data.get("port").toString())); - config.setChannelName((String)data.get("channelName")); + + List channelsNames = new ArrayList<>(); + + JSONArray channels = (JSONArray) data.get("channelsNames"); + + if (channels != null && channels.size() > 0) { + for (int i=0; i < channels.size(); i++) { + String name = (String) channels.get(i); + channelsNames.add(name); + } + } + + //channelsNames.add(name); + config.setChannelsNames(channelsNames); + + //config.setChannelName((String); config.setBotName((String)data.get("botName")); return config; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/CalculatorListener.java b/src/main/java/ru/bvn13/jircbot/listeners/CalculatorListener.java index 9495392..6f41773 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/CalculatorListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/CalculatorListener.java @@ -17,7 +17,7 @@ public class CalculatorListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java index a97715f..d9fd71a 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java @@ -25,7 +25,7 @@ public class GoogleDoodleListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java index 5c0a22c..0678d77 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java @@ -27,7 +27,7 @@ public class GoogleSearchListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java index fbd1c3c..16cb22a 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java @@ -10,7 +10,7 @@ public class PingPongListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java index b50deb2..666caa8 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java @@ -19,7 +19,7 @@ public class RegexCheckerListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } diff --git a/src/main/java/ru/bvn13/jircbot/listeners/UrlRetrieverListener.java b/src/main/java/ru/bvn13/jircbot/listeners/UrlRetrieverListener.java index 92f3925..a4f45e2 100644 --- a/src/main/java/ru/bvn13/jircbot/listeners/UrlRetrieverListener.java +++ b/src/main/java/ru/bvn13/jircbot/listeners/UrlRetrieverListener.java @@ -6,6 +6,7 @@ import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.pircbotx.hooks.ListenerAdapter; +import org.pircbotx.hooks.events.MessageEvent; import org.pircbotx.hooks.types.GenericMessageEvent; import java.util.ArrayList; @@ -37,7 +38,7 @@ public class UrlRetrieverListener extends ListenerAdapter { @Override public void onGenericMessage(final GenericMessageEvent event) throws Exception { - if (event.getUser().getNick().equals(event.getBot().getNick())) { + if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) { return; } @@ -49,9 +50,10 @@ public class UrlRetrieverListener extends ListenerAdapter { for (String url : foundUrls) { UrlInfo info = this.checkUrl(url); if (info.getError()) { - event.respondWith(info.getDescription()); + event.respond(info.getDescription()); } else { - event.respondWith(String.format("%s (%s)", info.getTitle(), info.getDescription())); + //event.respondWith(String.format("/notice %s %s", ((MessageEvent) event).getChannel().getName(), String.format("%s (%s)", info.getTitle(), info.getDescription()))); + event.getBot().sendIRC().notice(((MessageEvent) event).getChannel().getName(), String.format("%s (%s)", info.getTitle(), info.getDescription())); } } @@ -84,18 +86,21 @@ public class UrlRetrieverListener extends ListenerAdapter { ex.printStackTrace(); info.setError(true); info.setDescription("ERROR retrieving url: "+url); + return info; } try { Element title = doc.head().select("title").first(); info.setTitle(title.text()); } catch (Exception ex) { ex.printStackTrace(); - info.setError(true); + //info.setError(false); info.setDescription("ERROR retrieving title: "+url); } try { Element descr = doc.head().select("meta[name=\"description\"]").first(); - info.setDescription(descr.attr("content").trim()); + if (descr != null && descr.attr("content") != null) { + info.setDescription(descr.attr("content").trim()); + } } catch (Exception ex) { ex.printStackTrace(); } diff --git a/src/main/java/ru/bvn13/jircbot/model/Config.java b/src/main/java/ru/bvn13/jircbot/model/Config.java index 9ebc3e7..ab65716 100644 --- a/src/main/java/ru/bvn13/jircbot/model/Config.java +++ b/src/main/java/ru/bvn13/jircbot/model/Config.java @@ -3,6 +3,8 @@ package ru.bvn13.jircbot.model; import com.sun.istack.internal.NotNull; import lombok.Data; +import java.util.List; + @Data public class Config { @@ -18,6 +20,6 @@ public class Config { @NotNull private String botName; - private String channelName; + private List channelsNames; }