Undo-Button

This commit is contained in:
Patrick Haßel 2025-10-10 15:02:17 +02:00
parent 36324f2723
commit c6fb375995
5 changed files with 20 additions and 7 deletions

View File

@ -11,6 +11,7 @@
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

View File

@ -1,5 +1,5 @@
package de.ph87.kleinanzeigen.telegram;
public enum InlineCommand {
HIDE, REMEMBER, UNREMEMBER
HIDE, REMEMBER, UNREMEMBER, UNDO
}

View File

@ -7,7 +7,11 @@ import de.ph87.kleinanzeigen.telegram.chat.ChatDto;
import de.ph87.kleinanzeigen.telegram.chat.ChatService;
import de.ph87.kleinanzeigen.telegram.chat.message.MessageDto;
import de.ph87.kleinanzeigen.telegram.chat.message.MessageService;
import de.ph87.kleinanzeigen.telegram.request.*;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestEnable;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestHelp;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestUndo;
import de.ph87.kleinanzeigen.telegram.request.MessageRequestHide;
import de.ph87.kleinanzeigen.telegram.request.MessageRequestRemember;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import lombok.NonNull;
@ -40,6 +44,8 @@ import java.util.List;
@RequiredArgsConstructor
public class TelegramAdapter {
private static final String ICON_UNDO = "";
private static final String ICON_CHECK = "";
private static final String ICON_REMOVE = "";
@ -209,7 +215,8 @@ public class TelegramAdapter {
addButton(row, ICON_CHECK + ICON_CHECK + ICON_CHECK + " Gemerkt " + ICON_CHECK + ICON_CHECK + ICON_CHECK, InlineCommand.UNREMEMBER);
} else {
addButton(row, ICON_REMOVE + " Entfernen", InlineCommand.HIDE);
addButton(row, ICON_CHECK + " Merken", InlineCommand.REMEMBER);
// addButton(row, ICON_CHECK + " Merken", InlineCommand.REMEMBER);
addButton(row, ICON_UNDO + " Rückgängig", InlineCommand.UNDO);
}
keyboard.add(row);
markup.setKeyboard(keyboard);

View File

@ -2,7 +2,11 @@ package de.ph87.kleinanzeigen.telegram;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.ph87.kleinanzeigen.telegram.request.*;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestEnable;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestHelp;
import de.ph87.kleinanzeigen.telegram.request.ChatRequestUndo;
import de.ph87.kleinanzeigen.telegram.request.MessageRequestHide;
import de.ph87.kleinanzeigen.telegram.request.MessageRequestRemember;
import jakarta.annotation.PreDestroy;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
@ -76,7 +80,7 @@ public class TelegramBot extends TelegramLongPollingBot {
switch (command[0]) {
case "start" -> publisher.publishEvent(new ChatRequestEnable(this, message, true));
case "stop" -> publisher.publishEvent(new ChatRequestEnable(this, message, false));
case "r", "undo", "rückgängig" -> publisher.publishEvent(new ChatRequestUndo(this, message));
case "u", "r", "undo", "rückgängig" -> publisher.publishEvent(new ChatRequestUndo(this, message));
case "h", "hilfe", "help" -> publisher.publishEvent(new ChatRequestHelp(this, message));
}
delete(new TlgMessage(this, message));
@ -90,6 +94,7 @@ public class TelegramBot extends TelegramLongPollingBot {
case HIDE -> hide(message);
case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, true));
case UNREMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, false));
case UNDO -> publisher.publishEvent(new ChatRequestUndo(this, message));
}
} catch (JsonProcessingException e) {
log.error("Failed to read InlineDto.", e);

View File

@ -4,12 +4,12 @@ import de.ph87.kleinanzeigen.telegram.TelegramBot;
import de.ph87.kleinanzeigen.telegram.TlgChat;
import lombok.Getter;
import lombok.NonNull;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
@Getter
public class ChatRequestUndo extends TlgChat {
public ChatRequestUndo(@NonNull final TelegramBot bot, @NonNull final Message message) {
public ChatRequestUndo(@NonNull final TelegramBot bot, @NonNull final MaybeInaccessibleMessage message) {
super(bot, message);
}