]> git.giacomolli.uk - onechat/blobdiff - botapi.go
Send the replies to Telegram with their formats
[onechat] / botapi.go
index 57bf9dba8111e163f99bda5a78470dafd594016e..f48465c3174674173cb1b8d8337932cdae5c05ba 100644 (file)
--- a/botapi.go
+++ b/botapi.go
@@ -130,16 +130,23 @@ func (b *botAPI) GetUpdates(ctx context.Context, offset int64) ([]botUpdate, err
        return updates, err
 }
 
        return updates, err
 }
 
-// SendMessage sends text to chat as plain text, with no parse mode. A call that
-// takes longer than sendTimeout fails with errBotNetwork.
-func (b *botAPI) SendMessage(ctx context.Context, chat int64, text string) error {
+// SendMessage sends text to chat with the format of entities, with no parse
+// mode, so the text needs no escaping. With no entities, the text is plain. A
+// call that takes longer than sendTimeout fails with errBotNetwork.
+func (b *botAPI) SendMessage(ctx context.Context, chat int64, text string, entities []botEntity) error {
        ctx, cancel := context.WithTimeout(ctx, b.sendTimeout)
        defer cancel()
 
        ctx, cancel := context.WithTimeout(ctx, b.sendTimeout)
        defer cancel()
 
-       return b.call(ctx, "sendMessage", map[string]any{
+       params := map[string]any{
                "chat_id": chat,
                "text":    text,
                "chat_id": chat,
                "text":    text,
-       }, nil)
+       }
+
+       if len(entities) > 0 {
+               params["entities"] = entities
+       }
+
+       return b.call(ctx, "sendMessage", params, nil)
 }
 
 // SendTyping shows the typing action in chat for about five seconds. A call
 }
 
 // SendTyping shows the typing action in chat for about five seconds. A call