escapar caracteres del Markdown

This commit is contained in:
2025-03-28 16:05:58 +01:00
parent 10292bd400
commit e523a11069

View File

@ -157,15 +157,45 @@ public class TelegramBot extends TelegramLongPollingBot {
List<NewsArticle> noticias = scrapper.searchNews(query); List<NewsArticle> noticias = scrapper.searchNews(query);
if (noticias.isEmpty()) { if (noticias.isEmpty()) {
sendMessage(chatId, "No encontré noticias sobre: *" + query + "*"); sendMessage(chatId, "No encontré noticias sobre: *" + escapeMarkdown(query) + "*");
return; 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) { 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()); 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("!", "\\!");
}
} }