changed auto channel join.

pull/2/head
Vyacheslav N. Boyko 2017-11-16 17:19:46 +03:00
parent 70cf1f81ac
commit 9e4d18ee0d
11 changed files with 42 additions and 17 deletions

4
.gitignore vendored
View File

@ -43,4 +43,6 @@ build/**
build/*
google-search.txt
google-search.txt
yandex-search.txt

View File

@ -5,7 +5,7 @@
"enabled" : true,
"server" : "irc.freenode.net",
"port" : 6667,
"channelName" : "#voidforum",
"channelsNames" : ["#voidforum", "#lor"],
"botName" : "jircbot"
}
],

View File

@ -50,18 +50,19 @@ public class JircBot extends ListenerAdapter {
List<Configuration.ServerEntry> 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())
)
);

View File

@ -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<String> 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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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<String> channelsNames;
}