mirror of
https://github.com/ChuckNorrison/LightningTipBot.git
synced 2026-08-14 12:43:14 +02:00
88 lines
2.9 KiB
Go
88 lines
2.9 KiB
Go
package telegram
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
|
||
"github.com/LightningTipBot/LightningTipBot/internal/telegram/intercept"
|
||
|
||
tb "gopkg.in/lightningtipbot/telebot.v3"
|
||
)
|
||
|
||
func (bot TipBot) makeHelpMessage(ctx context.Context, m *tb.Message) string {
|
||
fromUser := LoadUser(ctx)
|
||
dynamicHelpMessage := ""
|
||
// user has no username set
|
||
if len(m.Sender.Username) == 0 {
|
||
// return fmt.Sprintf(helpMessage, fmt.Sprintf("%s\n\n", helpNoUsernameMessage))
|
||
dynamicHelpMessage = dynamicHelpMessage + "\n" + Translate(ctx, "helpNoUsernameMessage")
|
||
}
|
||
lnaddr, _ := bot.UserGetLightningAddress(fromUser)
|
||
if len(lnaddr) > 0 {
|
||
dynamicHelpMessage = dynamicHelpMessage + "\n" + fmt.Sprintf(Translate(ctx, "infoYourLightningAddress"), lnaddr)
|
||
}
|
||
if len(dynamicHelpMessage) > 0 {
|
||
dynamicHelpMessage = Translate(ctx, "infoHelpMessage") + dynamicHelpMessage
|
||
}
|
||
helpMessage := Translate(ctx, "helpMessage")
|
||
return fmt.Sprintf(helpMessage, dynamicHelpMessage)
|
||
}
|
||
|
||
func (bot TipBot) helpHandler(ctx intercept.Context) (intercept.Context, error) {
|
||
// check and print all commands
|
||
bot.anyTextHandler(ctx)
|
||
if !ctx.Message().Private() {
|
||
// delete message
|
||
bot.tryDeleteMessage(ctx.Message())
|
||
}
|
||
bot.trySendMessage(ctx.Sender(), bot.makeHelpMessage(ctx, ctx.Message()), tb.NoPreview)
|
||
return ctx, nil
|
||
}
|
||
|
||
func (bot TipBot) basicsHandler(ctx intercept.Context) (intercept.Context, error) {
|
||
// check and print all commands
|
||
bot.anyTextHandler(ctx)
|
||
if !ctx.Message().Private() {
|
||
// delete message
|
||
bot.tryDeleteMessage(ctx.Message())
|
||
}
|
||
bot.trySendMessage(ctx.Sender(), Translate(ctx, "basicsMessage"), tb.NoPreview)
|
||
return ctx, nil
|
||
}
|
||
|
||
func (bot TipBot) makeAdvancedHelpMessage(ctx context.Context, m *tb.Message) string {
|
||
fromUser := LoadUser(ctx)
|
||
dynamicHelpMessage := "ℹ️ *Info*\n"
|
||
// user has no username set
|
||
if len(m.Sender.Username) == 0 {
|
||
// return fmt.Sprintf(helpMessage, fmt.Sprintf("%s\n\n", helpNoUsernameMessage))
|
||
dynamicHelpMessage = dynamicHelpMessage + fmt.Sprintf("%s", Translate(ctx, "helpNoUsernameMessage")) + "\n"
|
||
}
|
||
// we print the anonymous ln address in the advanced help
|
||
lnaddr, err := bot.UserGetAnonLightningAddress(fromUser)
|
||
if err == nil {
|
||
dynamicHelpMessage = dynamicHelpMessage + fmt.Sprintf("Anonymous Lightning address: `%s`\n", lnaddr)
|
||
}
|
||
lnurl, err := UserGetAnonLNURL(fromUser)
|
||
if err == nil {
|
||
dynamicHelpMessage = dynamicHelpMessage + fmt.Sprintf("Anonymous LNURL: `%s`", lnurl)
|
||
}
|
||
|
||
// this is so stupid:
|
||
return fmt.Sprintf(
|
||
Translate(ctx, "advancedMessage"),
|
||
dynamicHelpMessage,
|
||
GetUserStr(bot.Telegram.Me),
|
||
)
|
||
}
|
||
|
||
func (bot TipBot) advancedHelpHandler(ctx intercept.Context) (intercept.Context, error) {
|
||
// check and print all commands
|
||
bot.anyTextHandler(ctx)
|
||
if !ctx.Message().Private() {
|
||
// delete message
|
||
bot.tryDeleteMessage(ctx.Message())
|
||
}
|
||
bot.trySendMessage(ctx.Sender(), bot.makeAdvancedHelpMessage(ctx, ctx.Message()), tb.NoPreview)
|
||
return ctx, nil
|
||
}
|