Files
trbot/utils/configs/webhook.go
Hubert Chen 7238c8f890 refactor bot init function
database:
    move default database directory to `data/`
environment:
    add `WEBHOOL_ADDR`
    add `LOG_CHAT_ID`
    add `LOG_FILE_PATH`
    rename `CONFIG_PATH_TO_FILE` to `CONFIG_PATH`
    rename `CONFIG_DIRECTORY` to `CONFIG_DIR`
2025-08-21 00:47:58 +08:00

83 lines
1.9 KiB
Go

package configs
import (
"context"
"github.com/go-telegram/bot"
"github.com/rs/zerolog"
)
func SetUpWebhook(ctx context.Context, thebot *bot.Bot, params *bot.SetWebhookParams) bool {
logger := zerolog.Ctx(ctx)
webHookInfo, err := thebot.GetWebhookInfo(ctx)
if err != nil {
logger.Error().
Err(err).
Msg("Get Webhook info error")
return false
} else {
if webHookInfo != nil && webHookInfo.URL != params.URL {
if webHookInfo.URL == "" {
logger.Info().
Msg("Webhook not set, setting it now...")
} else {
logger.Warn().
Str("remoteURL", webHookInfo.URL).
Str("localURL", params.URL).
Msg("The remote Webhook URL conflicts with the local one, overwriting the remote URL")
}
success, err := thebot.SetWebhook(ctx, params)
if !success {
logger.Error().
Err(err).
Str("localURL", params.URL).
Msg("Set Webhook URL failed")
return false
} else {
logger.Info().
Str("remoteURL", params.URL).
Msg("Set Webhook URL success")
}
} else {
logger.Info().
Str("remoteURL", params.URL).
Msg("Webhook URL is already set")
}
}
return true
}
func CleanRemoteWebhookURL(ctx context.Context, thebot *bot.Bot) bool {
logger := zerolog.Ctx(ctx)
webHookInfo, err := thebot.GetWebhookInfo(ctx)
if err != nil {
logger.Error().
Err(err).
Msg("Failed to get Webhook info")
return false
} else {
if webHookInfo != nil && webHookInfo.URL != "" {
logger.Warn().
Str("remoteURL", webHookInfo.URL).
Msg("There is a Webhook URL remotely, clearing it to use the getUpdate mode")
ok, err := thebot.DeleteWebhook(ctx, &bot.DeleteWebhookParams{
DropPendingUpdates: false,
})
if !ok {
logger.Error().
Err(err).
Str("remoteURL", webHookInfo.URL).
Msg("Failed to delete Webhook URL")
return false
} else {
logger.Info().
Str("oldRemoteURL", webHookInfo.URL).
Msg("Deleted Webhook URL")
}
}
}
return true
}