mirror of https://github.com/bvn13/JIrcBot.git
fixed saving into database. implemented storing channels settings into database
parent
497bfb07df
commit
20ca413778
41
jircbot.iml
41
jircbot.iml
|
@ -4,6 +4,15 @@
|
|||
<facet type="Spring" name="Spring">
|
||||
<configuration />
|
||||
</facet>
|
||||
<facet type="web" name="Web">
|
||||
<configuration>
|
||||
<webroots />
|
||||
<sourceRoots>
|
||||
<root url="file://$MODULE_DIR$/src/main/java" />
|
||||
<root url="file://$MODULE_DIR$/src/main/resources" />
|
||||
</sourceRoots>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
|
@ -23,8 +32,6 @@
|
|||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.9.RELEASE" level="project" />
|
||||
|
@ -33,6 +40,34 @@
|
|||
<orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.25" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.5.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.23" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.23" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.12.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.11.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.13.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.12.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.0.b2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.postgresql:postgresql:42.1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.objecthunter:exp4j:0.4.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jsoup:jsoup:1.11.2" level="project" />
|
||||
|
@ -52,7 +87,7 @@
|
|||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: ru.bvn13:fsm:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.16" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.20" level="project" />
|
||||
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
</component>
|
||||
|
|
49
pom.xml
49
pom.xml
|
@ -12,6 +12,15 @@
|
|||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
|
||||
<pircbotx.version>2.1</pircbotx.version>
|
||||
|
||||
<spring.framework.version>1.5.9.RELEASE</spring.framework.version>
|
||||
<spring.orm.version>4.3.13.RELEASE</spring.orm.version>
|
||||
<h2.version>1.4.196</h2.version>
|
||||
<hibernate.version>5.0.12.Final</hibernate.version>
|
||||
<sqlite.jdbc.version>3.21.0.1</sqlite.jdbc.version>
|
||||
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
|
@ -36,7 +45,7 @@
|
|||
<dependency>
|
||||
<groupId>org.pircbotx</groupId>
|
||||
<artifactId>pircbotx</artifactId>
|
||||
<version>2.1</version>
|
||||
<version>${pircbotx.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
@ -44,7 +53,7 @@
|
|||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
<version>1.5.9.RELEASE</version>
|
||||
<version>${spring.framework.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>org.springframework.boot</artifactId>
|
||||
|
@ -52,11 +61,37 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!--<dependency>
|
||||
|
||||
|
||||
|
||||
<!-- Dependencies for Hibernate and ORM -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-log4j2</artifactId>
|
||||
<version>1.5.9.RELEASE</version>
|
||||
</dependency>-->
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
<version>${spring.framework.version}</version>
|
||||
</dependency>
|
||||
<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>
|
||||
<artifactId>spring-orm</artifactId>
|
||||
<version>${spring.orm.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.1.1</version>
|
||||
</dependency>
|
||||
<!--org.postgresql:postgresql:42.1.1-->
|
||||
|
||||
|
||||
|
||||
<!--json-->
|
||||
|
@ -122,7 +157,7 @@
|
|||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.16.16</version>
|
||||
<version>1.16.20</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
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;
|
||||
|
@ -14,12 +16,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||
@ComponentScan("ru.bvn13.jircbot")
|
||||
public class MainApp implements CommandLineRunner {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MainApp.class);
|
||||
|
||||
@Autowired
|
||||
private JircBot bot;
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MainApp.class, args);
|
||||
System.out.println("==============> STARTING <==============");
|
||||
logger.info("==============> STARTING <==============");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,4 +13,8 @@ public class ImprovedListenerAdapter extends ListenerAdapter {
|
|||
event.getBot().sendIRC().notice(((MessageEvent) event).getChannel().getName(), str);
|
||||
}
|
||||
|
||||
protected String getChannelName(GenericEvent event) {
|
||||
return ((MessageEvent) event).getChannel().getName();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -22,6 +22,10 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
@Component
|
||||
|
@ -45,6 +49,9 @@ public class JircBot extends ListenerAdapter {
|
|||
}
|
||||
|
||||
|
||||
private ScheduledExecutorService executorService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private PingPongListener pingPongListener;
|
||||
@Autowired
|
||||
|
@ -68,8 +75,21 @@ public class JircBot extends ListenerAdapter {
|
|||
private HelloOnJoinListener helloOnJoinListener;
|
||||
|
||||
@PostConstruct
|
||||
public void postConstruct() {
|
||||
this.executorService = Executors.newSingleThreadScheduledExecutor();
|
||||
this.executorService.schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
start();
|
||||
}
|
||||
}, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
|
||||
public void start() {
|
||||
|
||||
logger.info(">>>>>>>>>>>>>>>>>>>> BOT STARTING <<<<<<<<<<<<<<<<<<<<");
|
||||
|
||||
//Setup this bot
|
||||
Configuration.Builder templateConfig = new Configuration.Builder()
|
||||
.setLogin("JIrcBot") //login part of hostmask, eg name:login@host
|
||||
|
@ -94,8 +114,8 @@ public class JircBot extends ListenerAdapter {
|
|||
.addListener(deferredMessagesListener)
|
||||
|
||||
// disabled yet
|
||||
//.addListener(linkPreviewListener)
|
||||
//.addListener(helloOnJoinListener)
|
||||
.addListener(linkPreviewListener)
|
||||
.addListener(helloOnJoinListener)
|
||||
|
||||
// not tested
|
||||
//.addListener(new GoogleDoodleListener(this.config))
|
||||
|
|
|
@ -3,45 +3,67 @@ package ru.bvn13.jircbot.database.entities;
|
|||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.UniqueConstraint;
|
||||
|
||||
/**
|
||||
* Created by bvn13 on 31.01.2018.
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "channel_settings", uniqueConstraints = {@UniqueConstraint(columnNames = {"channelName"}, name = "uniq_channel_name")})
|
||||
public class ChannelSettings extends BaseModel {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Column(nullable = false)
|
||||
private String channelName;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private String botName;
|
||||
@Column(nullable = false)
|
||||
private Boolean calculatorEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean pingPongEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean regexCheckerEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean calculatorEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean advicesEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean regexCheckerEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean quizEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean adviceEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean bashOrgEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean quizEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean autoRejoinEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean bashOrgEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean linkPreviewEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean autoRejoinEnabled;
|
||||
@Column(nullable = false)
|
||||
private Boolean helloOnJoinEnabled = false;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Column(nullable = false)
|
||||
private Boolean deferredMessagesEnabled = false;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package ru.bvn13.jircbot.database.repositories;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import ru.bvn13.jircbot.database.entities.ChannelSettings;
|
||||
|
||||
/**
|
||||
* Created by bvn13 on 01.02.2018.
|
||||
*/
|
||||
public interface ChannelSettingsRepository extends JpaRepository<ChannelSettings, Long> {
|
||||
ChannelSettings getFirstByChannelName(String channelName);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package ru.bvn13.jircbot.database.services;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.bvn13.jircbot.database.entities.ChannelSettings;
|
||||
import ru.bvn13.jircbot.database.repositories.ChannelSettingsRepository;
|
||||
|
||||
/**
|
||||
* Created by bvn13 on 01.02.2018.
|
||||
*/
|
||||
@Service
|
||||
public class ChannelSettingsService {
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsRepository channelSettingsRepository;
|
||||
|
||||
public ChannelSettings getChannelSettings(String channelName) {
|
||||
ChannelSettings settings = channelSettingsRepository.getFirstByChannelName(channelName);
|
||||
if (settings == null) {
|
||||
settings = new ChannelSettings();
|
||||
settings.setChannelName(channelName);
|
||||
channelSettingsRepository.save(settings);
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
|
||||
}
|
|
@ -23,11 +23,6 @@ public class DeferredMessageService {
|
|||
|
||||
public void saveDeferredMessage(String sender, String recipient, String message) {
|
||||
DeferredMessage msg = new DeferredMessage();
|
||||
msg.setId(1L);
|
||||
|
||||
msg.setCreatedAt(new Date());
|
||||
msg.setUpdatedAt(new Date());
|
||||
|
||||
msg.setSender(sender);
|
||||
msg.setRecipient(recipient);
|
||||
msg.setMessage(message);
|
||||
|
|
|
@ -5,8 +5,10 @@ import org.pircbotx.hooks.events.JoinEvent;
|
|||
import org.pircbotx.hooks.events.KickEvent;
|
||||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
import ru.bvn13.jircbot.listeners.advices.AdviceEngine;
|
||||
|
||||
/**
|
||||
|
@ -15,12 +17,19 @@ import ru.bvn13.jircbot.listeners.advices.AdviceEngine;
|
|||
@Component
|
||||
public class AutoRejoinListener extends ImprovedListenerAdapter {
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
private Boolean wasKicked = false;
|
||||
private String offender = "";
|
||||
|
||||
@Override
|
||||
public void onKick(KickEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(event.getChannel().getName()).getAutoRejoinEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
wasKicked = true;
|
||||
offender = event.getUser().getNick();
|
||||
|
@ -32,6 +41,10 @@ public class AutoRejoinListener extends ImprovedListenerAdapter {
|
|||
@Override
|
||||
public void onJoin(JoinEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(event.getChannel().getName()).getAutoRejoinEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (wasKicked) {
|
||||
wasKicked = false;
|
||||
this.sendNotice(event, ""+offender+", "+ AdviceEngine.getAdvice());
|
||||
|
|
|
@ -7,8 +7,10 @@ import org.jsoup.select.Elements;
|
|||
import org.pircbotx.hooks.ListenerAdapter;
|
||||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
@ -24,9 +26,16 @@ public class BashOrgListener extends ImprovedListenerAdapter {
|
|||
private static final String COMMAND = "?bash";
|
||||
private static final String USER_AGENT = "Mozilla/5.0";
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getBashOrgEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.entities.DeferredMessage;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
import ru.bvn13.jircbot.database.services.DeferredMessageService;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -21,6 +22,9 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
|
|||
|
||||
private static SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Autowired
|
||||
private DeferredMessageService deferredMessageService;
|
||||
|
||||
|
@ -28,11 +32,15 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
|
|||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getDeferredMessagesEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
//this.sendDeferredMessage(event);
|
||||
this.sendDeferredMessage(event);
|
||||
|
||||
if (!event.getMessage().startsWith(COMMAND)) {
|
||||
return;
|
||||
|
|
|
@ -3,8 +3,10 @@ package ru.bvn13.jircbot.listeners;
|
|||
import org.pircbotx.hooks.ListenerAdapter;
|
||||
import org.pircbotx.hooks.events.JoinEvent;
|
||||
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.database.services.ChannelSettingsService;
|
||||
|
||||
/**
|
||||
* Created by bvn13 on 25.01.2018.
|
||||
|
@ -12,9 +14,16 @@ import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
|||
@Component
|
||||
public class HelloOnJoinListener extends ImprovedListenerAdapter {
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onJoin(final JoinEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getHelloOnJoinEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -3,8 +3,10 @@ package ru.bvn13.jircbot.listeners;
|
|||
import org.pircbotx.hooks.ListenerAdapter;
|
||||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
|
@ -28,10 +30,16 @@ public class LinkPreviewListener extends ImprovedListenerAdapter {
|
|||
|
||||
private static final Pattern REGEX = Pattern.compile("(?i)(?:(?:https?|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?");
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getLinkPreviewEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,10 @@ import org.pircbotx.hooks.ListenerAdapter;
|
|||
import org.pircbotx.hooks.WaitForQueue;
|
||||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -12,15 +15,22 @@ import java.util.regex.Matcher;
|
|||
import java.util.regex.Pattern;
|
||||
|
||||
@Component
|
||||
public class RegexCheckerListener extends ListenerAdapter {
|
||||
public class RegexCheckerListener extends ImprovedListenerAdapter {
|
||||
|
||||
private static final String COMMAND = "?regex ";
|
||||
|
||||
private static final Map<String, Boolean> usersState = new HashMap<>();
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getRegexCheckerEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,10 @@ import org.pircbotx.hooks.ListenerAdapter;
|
|||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.events.NoticeEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
@ -20,14 +23,20 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
* Created by bvn13 on 23.01.2018.
|
||||
*/
|
||||
@Component
|
||||
public class AdviceListener extends ListenerAdapter {
|
||||
public class AdviceListener extends ImprovedListenerAdapter {
|
||||
|
||||
private static final String COMMAND = "?advice";
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getAdvicesEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,21 +2,30 @@ package ru.bvn13.jircbot.listeners.calculator;
|
|||
|
||||
import org.pircbotx.hooks.ListenerAdapter;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@Component
|
||||
public class CalculatorListener extends ListenerAdapter {
|
||||
public class CalculatorListener extends ImprovedListenerAdapter {
|
||||
|
||||
private Map<UUID, CalculatorDialog> dialogs = new HashMap<>();
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getCalculatorEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -3,8 +3,11 @@ package ru.bvn13.jircbot.listeners.quiz;
|
|||
import org.pircbotx.hooks.ListenerAdapter;
|
||||
import org.pircbotx.hooks.events.MessageEvent;
|
||||
import org.pircbotx.hooks.types.GenericMessageEvent;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.bvn13.fsm.Exceptions.FSMException;
|
||||
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
||||
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -13,14 +16,20 @@ import java.util.Map;
|
|||
* Created by bvn13 on 26.01.2018.
|
||||
*/
|
||||
@Component
|
||||
public class QuizListener extends ListenerAdapter {
|
||||
public class QuizListener extends ImprovedListenerAdapter {
|
||||
|
||||
private Map<String, QuizDialog> dialogs = new HashMap<>();
|
||||
|
||||
|
||||
@Autowired
|
||||
private ChannelSettingsService channelSettingsService;
|
||||
|
||||
@Override
|
||||
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
||||
|
||||
if (!channelSettingsService.getChannelSettings(getChannelName(event)).getQuizEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
|
||||
server:
|
||||
port: 8080
|
||||
address: localhost
|
||||
|
||||
name: jircbot
|
||||
|
||||
config: config.json
|
||||
|
@ -17,7 +13,7 @@ spring:
|
|||
hibernate:
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
hbm2ddl.auto: update
|
||||
show_sql: true
|
||||
show_sql: false
|
||||
use_sql_comments: true
|
||||
format_sql: true
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
<logger name="org.springframework" level="DEBUG"/>
|
||||
<logger name="org.pircbotx.PircBotX" level="DEBUG"/>
|
||||
|
||||
<logger name="org.springframework.core.env.PropertySourcesPropertyResolver" level="WARN"/>
|
||||
|
||||
<root level="WARN">
|
||||
<appender-ref ref="STDOUT" />
|
||||
</root>
|
||||
|
|
Loading…
Reference in New Issue