deletedbot/telegram.go
2024-10-28 17:57:26 +01:00

81 lines
1.5 KiB
Go

package main
import (
"github.com/gin-gonic/gin"
"github.com/go-telegram-bot-api/telegram-bot-api/v5"
"io"
"encoding/json"
)
func (ses *session) setWebhookForBot(token string) (string, error) {
bot, err := tgbotapi.NewBotAPI(token)
if err != nil {
return "", err
}
webhook, err := tgbotapi.NewWebhook("https://" + ses.WebhookDomain + "/api/telegram/" + token)
if err != nil {
return "", err
}
_, err = bot.Request(webhook)
if err != nil {
return "", err
}
return bot.Self.UserName, nil
}
func (ses *session) unsetWebhookForBot(token string) error {
bot, err := tgbotapi.NewBotAPI(token)
if err != nil {
return err
}
_, err = bot.Request(tgbotapi.DeleteWebhookConfig{})
if err != nil {
return err
}
return nil
}
func (ses *session) telegram(c *gin.Context) {
var update tgbotapi.Update
token := c.Param("token")
bot, err1 := tgbotapi.NewBotAPI(token)
body, err2 := io.ReadAll(c.Request.Body)
err3 := json.Unmarshal(body, &update)
if err1 != nil || err2 != nil || err3 != nil {
return
}
if update.Message != nil {
if update.Message.Chat.ID > 0 {
val, err := ses.getMessage(token)
if err != nil {
val = "❌ Couldn't get start message for this bot. If you're its owner, try to register it again at " +
ses.WebhookDomain
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, val)
msg.ParseMode = "HTML"
bot.Send(msg)
bot.Send(tgbotapi.NewMessage(update.Message.Chat.ID, "Made with "+ses.WebhookDomain))
}
}
}