updated: deferred messages can be forgotten now

pull/6/head
Vyacheslav N. Boyko 2018-04-09 15:27:14 +03:00
parent 71d400a4c9
commit baf8bb6ff6
4 changed files with 37 additions and 24 deletions

View File

@ -18,7 +18,7 @@
<properties>
<bot.version>2.0.4</bot.version>
<bot.version>2.0.5</bot.version>
<java.version>1.8</java.version>

View File

@ -1,6 +1,7 @@
package ru.bvn13.jircbot.database.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import ru.bvn13.jircbot.database.entities.DeferredMessage;

View File

@ -36,4 +36,12 @@ public class DeferredMessageService {
deferredMessageRepository.save(msg);
}
public void forgetAllMessages(String channelName, String recipient) {
List<DeferredMessage> messages = deferredMessageRepository.getDeferredMessagesByChannelNameAndRecipientAndSentOrderByDtCreated(channelName, recipient, false);
messages.forEach(msg -> {
msg.setSent(false);
deferredMessageRepository.save(msg);
});
}
}

View File

@ -22,6 +22,7 @@ import java.util.List;
public class DeferredMessagesListener extends ImprovedListenerAdapter {
private static final String COMMAND = "?tell";
private static final String COMMAND_FORGET = "?forget";
private static SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -45,32 +46,35 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
this.sendDeferredMessage(event);
if (!event.getMessage().startsWith(COMMAND)) {
return;
}
String message = event.getMessage().replace(COMMAND, "").trim();
String commands[] = message.split(" ", 2);
if (commands.length != 2) {
event.respond("Deferred messages usage: ?tell <UserNick/ME> your message");
return;
}
String userName = event.getUser().getNick();
String channelname = this.getChannelName(event);
if (commands[0].equalsIgnoreCase("me")) {
// deferred to myself
deferredMessageService.saveDeferredMessage(channelname, userName, userName.toLowerCase(), commands[1]);
this.sendNotice(event,"Saved message to "+userName);
} else {
if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) {
this.sendNotice(event,"Sorry, message cannot be deferred to me.");
} else {
// deferred to somebody
deferredMessageService.saveDeferredMessage(channelname, userName, commands[0].toLowerCase(), commands[1]);
this.sendNotice(event, "Saved message to " + commands[0]);
String channelName = this.getChannelName(event);
if (event.getMessage().startsWith(COMMAND)) {
String message = event.getMessage().replace(COMMAND, "").trim();
String commands[] = message.split(" ", 2);
if (commands.length != 2) {
event.respond("Deferred messages usage: ?tell <UserNick/ME> your message here");
return;
}
if (commands[0].equalsIgnoreCase("me")) {
// deferred to myself
deferredMessageService.saveDeferredMessage(channelName, userName, userName.toLowerCase(), commands[1]);
this.sendNotice(event,"Saved message to "+userName);
} else {
if (commands[0].equalsIgnoreCase(event.getBot().getUserBot().getNick())) {
this.sendNotice(event,"Sorry, message cannot be deferred to me.");
} else {
// deferred to somebody
deferredMessageService.saveDeferredMessage(channelName, userName, commands[0].toLowerCase(), commands[1]);
this.sendNotice(event, "Saved message to " + commands[0]);
}
}
} else if (event.getMessage().startsWith(COMMAND)) {
deferredMessageService.forgetAllMessages(channelName, userName);
this.sendNotice(event, "All messages to "+userName+" were deleted");
}
}