all repos — cameraman @ d84b26ba8d08e9fbc06f7db5a8016fe37ff261f3

minor refactor
Marco Andronaco andronacomarco@gmail.com
Sun, 10 Nov 2024 17:03:11 +0100
commit

d84b26ba8d08e9fbc06f7db5a8016fe37ff261f3

parent

33229b4ef241f4fc2776ea94d2fb47dbf1e039e5

2 files changed, 44 insertions(+), 31 deletions(-)

jump to
M notify.gonotify.go

@@ -32,6 +32,9 @@ SleepDuration time.Duration

telegramToken string chatID string threadID string + + sendMessageUrl = fmt.Sprintf("%s%s/sendMessage", baseUrl, telegramToken) + pinMessageUrl = fmt.Sprintf("%s%s/pinChatMessage", baseUrl, telegramToken) ) func sendPostRequest(url string, payload map[string]interface{}) (*http.Response, error) {

@@ -55,18 +58,7 @@

return resp, nil } -func notifyTelegram(occurrence Occurrence, soft bool) error { - log.Println("Sending notification for occurrence", occurrence.ID) - var message string - if occurrence.Year != nil { - years := time.Now().Year() - int(*occurrence.Year) - message = fmt.Sprintf(msgFormatYear, occurrence.Day, occurrence.Month, *occurrence.Year, years, occurrence.Name, occurrence.Description) - } else { - message = fmt.Sprintf(msgFormat, occurrence.Day, occurrence.Month, occurrence.Name, occurrence.Description) - } - - url := fmt.Sprintf("%s%s/sendMessage", baseUrl, telegramToken) - +func sendTelegramMessage(message string) (messageID int, err error) { // Create the payload payload := map[string]interface{}{ "chat_id": chatID,

@@ -77,63 +69,84 @@ "disable_notification": true,

} // Send the POST request - resp, err := sendPostRequest(url, payload) + resp, err := sendPostRequest(sendMessageUrl, payload) if err != nil { log.Printf("Failed to send notification: %v", err) - return err + return } defer resp.Body.Close() bodyBytes, err := io.ReadAll(resp.Body) if err != nil { log.Printf("Failed to read response body: %v", err) - return err + return } log.Printf("Notification sent: %s, Response: %s", message, string(bodyBytes)) // Decode the JSON response var r Response - if err := json.Unmarshal(bodyBytes, &r); err != nil { + err = json.Unmarshal(bodyBytes, &r) + if err != nil { log.Printf("Failed to decode response: %v", err) - return err + return } if !r.Ok { log.Printf("Telegram API returned an error: %v", r) - return fmt.Errorf("telegram API error: %v", r) + err = fmt.Errorf("telegram API error: %v", r) + return } - if soft { - return nil - } + return r.Result.MessageID, nil +} - msgId := r.Result.MessageID - +func pinTelegramMessage(messageID int) (err error) { // Prepare the request to pin the message - url = fmt.Sprintf("%s%s/pinChatMessage", baseUrl, telegramToken) - payload = map[string]interface{}{ + payload := map[string]interface{}{ "chat_id": chatID, - "message_id": msgId, + "message_id": messageID, "disable_notification": false, } // Send the POST request to pin the message - resp, err = sendPostRequest(url, payload) + resp, err := sendPostRequest(pinMessageUrl, payload) if err != nil { log.Printf("Failed to pin message: %v", err) return err } defer resp.Body.Close() - bodyBytes, err = io.ReadAll(resp.Body) + bodyBytes, err := io.ReadAll(resp.Body) if err != nil { log.Printf("Failed to read response body: %v", err) return err } - log.Printf("Message pinned: %s, Response: %s", message, string(bodyBytes)) - return nil + log.Printf("Message pinned: %d, Response: %s", messageID, string(bodyBytes)) + return +} + +func notifyTelegram(occurrence Occurrence, soft bool) error { + log.Println("Sending notification for occurrence", occurrence.ID) + var message string + if occurrence.Year != nil { + years := time.Now().Year() - int(*occurrence.Year) + message = fmt.Sprintf(msgFormatYear, occurrence.Day, occurrence.Month, *occurrence.Year, years, occurrence.Name, occurrence.Description) + } else { + message = fmt.Sprintf(msgFormat, occurrence.Day, occurrence.Month, occurrence.Name, occurrence.Description) + } + + if soft { + return nil + } + + msgId, err := sendTelegramMessage(message) + if err != nil { + return err + } + + return pinTelegramMessage(msgId) } func resetNotifications(notified_column string) (err error) {
M templates/index.htmltemplates/index.html

@@ -117,7 +117,7 @@ </style>

</head> <body> - <h1>Ricorrenzes</h1> + <h1>Ricorrenze</h1> <table id="main-table"> <tr> <th data-field="name">Nome</th>