mirror of https://github.com/bvn13/JIrcBot.git
commit
1f4bec7287
14
pom.xml
14
pom.xml
|
@ -6,19 +6,19 @@
|
|||
|
||||
<groupId>ru.bvn13</groupId>
|
||||
<artifactId>jircbot</artifactId>
|
||||
<version>2.0.8</version>
|
||||
<version>${bot.version}</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.0.6.RELEASE</version>
|
||||
<version>2.1.3.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
|
||||
<properties>
|
||||
<bot.version>2.0.7</bot.version>
|
||||
<bot.version>2.0.8</bot.version>
|
||||
|
||||
<java.version>1.8</java.version>
|
||||
|
||||
|
@ -74,10 +74,7 @@
|
|||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- Dependencies for Database, Hibernate and ORM -->
|
||||
<dependency>
|
||||
|
@ -87,10 +84,12 @@
|
|||
<dependency>
|
||||
<groupId>com.zaxxer</groupId>
|
||||
<artifactId>HikariCP</artifactId>
|
||||
<version>2.7.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-entitymanager</artifactId>
|
||||
<version>${hibernate.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
@ -111,6 +110,7 @@
|
|||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-spatial</artifactId>
|
||||
<version>5.1.0.Final</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -115,6 +115,8 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
|
|||
|
||||
@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");
|
||||
|
@ -129,6 +131,8 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
|
|||
|
||||
@Override
|
||||
public void onMessage(MessageEvent event) throws Exception {
|
||||
super.onMessage(event);
|
||||
|
||||
Config config = getBotConfig(event);
|
||||
if (config == null) {
|
||||
return;
|
||||
|
@ -187,6 +191,8 @@ public class AdminListener extends ImprovedListenerAdapter implements Descriptio
|
|||
@Override
|
||||
public void onPrivateMessage(PrivateMessageEvent event) throws Exception {
|
||||
|
||||
super.onPrivateMessage(event);
|
||||
|
||||
Config config = getBotConfig(event);
|
||||
if (config == null) {
|
||||
return;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -53,12 +53,13 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript
|
|||
|
||||
@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;
|
||||
}
|
||||
|
||||
|
@ -78,7 +79,7 @@ public class BashOrgListener extends ImprovedListenerAdapter implements Descript
|
|||
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);
|
||||
|
|
|
@ -72,12 +72,13 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements
|
|||
|
||||
@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;
|
||||
}
|
||||
|
||||
|
@ -144,7 +145,9 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter implements
|
|||
@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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String, String> 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";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,11 +60,13 @@ public class GoogleSearchListener extends ImprovedListenerAdapter implements Des
|
|||
@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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,13 +26,15 @@ public class HelloOnJoinListener extends ImprovedListenerAdapter implements Desc
|
|||
@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;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,11 +50,13 @@ public class LinkPreviewListener extends ImprovedListenerAdapter implements Desc
|
|||
@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;
|
||||
}
|
||||
|
||||
|
|
|
@ -63,6 +63,8 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@Override
|
||||
public void onJoin(JoinEvent event) throws Exception {
|
||||
super.onJoin(event);
|
||||
|
||||
if (!isEnabled(event)) return;
|
||||
|
||||
synchronized (onlineUsers) {
|
||||
|
@ -82,6 +84,8 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@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) {
|
||||
|
@ -96,6 +100,8 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@Override
|
||||
public void onQuit(QuitEvent event) throws Exception {
|
||||
super.onQuit(event);
|
||||
|
||||
List<String> channels = new ArrayList<>();
|
||||
synchronized (onlineUsers) {
|
||||
for (String channelName : onlineUsers.keySet()) {
|
||||
|
@ -112,6 +118,8 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@Override
|
||||
public void onKick(KickEvent event) throws Exception {
|
||||
super.onKick(event);
|
||||
|
||||
if (!isEnabled(event)) return;
|
||||
|
||||
if (onlineUsers.containsKey(event.getChannel().getName())) {
|
||||
|
@ -122,12 +130,16 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@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<String> channels = new ArrayList<>();
|
||||
for (String channelName : onlineUsers.keySet()) {
|
||||
Set<String> users = onlineUsers.get(channelName);
|
||||
|
@ -142,24 +154,32 @@ public class LoggerListener extends ImprovedListenerAdapter implements Descripti
|
|||
|
||||
@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" :
|
||||
|
|
|
@ -17,8 +17,9 @@ public class PingPongListener extends ListenerAdapter implements DescriptionProv
|
|||
|
||||
@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;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter implements Des
|
|||
|
||||
@Override
|
||||
public void onMessage(final MessageEvent event) throws Exception {
|
||||
super.onMessage(event);
|
||||
|
||||
//TODO: rework with FSM
|
||||
|
||||
|
@ -56,7 +57,7 @@ public class RegexCheckerListener extends ImprovedListenerAdapter implements Des
|
|||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
if (event.getUser() != null && event.getBot().getUserBot().getNick().equals(event.getUser().getNick())) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@ public class StatisticsListener extends ImprovedListenerAdapter implements Descr
|
|||
|
||||
@Override
|
||||
public void onMessage(MessageEvent event) throws Exception {
|
||||
super.onMessage(event);
|
||||
|
||||
if (!event.getMessage().startsWith(COMMAND)) {
|
||||
return;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String, String> 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<String,String> 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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
|
||||
<logger name="ru.bvn13.jircbot" level="WARN"/>
|
||||
<logger name="ru.bvn13.jircbot.listeners" level="ALL"/>
|
||||
<logger name="ru.bvn13.jircbot.listeners.calculator" level="ALL"/>
|
||||
<!--<logger name="ru.bvn13.jircbot.listeners.calculator" level="ALL"/>-->
|
||||
<!--<logger name="ru.bvn13.jircbot.listeners.DuckDuckGoSearchListener" level="ALL"/>-->
|
||||
<logger name="org.pircbotx" level="WARN"/>
|
||||
|
||||
<!--<logger name="org.hibernate.SQL" level="WARN"/>-->
|
||||
|
|
Loading…
Reference in New Issue