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> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target> <maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>

View File

@ -1,5 +1,5 @@
package de.ph87.kleinanzeigen.telegram; package de.ph87.kleinanzeigen.telegram;
public enum InlineCommand { 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.ChatService;
import de.ph87.kleinanzeigen.telegram.chat.message.MessageDto; import de.ph87.kleinanzeigen.telegram.chat.message.MessageDto;
import de.ph87.kleinanzeigen.telegram.chat.message.MessageService; 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.PostConstruct;
import jakarta.annotation.PreDestroy; import jakarta.annotation.PreDestroy;
import lombok.NonNull; import lombok.NonNull;
@ -40,6 +44,8 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class TelegramAdapter { public class TelegramAdapter {
private static final String ICON_UNDO = "";
private static final String ICON_CHECK = ""; private static final String ICON_CHECK = "";
private static final String ICON_REMOVE = ""; 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); addButton(row, ICON_CHECK + ICON_CHECK + ICON_CHECK + " Gemerkt " + ICON_CHECK + ICON_CHECK + ICON_CHECK, InlineCommand.UNREMEMBER);
} else { } else {
addButton(row, ICON_REMOVE + " Entfernen", InlineCommand.HIDE); 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); keyboard.add(row);
markup.setKeyboard(keyboard); markup.setKeyboard(keyboard);

View File

@ -2,7 +2,11 @@ package de.ph87.kleinanzeigen.telegram;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; 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 jakarta.annotation.PreDestroy;
import lombok.NonNull; import lombok.NonNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -76,7 +80,7 @@ public class TelegramBot extends TelegramLongPollingBot {
switch (command[0]) { switch (command[0]) {
case "start" -> publisher.publishEvent(new ChatRequestEnable(this, message, true)); case "start" -> publisher.publishEvent(new ChatRequestEnable(this, message, true));
case "stop" -> publisher.publishEvent(new ChatRequestEnable(this, message, false)); 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)); case "h", "hilfe", "help" -> publisher.publishEvent(new ChatRequestHelp(this, message));
} }
delete(new TlgMessage(this, message)); delete(new TlgMessage(this, message));
@ -90,6 +94,7 @@ public class TelegramBot extends TelegramLongPollingBot {
case HIDE -> hide(message); case HIDE -> hide(message);
case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, true)); case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, true));
case UNREMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, false)); case UNREMEMBER -> publisher.publishEvent(new MessageRequestRemember(this, message, false));
case UNDO -> publisher.publishEvent(new ChatRequestUndo(this, message));
} }
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
log.error("Failed to read InlineDto.", 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 de.ph87.kleinanzeigen.telegram.TlgChat;
import lombok.Getter; import lombok.Getter;
import lombok.NonNull; import lombok.NonNull;
import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
@Getter @Getter
public class ChatRequestUndo extends TlgChat { 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); super(bot, message);
} }