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