From 8af08357d08bebdbb7bc56758e4cda0137163512 Mon Sep 17 00:00:00 2001 From: LightningTipBot <88730856+LightningTipBot@users.noreply.github.com> Date: Fri, 10 Sep 2021 10:16:49 +0200 Subject: [PATCH] tooltip factor messages (#59) * tooltip factor messages * init user if not inited --- lnurl.go | 2 +- text.go | 2 +- tooltip.go | 24 ++++++++++++++++-------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lnurl.go b/lnurl.go index 58e4560..3e85537 100644 --- a/lnurl.go +++ b/lnurl.go @@ -27,7 +27,7 @@ const ( lnurlInvalidAmountMessage = "🚫 Invalid amount." lnurlInvalidAmountRangeMessage = "🚫 Amount must be between %d and %d sat." lnurlNoUsernameMessage = "🚫 You need to set a Telegram username to receive via LNURL." - lnurlEnterAmountMessage = "Please enter an amount." + lnurlEnterAmountMessage = "āŒØļø Please enter an amount." lnurlHelpText = "šŸ“– Oops, that didn't work. %s\n\n" + "*Usage:* `/lnurl [amount] `\n" + "*Example:* `/lnurl LNURL1DP68GUR...`" diff --git a/text.go b/text.go index de687f7..70a8e25 100644 --- a/text.go +++ b/text.go @@ -22,7 +22,7 @@ func (bot TipBot) anyTextHandler(m *tb.Message) { // check if user is in database, if not, initialize wallet user, exists := bot.UserExists(m.Sender) - if !exists { + if !exists || !user.Initialized { bot.startHandler(m) return } diff --git a/tooltip.go b/tooltip.go index eff6ef1..73c57a6 100644 --- a/tooltip.go +++ b/tooltip.go @@ -17,6 +17,14 @@ import ( tb "gopkg.in/tucnak/telebot.v2" ) +const ( + tooltipChatWithBotMessage = "šŸ—‘ Chat with %s šŸ‘ˆ to manage your wallet." + tooltipAndOthersMessage = " ... and others" + tooltipMultipleTipsMessage = "%s (%d tips by %s)" + tooltipSingleTipMessage = "%s (by %s)" + tooltipTipAmountMessage = "šŸ… %d sat" +) + type TipTooltip struct { Message TipAmount int `json:"tip_amount"` @@ -57,15 +65,15 @@ func NewTipTooltip(m *tb.Message, opts ...TipTooltipOption) *TipTooltip { // getUpdatedTipTooltipMessage will return the full tip tool tip func (ttt TipTooltip) getUpdatedTipTooltipMessage(botUserName string, notInitializedWallet bool) string { tippersStr := getTippersString(ttt.Tippers) - tipToolTipMessage := fmt.Sprintf("šŸ… %d sat", ttt.TipAmount) + tipToolTipMessage := fmt.Sprintf(tooltipTipAmountMessage, ttt.TipAmount) if len(ttt.Tippers) > 1 { - tipToolTipMessage = fmt.Sprintf("%s (%d tips by %s)", tipToolTipMessage, ttt.Ntips, tippersStr) + tipToolTipMessage = fmt.Sprintf(tooltipMultipleTipsMessage, tipToolTipMessage, ttt.Ntips, tippersStr) } else { - tipToolTipMessage = fmt.Sprintf("%s (by %s)", tipToolTipMessage, tippersStr) + tipToolTipMessage = fmt.Sprintf(tooltipSingleTipMessage, tipToolTipMessage, tippersStr) } if notInitializedWallet { - tipToolTipMessage = tipToolTipMessage + fmt.Sprintf("\nšŸ—‘ Chat with %s to manage your wallet.", botUserName) + tipToolTipMessage = tipToolTipMessage + fmt.Sprintf("\n%s", fmt.Sprintf(tooltipChatWithBotMessage, botUserName)) } return tipToolTipMessage } @@ -86,7 +94,7 @@ func getTippersString(tippers []*tb.User) string { if len(tippersSlice) > maxNamesInTipperMessage { // tippersStr = tippersStr[:50] tippersStr = strings.Join(tippersSlice[:maxNamesInTipperMessage], " ") - tippersStr = tippersStr + " ... and others" + tippersStr = tippersStr + tooltipAndOthersMessage } return tippersStr } @@ -115,12 +123,12 @@ func tipTooltipHandler(m *tb.Message, bot *TipBot, amount int, initializedWallet return false } } else { - tipmsg := fmt.Sprintf("šŸ… %d sat", amount) + tipmsg := fmt.Sprintf(tooltipTipAmountMessage, amount) userStr := GetUserStrMd(m.Sender) - tipmsg = fmt.Sprintf("%s (by %s)", tipmsg, userStr) + tipmsg = fmt.Sprintf(tooltipSingleTipMessage, tipmsg, userStr) if !initializedWallet { - tipmsg = tipmsg + fmt.Sprintf("\nšŸ—‘ Chat with %s to manage your wallet.", GetUserStrMd(bot.telegram.Me)) + tipmsg = tipmsg + fmt.Sprintf("\n%s", fmt.Sprintf(tooltipChatWithBotMessage, GetUserStrMd(bot.telegram.Me))) } msg, err := bot.telegram.Reply(m.ReplyTo, tipmsg, tb.Silent) if err != nil {