diff --git a/bot/src/main/java/es/imunnic/inversionitasBot/TelegramBot.java b/bot/src/main/java/es/imunnic/inversionitasBot/TelegramBot.java index 550cc98..e60fc87 100644 --- a/bot/src/main/java/es/imunnic/inversionitasBot/TelegramBot.java +++ b/bot/src/main/java/es/imunnic/inversionitasBot/TelegramBot.java @@ -157,15 +157,45 @@ public class TelegramBot extends TelegramLongPollingBot { List noticias = scrapper.searchNews(query); if (noticias.isEmpty()) { - sendMessage(chatId, "No encontré noticias sobre: *" + query + "*"); + sendMessage(chatId, "No encontré noticias sobre: *" + escapeMarkdown(query) + "*"); return; } - - StringBuilder mensaje = new StringBuilder("📰 *Noticias sobre " + query + "*:\n\n"); + + sendMessage(chatId, "Analizando noticias...esto puede tardar un poco, ten paciencia..."); + StringBuilder mensaje = new StringBuilder("📰 *Noticias sobre " + escapeMarkdown(query) + "*:\n\n"); for (NewsArticle noticia : noticias) { - mensaje.append("🔹 [").append(noticia.getTitle()).append("](").append(noticia.getUrl()).append(")\n"); + mensaje.append("🔹 [") + .append(escapeMarkdown(noticia.getTitle())) + .append("](") + .append(noticia.getUrl()) + .append(")\n"); } sendMessage(chatId, mensaje.toString()); } + + // Método para escapar caracteres especiales en Markdown + private String escapeMarkdown(String text) { + if (text == null) { + return ""; + } + return text.replace("_", "\\_") + .replace("*", "\\*") + .replace("[", "\\[") + .replace("]", "\\]") + .replace("(", "\\(") + .replace(")", "\\)") + .replace("~", "\\~") + .replace("`", "\\`") + .replace(">", "\\>") + .replace("#", "\\#") + .replace("+", "\\+") + .replace("-", "\\-") + .replace("=", "\\=") + .replace("|", "\\|") + .replace("{", "\\{") + .replace("}", "\\}") + .replace(".", "\\.") + .replace("!", "\\!"); + } }