diff --git a/pom.xml b/pom.xml
index d91d8c5..38d29dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,13 +12,13 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.0.RELEASE
+ 2.1.3.RELEASE
- 2.0.7
+ 2.0.8
1.8
diff --git a/src/main/java/ru/bvn13/jircbot/MainApp.java b/src/main/java/ru/bvn13/jircbot/MainApp.java
index b8fd5fe..0de3836 100644
--- a/src/main/java/ru/bvn13/jircbot/MainApp.java
+++ b/src/main/java/ru/bvn13/jircbot/MainApp.java
@@ -3,17 +3,11 @@ package ru.bvn13.jircbot;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.context.annotation.ComponentScan;
import ru.bvn13.jircbot.bot.JircBot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-@EnableAutoConfiguration//(exclude={DataSourceAutoConfiguration.class})
-@ComponentScan("ru.bvn13.jircbot")
public class MainApp {
private static final Logger logger = LoggerFactory.getLogger(MainApp.class);
diff --git a/src/main/java/ru/bvn13/jircbot/bot/JircBot.java b/src/main/java/ru/bvn13/jircbot/bot/JircBot.java
index ec27a42..de43032 100644
--- a/src/main/java/ru/bvn13/jircbot/bot/JircBot.java
+++ b/src/main/java/ru/bvn13/jircbot/bot/JircBot.java
@@ -91,6 +91,9 @@ public class JircBot extends ListenerAdapter {
@Autowired
private GoogleSearchListener googleSearchListener;
+ @Autowired
+ private DuckDuckGoSearchListener duckDuckGoSearchListener;
+
@Autowired
private LoggerListener loggerListener;
@@ -159,7 +162,8 @@ public class JircBot extends ListenerAdapter {
.addListener(linkPreviewListener)
.addListener(helloOnJoinListener)
.addListener(grammarCorrectorListener)
- .addListener(googleSearchListener)
+ //.addListener(googleSearchListener)
+ .addListener(duckDuckGoSearchListener)
.addListener(loggerListener)
// not tested
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java b/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java
index f11deaf..45888f9 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/AdminListener.java
@@ -36,6 +36,8 @@ public class AdminListener extends ImprovedListenerAdapter {
@Override
public void onJoin(JoinEvent event) throws Exception {
+ super.onJoin(event);
+
if (event.getChannel().getName().startsWith("#")) {
if (event.getUser().getNick().equals(event.getBot().getNick())) {
event.getBot().sendRaw().rawLineNow("MODE " + event.getBot().getUserBot().getNick() + " +B");
@@ -52,6 +54,8 @@ public class AdminListener extends ImprovedListenerAdapter {
@Override
public void onMessage(MessageEvent event) throws Exception {
+ super.onMessage(event);
+
Config config = getBotConfig(event);
if (config == null) {
return;
@@ -110,6 +114,8 @@ public class AdminListener extends ImprovedListenerAdapter {
@Override
public void onPrivateMessage(PrivateMessageEvent event) throws Exception {
+ super.onPrivateMessage(event);
+
Config config = getBotConfig(event);
if (config == null) {
return;
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java b/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java
index 79a343a..17441ea 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/AutoRejoinListener.java
@@ -27,6 +27,8 @@ public class AutoRejoinListener extends ImprovedListenerAdapter {
@Override
public void onKick(KickEvent event) throws Exception {
+ super.onKick(event);
+
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()).getAutoRejoinEnabled()) {
return;
}
@@ -42,6 +44,8 @@ public class AutoRejoinListener extends ImprovedListenerAdapter {
@Override
public void onJoin(JoinEvent event) throws Exception {
+ super.onJoin(event);
+
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()).getAutoRejoinEnabled()) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java b/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java
index 02159e4..0193cff 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/BashOrgListener.java
@@ -32,12 +32,13 @@ public class BashOrgListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), getChannelName(event)).getBashOrgEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
@@ -57,7 +58,7 @@ public class BashOrgListener extends ImprovedListenerAdapter {
private String getDataFromConnection(HttpURLConnection con) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "windows-1251"));
String inputLine;
- StringBuffer response = new StringBuffer();
+ StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java b/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java
index 31a3201..e1d3ca6 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/DeferredMessagesListener.java
@@ -36,12 +36,13 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), getChannelName(event)).getDeferredMessagesEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
@@ -102,7 +103,9 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
@Override
public void onJoin(JoinEvent event) throws Exception {
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ super.onJoin(event);
+
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java b/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java
new file mode 100644
index 0000000..bd20d5c
--- /dev/null
+++ b/src/main/java/ru/bvn13/jircbot/listeners/DuckDuckGoSearchListener.java
@@ -0,0 +1,80 @@
+package ru.bvn13.jircbot.listeners;
+
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.pircbotx.hooks.events.MessageEvent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
+import ru.bvn13.jircbot.bot.JircBot;
+import ru.bvn13.jircbot.database.services.ChannelSettingsService;
+import ru.bvn13.jircbot.services.InternetAccessor;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class DuckDuckGoSearchListener extends ImprovedListenerAdapter {
+
+ private static final String COMMAND = "?s";
+
+ @Autowired
+ private InternetAccessor internetAccessor;
+
+ @Autowired
+ private ChannelSettingsService channelSettingsService;
+
+
+ @Override
+ public void onMessage(MessageEvent event) throws Exception {
+ super.onMessage(event);
+
+ if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), this.getChannelName(event)).getGoogleSearchEnabled()) {
+ return;
+ }
+
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
+ return;
+ }
+
+ if (!event.getMessage().startsWith(COMMAND)) {
+ return;
+ }
+
+ String message = event.getMessage().replace(COMMAND, "").trim();
+
+ String result = search(message);
+
+ event.respond(result);
+ }
+
+ private String search(String phrase) throws Exception {
+ String encodedPhrase = URLEncoder.encode(phrase.replaceAll(" ", "+"), "utf-8");
+ //String link = "https://duckduckgo.com/?q="+encodedPhrase;
+ //String queryPage = internetAccessor.retrieveContentByLink(link);
+
+ String link = "https://duckduckgo.com/lite/";
+ Map data = new HashMap<>();
+ data.put("q", phrase);
+
+ String queryPage = internetAccessor.sendPost(link, data);
+
+ Document doc = Jsoup.parse(queryPage);
+
+ Element linkElement = doc.select("a.result-link").first();
+ if (linkElement != null) {
+ String linkUrl = linkElement.attr("href");
+ Element descrElement = doc.select(".result-snippet").first();
+ String description = descrElement.text();
+ return String.format("%s / %s", URLDecoder.decode(linkUrl, "utf-8"), description);
+ } else {
+ return "not found";
+ }
+
+ }
+}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java
index d9fd71a..87f90aa 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/GoogleDoodleListener.java
@@ -25,7 +25,9 @@ public class GoogleDoodleListener extends ListenerAdapter {
@Override
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ super.onGenericMessage(event);
+
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java
index 2652a1a..fc3e68a 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/GoogleSearchListener.java
@@ -36,11 +36,13 @@ public class GoogleSearchListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
+
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), this.getChannelName(event)).getGoogleSearchEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java b/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java
index 9c299e8..524665d 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/GrammarCorrectorListener.java
@@ -38,11 +38,13 @@ public class GrammarCorrectorListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
+
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), this.getChannelName(event)).getGrammarCorrectionEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/HelloOnJoinListener.java b/src/main/java/ru/bvn13/jircbot/listeners/HelloOnJoinListener.java
index e6f3ac0..5133832 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/HelloOnJoinListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/HelloOnJoinListener.java
@@ -22,13 +22,15 @@ public class HelloOnJoinListener extends ImprovedListenerAdapter {
@Override
public void onJoin(final JoinEvent event) throws Exception {
+ super.onJoin(event);
+
ChannelSettings channelSettings = channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), getChannelName(event));
if (!channelSettings.getHelloOnJoinEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java b/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java
index 6e6488d..56c5560 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/LinkPreviewListener.java
@@ -41,11 +41,13 @@ public class LinkPreviewListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
+
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), getChannelName(event)).getLinkPreviewEnabled()) {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/LoggerListener.java b/src/main/java/ru/bvn13/jircbot/listeners/LoggerListener.java
index 2365958..941f208 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/LoggerListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/LoggerListener.java
@@ -48,6 +48,8 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onJoin(JoinEvent event) throws Exception {
+ super.onJoin(event);
+
if (!isEnabled(event)) return;
synchronized (onlineUsers) {
@@ -67,6 +69,8 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onPart(PartEvent event) throws Exception {
+ super.onPart(event);
+
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), "User " + event.getUser().getNick() + " quit (" + event.getReason() + ")");
synchronized (onlineUsers) {
@@ -81,6 +85,8 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onQuit(QuitEvent event) throws Exception {
+ super.onQuit(event);
+
List channels = new ArrayList<>();
synchronized (onlineUsers) {
for (String channelName : onlineUsers.keySet()) {
@@ -97,6 +103,8 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onKick(KickEvent event) throws Exception {
+ super.onKick(event);
+
if (!isEnabled(event)) return;
if (onlineUsers.containsKey(event.getChannel().getName())) {
@@ -107,12 +115,16 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onMessage(MessageEvent event) throws Exception {
+ super.onMessage(event);
+
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), event.getUser().getNick(), event.getMessage());
}
@Override
public void onNickChange(NickChangeEvent event) throws Exception {
+ super.onNickChange(event);
+
List channels = new ArrayList<>();
for (String channelName : onlineUsers.keySet()) {
Set users = onlineUsers.get(channelName);
@@ -127,24 +139,32 @@ public class LoggerListener extends ImprovedListenerAdapter {
@Override
public void onNotice(NoticeEvent event) throws Exception {
+ super.onNotice(event);
+
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), event.getMessage());
}
@Override
public void onTopic(TopicEvent event) throws Exception {
+ super.onTopic(event);
+
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), ""+event.getUser().getNick()+" set topic: "+event.getTopic());
}
@Override
public void onAction(ActionEvent event) throws Exception {
+ super.onAction(event);
+
if (!isEnabled(event)) return;
log(event.getBot().getServerHostname(), event.getChannel().getName(), "*"+event.getUser().getNick()+" "+event.getAction());
}
@Override
public void onOutput(OutputEvent event) throws Exception {
+ super.onOutput(event);
+
if (!isEnabled(JircBot.extractServer(event.getBot().getServerHostname()), event.getLineParsed().get(1))) return;
switch (event.getLineParsed().get(0)) {
case "PRIVMSG" :
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java
index 2a8001c..faec5a9 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/PingPongListener.java
@@ -12,8 +12,9 @@ public class PingPongListener extends ListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java
index b2a137a..7f0de55 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/RegexCheckerListener.java
@@ -27,6 +27,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter {
@Override
public void onMessage(final MessageEvent event) throws Exception {
+ super.onMessage(event);
//TODO: rework with FSM
@@ -34,7 +35,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java b/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java
index 9f86f7a..c434fc3 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/StatisticsListener.java
@@ -32,6 +32,7 @@ public class StatisticsListener extends ImprovedListenerAdapter {
@Override
public void onMessage(MessageEvent event) throws Exception {
+ super.onMessage(event);
if (!event.getMessage().startsWith(COMMAND)) {
return;
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/YandexSearchListener.java b/src/main/java/ru/bvn13/jircbot/listeners/YandexSearchListener.java
index 5cc568b..af14a0c 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/YandexSearchListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/YandexSearchListener.java
@@ -28,8 +28,9 @@ public class YandexSearchListener extends ListenerAdapter {
@Override
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
+ super.onGenericMessage(event);
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceEngine.java b/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceEngine.java
index a2df5b4..d187568 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceEngine.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceEngine.java
@@ -15,7 +15,7 @@ public class AdviceEngine {
private static final String urlAdvice = "http://fucking-great-advice.ru/api/random";
public static String getAdvice() throws Exception {
- StringBuffer content = new StringBuffer();
+ StringBuilder content = new StringBuilder();
try {
URL url = new URL(urlAdvice);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceListener.java b/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceListener.java
index 439e73e..6c0956d 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/advices/AdviceListener.java
@@ -38,7 +38,7 @@ public class AdviceListener extends ImprovedListenerAdapter {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/calculator/CalculatorListener.java b/src/main/java/ru/bvn13/jircbot/listeners/calculator/CalculatorListener.java
index bd5776a..eb388c0 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/calculator/CalculatorListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/calculator/CalculatorListener.java
@@ -27,7 +27,7 @@ public class CalculatorListener extends ImprovedListenerAdapter {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizEngine.java b/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizEngine.java
index 02cfc6d..20c2409 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizEngine.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizEngine.java
@@ -22,7 +22,7 @@ public class QuizEngine {
private String getDataFromConnection(HttpsURLConnection con) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
- StringBuffer response = new StringBuffer();
+ StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
diff --git a/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizListener.java b/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizListener.java
index 774fe4e..f34a186 100644
--- a/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizListener.java
+++ b/src/main/java/ru/bvn13/jircbot/listeners/quiz/QuizListener.java
@@ -31,7 +31,7 @@ public class QuizListener extends ImprovedListenerAdapter {
return;
}
- if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
+ if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
return;
}
diff --git a/src/main/java/ru/bvn13/jircbot/services/InternetAccessor.java b/src/main/java/ru/bvn13/jircbot/services/InternetAccessor.java
index 26317bb..5d1cc65 100644
--- a/src/main/java/ru/bvn13/jircbot/services/InternetAccessor.java
+++ b/src/main/java/ru/bvn13/jircbot/services/InternetAccessor.java
@@ -1,14 +1,17 @@
package ru.bvn13.jircbot.services;
import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
+import java.io.InputStream;
import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLDecoder;
+import java.io.OutputStream;
+import java.net.*;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.stream.Collectors;
/**
* Created by bvn13 on 06.02.2018.
@@ -38,7 +41,7 @@ public class InternetAccessor {
private String getLastUrl_http(String link) {
String url = ""+link;
- StringBuffer content = new StringBuffer();
+ StringBuilder content = new StringBuilder();
URL resourceUrl, base, next;
HttpURLConnection conn;
String location = link;
@@ -84,7 +87,7 @@ public class InternetAccessor {
private String getLastUrl_https(String link) {
String url = ""+link;
- StringBuffer content = new StringBuffer();
+ StringBuilder content = new StringBuilder();
URL resourceUrl, base, next;
HttpsURLConnection conn;
String location = link;
@@ -130,7 +133,7 @@ public class InternetAccessor {
private String retrieveContentByLinkWithEncoding_http(String link, String encoding) {
String url = ""+link;
- StringBuffer content = new StringBuffer();
+ StringBuilder content = new StringBuilder();
URL resourceUrl, base, next;
HttpURLConnection conn;
String location = null;
@@ -186,7 +189,7 @@ public class InternetAccessor {
private String retrieveContentByLinkWithEncoding_https(String link, String encoding) {
String url = ""+link;
- StringBuffer content = new StringBuffer();
+ StringBuilder content = new StringBuilder();
URL resourceUrl, base, next;
HttpsURLConnection conn;
String location = null;
@@ -240,4 +243,49 @@ public class InternetAccessor {
return "";
}
+ public String sendPost(String link, Map data) throws Exception {
+ URL url = new URL(link);
+ URLConnection con = url.openConnection();
+ HttpURLConnection http = (HttpURLConnection)con;
+ http.setRequestMethod("POST"); // PUT is another valid option
+ http.setDoOutput(true);
+
+ data.put("kl", "us-en");
+
+ http.setRequestProperty("user-agent", "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36");
+ http.setRequestProperty("origin", "https://duckduckgo.com");
+ http.setRequestProperty("referer", "https://duckduckgo.com/");
+
+ StringJoiner sj = new StringJoiner("&");
+ for(Map.Entry entry : data.entrySet()) {
+ sj.add(URLEncoder.encode(entry.getKey(), "UTF-8") + "=" + URLEncoder.encode(entry.getValue(), "UTF-8"));
+ }
+ byte[] out = sj.toString().getBytes(StandardCharsets.UTF_8);
+ int length = out.length;
+
+ http.setFixedLengthStreamingMode(length);
+ http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ http.connect();
+ try(OutputStream os = http.getOutputStream()) {
+ os.write(out);
+ }
+
+ int responseCode = http.getResponseCode();
+ if (responseCode >= 200 && responseCode < 400) {
+
+ StringBuilder answer = new StringBuilder();
+ BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream(), "UTF-8"));
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ answer.append(inputLine);
+ }
+ in.close();
+
+ http.disconnect();
+ return answer.toString();
+ } else {
+ return http.getResponseMessage();
+ }
+ }
+
}
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index 9afdc74..2775dea 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -15,7 +15,8 @@
-
+
+