Reformatted code.

This commit is contained in:
2022-07-05 15:14:52 -04:00
parent 03549bf5b5
commit 9383f53372
11 changed files with 291 additions and 291 deletions
@@ -32,11 +32,11 @@ public final class Crabstero {
private static final ScheduledExecutorService workerPool = Executors.newScheduledThreadPool(4, new CrabsteroThreadFactory());
private Crabstero(){
private Crabstero() {
throw new UnsupportedOperationException();
}
public static void main(final String[] arguments){
public static void main(final String[] arguments) {
logger.info(Javacord.USER_AGENT);
final DiscordApiBuilder builder = new DiscordApiBuilder();
@@ -63,15 +63,15 @@ public final class Crabstero {
api.setMessageCacheSize(0, 1);
}
public static Future<?> submitTask(final Runnable task){
public static Future<?> submitTask(final Runnable task) {
return workerPool.submit(task);
}
public static ScheduledFuture<?> scheduleTask(final Runnable task, final long delay, final TimeUnit unit){
public static ScheduledFuture<?> scheduleTask(final Runnable task, final long delay, final TimeUnit unit) {
return workerPool.schedule(task, delay, unit);
}
public static Jedis getJedis(){
public static Jedis getJedis() {
return jedisPool.getResource();
}
}
@@ -14,7 +14,7 @@ public final class CrabsteroThreadFactory implements ThreadFactory {
private static int threadNumber = 1;
@Override
public Thread newThread(final Runnable runnable){
public Thread newThread(final Runnable runnable) {
final Thread thread = new Thread(runnable);
thread.setName("Crabstero Worker Thread - " + threadNumber++);
@@ -20,20 +20,20 @@ import java.util.Optional;
public final class MessageCreate implements MessageCreateListener {
@Override
public void onMessageCreate(final MessageCreateEvent event){
public void onMessageCreate(final MessageCreateEvent event) {
final MessageAuthor author = event.getMessageAuthor();
final Optional<ServerTextChannel> serverTextChannel = event.getChannel().asServerTextChannel();
if (!serverTextChannel.isPresent() || author.isBotUser() || author.isWebhook() || author.isYourself()){
if (!serverTextChannel.isPresent() || author.isBotUser() || author.isWebhook() || author.isYourself()) {
return;
}
final Message message = event.getMessage();
if (message.getMentionedUsers().contains(event.getApi().getYourself())){
if (message.getMentionedUsers().contains(event.getApi().getYourself())) {
MarkovChainMessages.replyToMessage(message);
return;
}
if (message.getType() == MessageType.NORMAL){
if (message.getType() == MessageType.NORMAL) {
MarkovChainMessages.ingestMessage(message);
}
}
@@ -15,8 +15,8 @@ import org.javacord.api.listener.server.role.RoleChangePermissionsListener;
public final class RoleChangePermissions implements RoleChangePermissionsListener {
@Override
public void onRoleChangePermissions(final RoleChangePermissionsEvent event){
if (event.getRole().hasUser(event.getApi().getYourself())){
public void onRoleChangePermissions(final RoleChangePermissionsEvent event) {
if (event.getRole().hasUser(event.getApi().getYourself())) {
event.getServer().getTextChannels().forEach((channel) -> {
Crabstero.submitTask(new ChannelHistoryIngestionTask(channel));
});
@@ -15,7 +15,7 @@ import org.javacord.api.listener.server.ServerBecomesAvailableListener;
public final class ServerBecomesAvailable implements ServerBecomesAvailableListener {
@Override
public void onServerBecomesAvailable(final ServerBecomesAvailableEvent event){
public void onServerBecomesAvailable(final ServerBecomesAvailableEvent event) {
event.getServer().getTextChannels().forEach((channel) -> {
Crabstero.submitTask(new ChannelHistoryIngestionTask(channel));
});
@@ -15,7 +15,7 @@ import org.javacord.api.listener.channel.server.ServerChannelChangeOverwrittenPe
public final class ServerChannelChangeOverwrittenPermissions implements ServerChannelChangeOverwrittenPermissionsListener {
@Override
public void onServerChannelChangeOverwrittenPermissions(final ServerChannelChangeOverwrittenPermissionsEvent event){
public void onServerChannelChangeOverwrittenPermissions(final ServerChannelChangeOverwrittenPermissionsEvent event) {
event.getChannel().asServerTextChannel().ifPresent((channel) -> {
Crabstero.submitTask(new ChannelHistoryIngestionTask(channel));
});
@@ -24,7 +24,7 @@ public final class ServerJoin implements ServerJoinListener {
private static final Logger logger = LoggerFactory.getLogger(ServerJoin.class);
@Override
public void onServerJoin(final ServerJoinEvent event){
public void onServerJoin(final ServerJoinEvent event) {
final Server server = event.getServer();
logger.info("Joined new server! (Name: \"" + server.getName() + "\" | ID: " + server.getIdAsString() + ")");
@@ -15,8 +15,8 @@ import org.javacord.api.listener.server.role.UserRoleAddListener;
public final class UserRoleAdd implements UserRoleAddListener {
@Override
public void onUserRoleAdd(final UserRoleAddEvent event){
if (event.getUser().isYourself()){
public void onUserRoleAdd(final UserRoleAddEvent event) {
if (event.getUser().isYourself()) {
event.getServer().getTextChannels().forEach((channel) -> {
Crabstero.submitTask(new ChannelHistoryIngestionTask(channel));
});
@@ -27,20 +27,20 @@ public final class ChannelHistoryIngestionTask implements Runnable {
private final ServerTextChannel channel;
public ChannelHistoryIngestionTask(final ServerTextChannel channel){
public ChannelHistoryIngestionTask(final ServerTextChannel channel) {
this.channel = channel;
}
@Override
public void run(){
public void run() {
try {
if (!this.channel.canYouReadMessageHistory()){
if (!this.channel.canYouReadMessageHistory()) {
logger.warn("Unable to ingest text channel history due to lacking permissions. Ignoring. (Name: \"" + this.channel.getName() + "\" | ID: " + this.channel.getIdAsString() + " | Server ID: " + this.channel.getServer().getIdAsString() + ")");
return;
}
try (final Jedis jedis = Crabstero.getJedis()){
if (jedis.lrange(INGESTED_CHANNELS_KEY, 0, -1).contains(this.channel.getIdAsString())){
try (final Jedis jedis = Crabstero.getJedis()) {
if (jedis.lrange(INGESTED_CHANNELS_KEY, 0, -1).contains(this.channel.getIdAsString())) {
return;
} else {
final Pipeline pipeline = jedis.pipelined();
@@ -49,20 +49,20 @@ public final class ChannelHistoryIngestionTask implements Runnable {
}
}
try (final Stream<Message> history = this.channel.getMessagesAsStream()){
try (final Stream<Message> history = this.channel.getMessagesAsStream()) {
final Iterator<Message> iterator = history.iterator();
int i = 0;
while (iterator.hasNext()){
while (iterator.hasNext()) {
i++;
MarkovChainMessages.ingestMessage(iterator.next());
if (i == Crabstero.maximumMessagesPerChannel){
if (i == Crabstero.maximumMessagesPerChannel) {
break;
}
}
logger.info("Ingestion of text channel history complete. " + i + " messages ingested. (Name: \"" + this.channel.getName() + "\" | ID: " + this.channel.getIdAsString() + " | Server ID: " + this.channel.getServer().getIdAsString() + ")");
}
} catch (final Throwable exception){
} catch (final Throwable exception) {
logger.error("An error occured while ingesting text channel history! (Name: \"" + this.channel.getName() + "\" | ID: " + this.channel.getIdAsString() + " | Server ID: " + this.channel.getServer().getIdAsString() + ")", exception);
}
}
@@ -22,12 +22,12 @@ public final class MarkovChain {
private final long id;
public MarkovChain(final long id){
public MarkovChain(final long id) {
this.id = id;
}
private static final boolean isCompleteSentence(final String sentence){
if (sentence.isEmpty()){
private static final boolean isCompleteSentence(final String sentence) {
if (sentence.isEmpty()) {
return false;
}
@@ -35,29 +35,29 @@ public final class MarkovChain {
return (lastChar == DEFAULT_SENTENCE_END || lastChar == '.' || lastChar == '!' || lastChar == '?');
}
public void ingest(String paragraph){
if (!isCompleteSentence(paragraph)){
public void ingest(String paragraph) {
if (!isCompleteSentence(paragraph)) {
paragraph += DEFAULT_SENTENCE_END;
}
final String[] sentences = paragraph.trim().replaceAll(" +", " ").replaceAll("\n", " ").split("(?<=[.!?]) ");
for (int i = 0; i < sentences.length; i++){
for (int i = 0; i < sentences.length; i++) {
this.ingestSentence(sentences[i]);
}
}
private void ingestSentence(String sentence){
if (!isCompleteSentence(sentence)){
private void ingestSentence(String sentence) {
if (!isCompleteSentence(sentence)) {
sentence += DEFAULT_SENTENCE_END;
}
String[] words = sentence.trim().replaceAll(" +", " ").split(" ");
try (final Jedis jedis = Crabstero.getJedis()){
try (final Jedis jedis = Crabstero.getJedis()) {
final Pipeline pipeline = jedis.pipelined();
for (int i = 0; i < words.length - 1; i++){
if (i == 0){
for (int i = 0; i < words.length - 1; i++) {
if (i == 0) {
pipeline.lpush(this.id + ":start", words[i]);
pipeline.lpush(this.id + "::" + words[i], words[i + 1]);
} else {
@@ -67,11 +67,11 @@ public final class MarkovChain {
}
}
public String generate(final int softCharacterLimit, final int hardCharacterLimit){
public String generate(final int softCharacterLimit, final int hardCharacterLimit) {
final StringBuilder newSentence = new StringBuilder();
try (final Jedis jedis = Crabstero.getJedis()){
if (!jedis.exists(this.id + ":start")){
try (final Jedis jedis = Crabstero.getJedis()) {
if (!jedis.exists(this.id + ":start")) {
this.ingestSentence("Hello world!");
}
@@ -82,21 +82,21 @@ public final class MarkovChain {
word = startingWords.get(index);
newSentence.append(word);
while (!isCompleteSentence(word)){
while (!isCompleteSentence(word)) {
final List<String> wordChoices = jedis.lrange(this.id + "::" + word, 0, -1);
index = -1;
if (newSentence.length() >= softCharacterLimit){
for (int i = 0; i < wordChoices.size(); i++){
if (newSentence.length() >= softCharacterLimit) {
for (int i = 0; i < wordChoices.size(); i++) {
final String candidate = wordChoices.get(i);
if (isCompleteSentence(candidate)){
if (isCompleteSentence(candidate)) {
index = i;
break;
}
}
if (index == -1){
if (index == -1) {
index = rng.nextInt(wordChoices.size());
}
} else {
@@ -107,14 +107,14 @@ public final class MarkovChain {
newSentence.append(" " + word);
final int sentenceLength = newSentence.length();
if (sentenceLength >= hardCharacterLimit){
if (sentenceLength >= hardCharacterLimit) {
newSentence.delete(hardCharacterLimit, sentenceLength);
break;
}
}
}
if (newSentence.charAt(newSentence.length() - 1) == DEFAULT_SENTENCE_END){
if (newSentence.charAt(newSentence.length() - 1) == DEFAULT_SENTENCE_END) {
return newSentence.deleteCharAt(newSentence.length() - 1).toString();
} else {
return newSentence.toString();
@@ -36,13 +36,13 @@ public class MarkovChainMessages {
allowedMentions = builder.build();
}
private MarkovChainMessages(){
private MarkovChainMessages() {
throw new UnsupportedOperationException();
}
public static void replyToMessage(final Message message){
public static void replyToMessage(final Message message) {
final TextChannel channel = message.getChannel();
if (!channel.canYouWrite()){
if (!channel.canYouWrite()) {
return;
}
@@ -54,14 +54,14 @@ public class MarkovChainMessages {
response.replyTo(message);
response.setContent(markovChain.generate(750, 1000));
if (rng.nextDouble() >= 0.95 && channel.canYouEmbedLinks()){
if (rng.nextDouble() >= 0.95 && channel.canYouEmbedLinks()) {
final EmbedBuilder embed = new EmbedBuilder();
embed.setTitle(markovChain.generate(200, 300));
embed.setDescription(markovChain.generate(300, 500));
try (final Jedis jedis = Crabstero.getJedis()){
try (final Jedis jedis = Crabstero.getJedis()) {
final List<String> embedImageURLs = jedis.lrange(channelID + ":images", 0, -1);
if (embedImageURLs.size() > 0){
if (embedImageURLs.size() > 0) {
embed.setImage(embedImageURLs.get(rng.nextInt(embedImageURLs.size())));
}
}
@@ -74,9 +74,9 @@ public class MarkovChainMessages {
response.send(channel).exceptionally(ExceptionLogger.get());
}
public static void ingestMessage(final Message message){
public static void ingestMessage(final Message message) {
final MessageAuthor author = message.getAuthor();
if (author.isBotUser() || author.isWebhook() || message.getMentionedUsers().contains(message.getApi().getYourself())){
if (author.isBotUser() || author.isWebhook() || message.getMentionedUsers().contains(message.getApi().getYourself())) {
return;
}
@@ -85,12 +85,12 @@ public class MarkovChainMessages {
markovChain.ingest(message.getContent());
for (final Embed embed : message.getEmbeds()){
for (final Embed embed : message.getEmbeds()) {
ingestEmbed(channelID, embed);
}
}
public static void ingestEmbed(final long channelID, final Embed embed){
public static void ingestEmbed(final long channelID, final Embed embed) {
final MarkovChain markovChain = new MarkovChain(channelID);
embed.getTitle().ifPresent((title) -> {
@@ -102,7 +102,7 @@ public class MarkovChainMessages {
});
embed.getImage().ifPresent((image) -> {
try (final Jedis jedis = Crabstero.getJedis()){
try (final Jedis jedis = Crabstero.getJedis()) {
jedis.lpush(channelID + ":images", image.getUrl().toString());
}
});