From cced06fda9e0f33689d14b139c3e4caa6c3ab694 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Fri, 7 Nov 2025 21:04:02 +0700 Subject: [PATCH] Notify creator on bot startup and enhance config Added a startup notification to the creator with the current bot version. Refactored ADMIN_IDS to a List, introduced CREATOR_ID and SOURCE_VERSION constants in Config, and improved environment variable handling. --- src/main/java/com/miti99/storescraperbot/Main.java | 6 ++++++ .../com/miti99/storescraperbot/config/Config.java | 14 +++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/miti99/storescraperbot/Main.java b/src/main/java/com/miti99/storescraperbot/Main.java index 48a2ed1..5c5fb41 100644 --- a/src/main/java/com/miti99/storescraperbot/Main.java +++ b/src/main/java/com/miti99/storescraperbot/Main.java @@ -1,6 +1,10 @@ package com.miti99.storescraperbot; +import static com.miti99.storescraperbot.config.Config.CREATOR_ID; +import static com.miti99.storescraperbot.config.Config.SOURCE_VERSION; + import com.miti99.storescraperbot.bot.StoreScrapeBot; +import com.miti99.storescraperbot.bot.StoreScrapeBotTelegramClient; import com.miti99.storescraperbot.config.Config; import com.miti99.storescraperbot.repository.AdminRepository; import lombok.extern.log4j.Log4j2; @@ -15,6 +19,8 @@ public class Main { try (var botsApplication = new TelegramBotsLongPollingApplication()) { botsApplication.registerBot(Config.TELEGRAM_BOT_TOKEN, StoreScrapeBot.INSTANCE); log.info("StoreScrapeBot successfully started!"); + StoreScrapeBotTelegramClient.INSTANCE.sendMessage( + CREATOR_ID, "Bot started! Version %s".formatted(SOURCE_VERSION)); Thread.currentThread().join(); } catch (Exception e) { log.error("Error while running bot", e); diff --git a/src/main/java/com/miti99/storescraperbot/config/Config.java b/src/main/java/com/miti99/storescraperbot/config/Config.java index 2ecc0d6..219e94c 100644 --- a/src/main/java/com/miti99/storescraperbot/config/Config.java +++ b/src/main/java/com/miti99/storescraperbot/config/Config.java @@ -1,8 +1,10 @@ package com.miti99.storescraperbot.config; +import com.google.common.base.Strings; import com.miti99.storescraperbot.type.Env; import java.util.Arrays; import java.util.Collections; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -18,7 +20,7 @@ public class Config { public static final String TELEGRAM_BOT_USERNAME = System.getenv("TELEGRAM_BOT_USERNAME"); public static final Env ENV = Env.valueOf(System.getenv("ENV")); - public static final Set ADMIN_IDS = + public static final List ADMIN_IDS = Optional.ofNullable(System.getenv("ADMIN_IDS")) .map( v -> @@ -26,6 +28,12 @@ public class Config { .map(String::trim) .filter(s -> !s.isEmpty()) .map(Long::parseLong) - .collect(Collectors.toSet())) - .orElse(Collections.emptySet()); + .collect(Collectors.toList())) + .orElse(Collections.emptyList()); + public static final long CREATOR_ID = ADMIN_IDS.getFirst(); + + public static final String SOURCE_VERSION = + Strings.isNullOrEmpty(System.getenv("SOURCE_VERSION")) + ? "unknown" + : System.getenv("SOURCE_VERSION"); }