From 4910d2ca5523c2f1492f3d9176ebe794caf50d47 Mon Sep 17 00:00:00 2001 From: Rithas K Date: Sun, 2 Jun 2024 00:12:55 +0530 Subject: [PATCH 1/2] Add config to send messages to a specific Telegram topic --- auth.go | 7 ++++++- config.go | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/auth.go b/auth.go index 4104243..bac585d 100644 --- a/auth.go +++ b/auth.go @@ -85,7 +85,12 @@ func NotifyTelegram(msg string) { return } client := &http.Client{} - var data = strings.NewReader("chat_id=" + Cfg.TelegramChat + "&text=" + msg) + var data *strings.Reader + if Cfg.TelegramToken != "" { + data = strings.NewReader("chat_id=" + Cfg.TelegramChat + "&message_thread_id=" + Cfg.TelegramTopic + "&text=" + msg) + } else { + data = strings.NewReader("chat_id=" + Cfg.TelegramChat + "&text=" + msg) + } req, err := http.NewRequest("POST", "https://api.telegram.org/bot"+Cfg.TelegramToken+"/sendMessage", data) if err != nil { slog.Error("failed telegram request", "error", err) diff --git a/config.go b/config.go index 08b4871..d290c2d 100644 --- a/config.go +++ b/config.go @@ -30,6 +30,7 @@ type Config struct { TelegramToken string `config:"tg_token" type:"string"` TelegramChat string `config:"tg_chat" type:"string"` + TelegramTopic string `config:"tg_topic" type:"string"` } var DefaultConfig = Config{ From 3fabf4381ee3c610fc3f4e79f68852ae79d40958 Mon Sep 17 00:00:00 2001 From: Andrey N <77640396+Andrew-71@users.noreply.github.com> Date: Sat, 1 Jun 2024 23:52:43 +0300 Subject: [PATCH 2/2] Fix Telegram token being checked for content instead of topic --- auth.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/auth.go b/auth.go index bac585d..1a1f545 100644 --- a/auth.go +++ b/auth.go @@ -85,13 +85,11 @@ func NotifyTelegram(msg string) { return } client := &http.Client{} - var data *strings.Reader - if Cfg.TelegramToken != "" { - data = strings.NewReader("chat_id=" + Cfg.TelegramChat + "&message_thread_id=" + Cfg.TelegramTopic + "&text=" + msg) - } else { - data = strings.NewReader("chat_id=" + Cfg.TelegramChat + "&text=" + msg) + data := "chat_id=" + Cfg.TelegramChat + "&text=" + msg + if Cfg.TelegramTopic != "" { + data += "&message_thread_id=" + Cfg.TelegramTopic } - req, err := http.NewRequest("POST", "https://api.telegram.org/bot"+Cfg.TelegramToken+"/sendMessage", data) + req, err := http.NewRequest("POST", "https://api.telegram.org/bot"+Cfg.TelegramToken+"/sendMessage", strings.NewReader(data)) if err != nil { slog.Error("failed telegram request", "error", err) return