deletedbot/telegram.go
2021-07-18 23:23:12 +02:00

68 lines
1.3 KiB
Go

package main
import (
"github.com/gin-gonic/gin"
"github.com/go-telegram-bot-api/telegram-bot-api/v5"
"encoding/json"
"io/ioutil"
)
func (ses session) setWebhookForBot(token string) (string, error) {
bot, err := tgbotapi.NewBotAPI(token)
if err != nil { return "", err }
_, err = bot.Request(tgbotapi.NewWebhook("https://" + ses.BackendHost + "/telegram/" + token))
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.RemoveWebhookConfig{})
if err != nil { return err }
return nil
}
func (ses session) telegram(c *gin.Context) {
token := c.Param("token")
bot, err1 := tgbotapi.NewBotAPI(token)
body, err2 := ioutil.ReadAll(c.Request.Body)
if err1 != nil || err2 != nil {
return
}
var update tgbotapi.Update
json.Unmarshal(body, &update)
if update.Message != nil {
if update.Message.Chat.ID > 0 {
val, err := ses.Get(token).Result()
if err != nil {
return
}
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.FrontendHost))
}
}
}