From 538e99beacac2b834ea81a9cfe9347a5d0ec937c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Ha=C3=9Fel?= Date: Mon, 17 Jun 2024 09:20:26 +0200 Subject: [PATCH] radiusKm as ConfigProperty + logging --- pom.xml | 14 ++++++++++++ .../kleinanzeigen/KleinanzeigenApi.java | 6 +++-- .../kleinanzeigen/KleinanzeigenConfig.java | 22 +++++++++++++++++++ .../telegram/TelegramService.java | 7 ++++-- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenConfig.java diff --git a/pom.xml b/pom.xml index fd30797..64e4096 100644 --- a/pom.xml +++ b/pom.xml @@ -55,4 +55,18 @@ + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + + \ No newline at end of file diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenApi.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenApi.java index 497b5d6..8fa0acb 100644 --- a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenApi.java +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenApi.java @@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit; @RequiredArgsConstructor public class KleinanzeigenApi { - private static final String VERSCHENKEN_EPPELBORN_30KM = "https://www.kleinanzeigen.de/s-zu-verschenken/66571/seite:%d/c192l339r30"; + private static final String VERSCHENKEN_EPPELBORN_30KM = "https://www.kleinanzeigen.de/s-zu-verschenken/66571/seite:%d/c192l339r%d"; private static final int FETCH_UNTIL_DUPLICATE_MAX_PAGES = 1; @@ -31,6 +31,8 @@ public class KleinanzeigenApi { private final ApplicationEventPublisher publisher; + private final KleinanzeigenConfig config; + @Scheduled(initialDelay = 0, fixedRate = 1, timeUnit = TimeUnit.MINUTES) public void fetch() { fetchPagesUntilDuplicate(); @@ -49,7 +51,7 @@ public class KleinanzeigenApi { private FetchResult fetchPage(final int page) { final FetchResult fetchResult = new FetchResult(); final Document document; - final URI uri = URI.create(VERSCHENKEN_EPPELBORN_30KM.formatted(page)); + final URI uri = URI.create(VERSCHENKEN_EPPELBORN_30KM.formatted(page, config.getRadiusKm())); try { log.debug("Fetching page: {}", uri); document = Jsoup.parse(uri.toURL(), 3000); diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenConfig.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenConfig.java new file mode 100644 index 0000000..1e9a298 --- /dev/null +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/KleinanzeigenConfig.java @@ -0,0 +1,22 @@ +package de.ph87.kleinanzeigen.kleinanzeigen; + +import jakarta.annotation.PostConstruct; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Slf4j +@Data +@Component +@ConfigurationProperties(prefix = "de.ph87.kleinanzeigen") +public class KleinanzeigenConfig { + + private int radiusKm = 15; + + @PostConstruct + public void postConstruct() { + log.info("radiusKm: {}", radiusKm); + } + +} diff --git a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramService.java b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramService.java index f1ae825..02dbfc2 100644 --- a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramService.java +++ b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramService.java @@ -141,6 +141,7 @@ public class TelegramService { try { final EditMessageCaption edit = new EditMessageCaption(chatId + "", messageId, null, createText(offer), createKeyboard(offer), null, null); edit.setParseMode("Markdown"); + log.info("Editing Offer: {}", offer); bot.execute(edit); } catch (TelegramApiException | JsonProcessingException e) { if (e.toString().endsWith("Bad Request: message to edit not found")) { @@ -158,9 +159,10 @@ public class TelegramService { try { final InputFile inputFile = offer.getImageURL() == null ? new InputFile(new ByteArrayInputStream(NO_IMAGE), "[Kein Bild]") : new InputFile(offer.getImageURL()); final SendPhoto send = new SendPhoto(CHAT_ID + "", inputFile); - log.debug("{}", send); send.setCaption(createText(offer)); send.setReplyMarkup(createKeyboard(offer)); + + log.info("Sending Offer: {}", offer); final Message message = bot.execute(send); offerService.setTelegramMessageId(offer, message.getMessageId()); @@ -205,9 +207,10 @@ public class TelegramService { private void _remove(final Integer... messageIds) { try { + log.info("Removing messages: {}", Arrays.toString(messageIds)); bot.execute(new DeleteMessages(CHAT_ID + "", Arrays.stream(messageIds).toList())); } catch (TelegramApiException e) { - log.error("Failed to remove Message to #{}.", CHAT_ID, e); + log.error("Failed to remove Message #{}.", CHAT_ID, e); } }