2023-06-19 23:42:47 +02:00
|
|
|
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2021-09-08 05:28:41 +02:00
|
|
|
|
2023-08-11 04:46:45 +02:00
|
|
|
package telegrambot // import "miniflux.app/v2/internal/integration/telegrambot"
|
2021-09-08 05:04:22 +02:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
2023-08-11 04:46:45 +02:00
|
|
|
"miniflux.app/v2/internal/model"
|
2021-09-08 05:04:22 +02:00
|
|
|
)
|
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
func PushEntry(feed *model.Feed, entry *model.Entry, botToken, chatID string, topicID *int64, disableWebPagePreview, disableNotification bool) error {
|
|
|
|
textTemplate := `<b><a href=%q>%s</a></b> - <a href=%q>%s</a>`
|
|
|
|
formattedText := fmt.Sprintf(
|
|
|
|
textTemplate,
|
|
|
|
feed.SiteURL,
|
|
|
|
feed.Title,
|
|
|
|
entry.URL,
|
|
|
|
entry.Title,
|
|
|
|
)
|
|
|
|
|
|
|
|
message := &MessageRequest{
|
|
|
|
ChatID: chatID,
|
|
|
|
Text: formattedText,
|
|
|
|
ParseMode: HTMLFormatting,
|
|
|
|
DisableWebPagePreview: disableWebPagePreview,
|
|
|
|
DisableNotification: disableNotification,
|
2021-09-08 05:04:22 +02:00
|
|
|
}
|
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
if topicID != nil {
|
|
|
|
message.MessageThreadID = *topicID
|
2021-09-08 05:04:22 +02:00
|
|
|
}
|
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
var markupRow []*InlineKeyboardButton
|
2021-09-08 05:04:22 +02:00
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
minifluxURLButton := InlineKeyboardButton{Text: "Go to article", URL: entry.URL}
|
|
|
|
markupRow = append(markupRow, &minifluxURLButton)
|
2022-05-21 14:58:45 +02:00
|
|
|
|
|
|
|
if entry.CommentsURL != "" {
|
2023-09-10 20:22:32 +02:00
|
|
|
commentButton := InlineKeyboardButton{Text: "Comments", URL: entry.CommentsURL}
|
|
|
|
markupRow = append(markupRow, &commentButton)
|
2022-05-21 14:58:45 +02:00
|
|
|
}
|
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
message.ReplyMarkup = &InlineKeyboard{}
|
|
|
|
message.ReplyMarkup.InlineKeyboard = append(message.ReplyMarkup.InlineKeyboard, markupRow)
|
2021-09-08 05:04:22 +02:00
|
|
|
|
2023-09-10 20:22:32 +02:00
|
|
|
client := NewClient(botToken, chatID)
|
|
|
|
_, err := client.SendMessage(message)
|
|
|
|
return err
|
2021-09-08 05:04:22 +02:00
|
|
|
}
|