From e8353f7e288b011125789a4abb492f6a86325603 Mon Sep 17 00:00:00 2001 From: Maksimov V Vladimir Date: Sun, 26 Oct 2025 13:01:35 +0300 Subject: [PATCH] telegram --- main.go | 63 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/main.go b/main.go index 9a26755..1eabf59 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "log" "net/http" "os" + "strings" "time" "gopkg.in/yaml.v3" @@ -25,6 +26,35 @@ type ConfigTelegraam struct { GroupID int64 `yaml:"group_id"` } +func BuildMessage(r *http.Request) string { + t := time.Now() + + var body []byte + + if r.ContentLength > 1024 { + body = []byte("too long") + } else { + // Читаем тело запроса + body, _ = io.ReadAll(r.Body) + _ = r.Body.Close() + } + + // Формируем содержимое + entry := fmt.Sprintf("[%s] %s %s%s\n", t.Format(time.RFC3339), r.Method, r.Host, r.URL.String()) + entry += "RemoteAddr: " + r.RemoteAddr + "\n" + entry += "Headers:\n" + for name, values := range r.Header { + for _, v := range values { + entry += fmt.Sprintf(" %s: %s\n", name, v) + } + } + entry += fmt.Sprintf("Body:\n%s\n", string(body)) + entry += "----\n" + + entry = "```" + entry + "```" + return entry +} + func main() { log.Println("Запуск приложения") // Загружаем конфиг @@ -44,31 +74,18 @@ func main() { // Общий обработчик handler := func(w http.ResponseWriter, r *http.Request) { - t := time.Now() - - var body []byte - - if r.ContentLength > 1024 { - body = []byte("too long") - } else { - // Читаем тело запроса - body, _ = io.ReadAll(r.Body) - _ = r.Body.Close() + paths := strings.Split(r.URL.Path, "/") + switch { + case len(paths) < 2: + w.WriteHeader(http.StatusNotFound) + return + case paths[1] == "telegram": + default: + w.WriteHeader(http.StatusNotFound) + return } - // Формируем содержимое - entry := fmt.Sprintf("[%s] %s %s%s\n", t.Format(time.RFC3339), r.Method, r.Host, r.URL.String()) - entry += "Headers:\n" - for name, values := range r.Header { - for _, v := range values { - entry += fmt.Sprintf(" %s: %s\n", name, v) - } - } - entry += fmt.Sprintf("Body:\n%s\n", string(body)) - entry += "----\n" - - entry = "```" + entry + "```" - + entry := BuildMessage(r) _, err = tg.SendTextMessage(cfg.Telegram.GroupID, entry) if err != nil { log.Println(err)