mirror of
https://github.com/ChuckNorrison/LightningTipBot.git
synced 2026-08-13 12:33:14 +02:00
Better longging 1337 (#206)
* speed up tx lock * better logging and lnurl lightning: prefix Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
This commit is contained in:
parent
5414c82339
commit
09d3af411e
20 changed files with 71 additions and 70 deletions
|
|
@ -87,13 +87,13 @@ func (w *Server) receive(writer http.ResponseWriter, request *http.Request) {
|
|||
request.Header.Del("content-length")
|
||||
err := json.NewDecoder(request.Body).Decode(&webhookEvent)
|
||||
if err != nil {
|
||||
log.Errorf("[Webhook] Error decoding request: %s", err)
|
||||
log.Errorf("[Webhook] Error decoding request: %s", err.Error())
|
||||
writer.WriteHeader(400)
|
||||
return
|
||||
}
|
||||
user, err := w.GetUserByWalletId(webhookEvent.WalletID)
|
||||
if err != nil {
|
||||
log.Errorf("[Webhook] Error getting user: %s", err)
|
||||
log.Errorf("[Webhook] Error getting user: %s", err.Error())
|
||||
writer.WriteHeader(400)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ func (w Server) handleLnUrl(writer http.ResponseWriter, request *http.Request) {
|
|||
// check if error was returned from first or second handlers
|
||||
if err != nil {
|
||||
// log the error
|
||||
log.Errorf("[LNURL] %v", err)
|
||||
log.Errorf("[LNURL] %v", err.Error())
|
||||
if response != nil {
|
||||
// there is a valid error response
|
||||
err = writeResponse(writer, response)
|
||||
|
|
@ -161,7 +161,7 @@ func (w Server) serveLNURLpSecond(username string, amount_msat int64, comment st
|
|||
Webhook: w.WebhookServer},
|
||||
w.c)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("[serveLNURLpSecond] Couldn't create invoice: %v", err)
|
||||
err = fmt.Errorf("[serveLNURLpSecond] Couldn't create invoice: %v", err.Error())
|
||||
resp = &lnurl.LNURLPayValues{
|
||||
LNURLResponse: lnurl.LNURLResponse{
|
||||
Status: statusError,
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
package storage
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/eko/gocache/store"
|
||||
gocache "github.com/patrickmn/go-cache"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
|
@ -55,7 +56,6 @@ func (tx *Base) Inactivate(s Storable, db *DB) error {
|
|||
func (tx *Base) Get(s Storable, db *DB) (Storable, error) {
|
||||
cacheTx, err := transactionCache.Get(s.Key())
|
||||
if err != nil {
|
||||
log.Errorf("[Bunt Cache] could not get bunt object: %v", err)
|
||||
err := db.Get(s)
|
||||
if err != nil {
|
||||
return s, err
|
||||
|
|
@ -72,13 +72,13 @@ func (tx *Base) Set(s Storable, db *DB) error {
|
|||
tx.UpdatedAt = time.Now()
|
||||
err := db.Set(s)
|
||||
if err != nil {
|
||||
log.Errorf("[Bunt] could not set object: %v", err)
|
||||
log.Errorf("[Bunt] could not set object: %v", err.Error())
|
||||
return err
|
||||
}
|
||||
log.Tracef("[Bunt] set object %s", s.Key())
|
||||
err = transactionCache.Set(s.Key(), s, &store.Options{Expiration: 5 * time.Minute})
|
||||
if err != nil {
|
||||
log.Errorf("[Bunt Cache] could not set object: %v", err)
|
||||
log.Errorf("[Bunt Cache] could not set object: %v", err.Error())
|
||||
}
|
||||
log.Tracef("[Bunt Cache] set object: %s", s.Key())
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ func (bot TipBot) createFaucet(ctx context.Context, text string, sender *tb.User
|
|||
}
|
||||
// check if fromUser has balance
|
||||
if balance < amount {
|
||||
return nil, errors.New(errors.BalanceToLowError, fmt.Errorf("[faucet] Balance of user %s too low: %v", fromUserStr, err))
|
||||
return nil, errors.New(errors.BalanceToLowError, fmt.Errorf("[faucet] Balance of user %s too low: %v", fromUserStr, err.Error()))
|
||||
}
|
||||
// // check for memo in command
|
||||
memo := GetMemoFromCommand(text, 3)
|
||||
|
|
@ -228,7 +228,7 @@ func (bot TipBot) handleInlineFaucetQuery(ctx context.Context, q *tb.Query) {
|
|||
CacheTime: 1,
|
||||
})
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
log.Errorln(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -239,7 +239,7 @@ func (bot *TipBot) acceptInlineFaucetHandler(ctx context.Context, c *tb.Callback
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
fn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Debugf("[acceptInlineFaucetHandler] %s", err)
|
||||
log.Debugf("[acceptInlineFaucetHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineFaucet := fn.(*InlineFaucet)
|
||||
|
|
@ -295,7 +295,7 @@ func (bot *TipBot) acceptInlineFaucetHandler(ctx context.Context, c *tb.Callback
|
|||
success, err := t.Send()
|
||||
if !success {
|
||||
bot.trySendMessage(from.Telegram, Translate(ctx, "sendErrorMessage"))
|
||||
errMsg := fmt.Sprintf("[faucet] Transaction failed: %s", err)
|
||||
errMsg := fmt.Sprintf("[faucet] Transaction failed: %s", err.Error())
|
||||
log.Warnln(errMsg)
|
||||
// if faucet fails, cancel it:
|
||||
// c.Sender.ID = inlineFaucet.From.Telegram.ID // overwrite the sender of the callback to be the faucet owner
|
||||
|
|
@ -312,7 +312,7 @@ func (bot *TipBot) acceptInlineFaucetHandler(ctx context.Context, c *tb.Callback
|
|||
_, err = bot.Telegram.Send(to.Telegram, fmt.Sprintf(i18n.Translate(to.Telegram.LanguageCode, "inlineFaucetReceivedMessage"), fromUserStrMd, inlineFaucet.PerUserAmount))
|
||||
_, err = bot.Telegram.Send(from.Telegram, fmt.Sprintf(i18n.Translate(from.Telegram.LanguageCode, "inlineFaucetSentMessage"), inlineFaucet.PerUserAmount, toUserStrMd))
|
||||
if err != nil {
|
||||
errmsg := fmt.Errorf("[faucet] Error: Send message to %s: %s", toUserStr, err)
|
||||
errmsg := fmt.Errorf("[faucet] Error: Send message to %s: %s", toUserStr, err.Error())
|
||||
log.Warnln(errmsg)
|
||||
}
|
||||
|
||||
|
|
@ -347,7 +347,7 @@ func (bot *TipBot) cancelInlineFaucet(ctx context.Context, c *tb.Callback, ignor
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
fn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Debugf("[cancelInlineFaucetHandler] %s", err)
|
||||
log.Debugf("[cancelInlineFaucetHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ func (bot TipBot) anyChosenInlineHandler(q *tb.ChosenInlineResult) {
|
|||
inlineObject, err := bot.Cache.Get(q.ResultID)
|
||||
// check error
|
||||
if err != nil {
|
||||
log.Errorf("[anyChosenInlineHandler] could not find inline object in cache. %v", err)
|
||||
log.Errorf("[anyChosenInlineHandler] could not find inline object in cache. %v", err.Error())
|
||||
return
|
||||
}
|
||||
switch inlineObject.(type) {
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ func (bot *TipBot) acceptInlineReceiveHandler(ctx context.Context, c *tb.Callbac
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
rn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[getInlineReceive] %s", err)
|
||||
log.Errorf("[getInlineReceive] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineReceive := rn.(*InlineReceive)
|
||||
|
|
@ -184,7 +184,7 @@ func (bot *TipBot) acceptInlineReceiveHandler(ctx context.Context, c *tb.Callbac
|
|||
|
||||
balance, err := bot.GetUserBalance(from)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[inlineReceive] Error: Could not get user balance: %s", err)
|
||||
errmsg := fmt.Sprintf("[inlineReceive] Error: Could not get user balance: %s", err.Error())
|
||||
log.Warnln(errmsg)
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ func (bot *TipBot) sendInlineReceiveHandler(ctx context.Context, c *tb.Callback)
|
|||
rn, err := tx.Get(tx, bot.Bunt)
|
||||
// immediatelly set intransaction to block duplicate calls
|
||||
if err != nil {
|
||||
// log.Errorf("[getInlineReceive] %s", err)
|
||||
// log.Errorf("[getInlineReceive] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineReceive := rn.(*InlineReceive)
|
||||
|
|
@ -248,7 +248,7 @@ func (bot *TipBot) sendInlineReceiveHandler(ctx context.Context, c *tb.Callback)
|
|||
t.Memo = transactionMemo
|
||||
success, err := t.Send()
|
||||
if !success {
|
||||
errMsg := fmt.Sprintf("[acceptInlineReceiveHandler] Transaction failed: %s", err)
|
||||
errMsg := fmt.Sprintf("[acceptInlineReceiveHandler] Transaction failed: %s", err.Error())
|
||||
log.Errorln(errMsg)
|
||||
bot.tryEditMessage(c.Message, i18n.Translate(inlineReceive.LanguageCode, "inlineReceiveFailedMessage"), &tb.ReplyMarkup{})
|
||||
return
|
||||
|
|
@ -266,7 +266,7 @@ func (bot *TipBot) inlineReceiveInvoice(ctx context.Context, c *tb.Callback, inl
|
|||
}
|
||||
invoice, err := bot.createInvoiceWithEvent(ctx, inlineReceive.To, inlineReceive.Amount, fmt.Sprintf("Pay to %s", GetUserStr(inlineReceive.To.Telegram)), InvoiceCallbackInlineReceive, inlineReceive.ID)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err.Error())
|
||||
bot.tryEditMessage(inlineReceive.Message, Translate(ctx, "errorTryLaterMessage"))
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
|
|
@ -275,7 +275,7 @@ func (bot *TipBot) inlineReceiveInvoice(ctx context.Context, c *tb.Callback, inl
|
|||
// create qr code
|
||||
qr, err := qrcode.Encode(invoice.PaymentRequest, qrcode.Medium, 256)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err.Error())
|
||||
bot.tryEditMessage(inlineReceive.Message, Translate(ctx, "errorTryLaterMessage"))
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
|
|
@ -307,7 +307,7 @@ func (bot *TipBot) finishInlineReceiveHandler(ctx context.Context, c *tb.Callbac
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
rn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[getInlineReceive] %s", err)
|
||||
log.Errorf("[getInlineReceive] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineReceive := rn.(*InlineReceive)
|
||||
|
|
@ -345,7 +345,7 @@ func (bot *TipBot) cancelInlineReceiveHandler(ctx context.Context, c *tb.Callbac
|
|||
// immediatelly set intransaction to block duplicate calls
|
||||
rn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[cancelInlineReceiveHandler] %s", err)
|
||||
log.Errorf("[cancelInlineReceiveHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineReceive := rn.(*InlineReceive)
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ func (bot *TipBot) acceptInlineSendHandler(ctx context.Context, c *tb.Callback)
|
|||
sn, err := tx.Get(tx, bot.Bunt)
|
||||
// immediatelly set intransaction to block duplicate calls
|
||||
if err != nil {
|
||||
// log.Errorf("[acceptInlineSendHandler] %s", err)
|
||||
// log.Errorf("[acceptInlineSendHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineSend := sn.(*InlineSend)
|
||||
|
|
@ -222,7 +222,7 @@ func (bot *TipBot) acceptInlineSendHandler(ctx context.Context, c *tb.Callback)
|
|||
t.Memo = transactionMemo
|
||||
success, err := t.Send()
|
||||
if !success {
|
||||
errMsg := fmt.Sprintf("[sendInline] Transaction failed: %s", err)
|
||||
errMsg := fmt.Sprintf("[sendInline] Transaction failed: %s", err.Error())
|
||||
log.Errorln(errMsg)
|
||||
bot.tryEditMessage(c.Message, i18n.Translate(inlineSend.LanguageCode, "inlineSendFailedMessage"), &tb.ReplyMarkup{})
|
||||
return
|
||||
|
|
@ -255,7 +255,7 @@ func (bot *TipBot) cancelInlineSendHandler(ctx context.Context, c *tb.Callback)
|
|||
// immediatelly set intransaction to block duplicate calls
|
||||
sn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[cancelInlineSendHandler] %s", err)
|
||||
log.Errorf("[cancelInlineSendHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineSend := sn.(*InlineSend)
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ func (bot TipBot) tipjarHandler(ctx context.Context, m *tb.Message) {
|
|||
ctx = bot.mapTipjarLanguage(ctx, m.Text)
|
||||
inlineTipjar, err := bot.makeTipjar(ctx, m, false)
|
||||
if err != nil {
|
||||
log.Errorf("[tipjar] %s", err)
|
||||
log.Errorf("[tipjar] %s", err.Error())
|
||||
return
|
||||
}
|
||||
toUserStr := GetUserStr(m.Sender)
|
||||
|
|
@ -195,7 +195,7 @@ func (bot TipBot) tipjarHandler(ctx context.Context, m *tb.Message) {
|
|||
func (bot TipBot) handleInlineTipjarQuery(ctx context.Context, q *tb.Query) {
|
||||
inlineTipjar, err := bot.makeQueryTipjar(ctx, q, false)
|
||||
if err != nil {
|
||||
// log.Errorf("[tipjar] %s", err)
|
||||
// log.Errorf("[tipjar] %s", err.Error())
|
||||
return
|
||||
}
|
||||
urls := []string{
|
||||
|
|
@ -240,7 +240,7 @@ func (bot *TipBot) acceptInlineTipjarHandler(ctx context.Context, c *tb.Callback
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
fn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
// log.Errorf("[tipjar] %s", err)
|
||||
// log.Errorf("[tipjar] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineTipjar := fn.(*InlineTipjar)
|
||||
|
|
@ -276,7 +276,7 @@ func (bot *TipBot) acceptInlineTipjarHandler(ctx context.Context, c *tb.Callback
|
|||
success, err := t.Send()
|
||||
if !success {
|
||||
bot.trySendMessage(from.Telegram, Translate(ctx, "sendErrorMessage"))
|
||||
errMsg := fmt.Sprintf("[tipjar] Transaction failed: %s", err)
|
||||
errMsg := fmt.Sprintf("[tipjar] Transaction failed: %s", err.Error())
|
||||
log.Errorln(errMsg)
|
||||
return
|
||||
}
|
||||
|
|
@ -337,7 +337,7 @@ func (bot *TipBot) cancelInlineTipjarHandler(ctx context.Context, c *tb.Callback
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
fn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[cancelInlineTipjarHandler] %s", err)
|
||||
log.Errorf("[cancelInlineTipjarHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
inlineTipjar := fn.(*InlineTipjar)
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ func (bot *TipBot) invoiceHandler(ctx context.Context, m *tb.Message) {
|
|||
log.Infof("[/invoice] Creating invoice for %s of %d sat.", userStr, amount)
|
||||
invoice, err := bot.createInvoiceWithEvent(ctx, user, amount, memo, InvoiceCallbackGeneric, "")
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err.Error())
|
||||
bot.tryEditMessage(creatingMsg, Translate(ctx, "errorTryLaterMessage"))
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
|
|
@ -113,7 +113,7 @@ func (bot *TipBot) invoiceHandler(ctx context.Context, m *tb.Message) {
|
|||
// create qr code
|
||||
qr, err := qrcode.Encode(invoice.PaymentRequest, qrcode.Medium, 256)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err.Error())
|
||||
bot.tryEditMessage(creatingMsg, Translate(ctx, "errorTryLaterMessage"))
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
|
|
@ -135,7 +135,7 @@ func (bot *TipBot) createInvoiceWithEvent(ctx context.Context, user *lnbits.User
|
|||
Webhook: internal.Configuration.Lnbits.WebhookServer},
|
||||
bot.Client)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Could not create an invoice: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
return InvoiceEvent{}, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ func (bot *TipBot) lndhubHandler(ctx context.Context, m *tb.Message) {
|
|||
// create qr code
|
||||
qr, err := qrcode.Encode(lndhubUrl, qrcode.Medium, 256)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/invoice] Failed to create QR code for invoice: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ func (bot *TipBot) confirmWithdrawHandler(ctx context.Context, c *tb.Callback) {
|
|||
Webhook: internal.Configuration.Lnbits.WebhookServer},
|
||||
bot.Client)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[lnurlWithdrawHandlerWithdraw] Could not create an invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[lnurlWithdrawHandlerWithdraw] Could not create an invoice: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
bot.editSingleButton(ctx, c.Message, lnurlWithdrawState.Message, i18n.Translate(lnurlWithdrawState.LanguageCode, "errorTryLaterMessage"))
|
||||
return
|
||||
|
|
|
|||
|
|
@ -72,7 +72,8 @@ func (bot *TipBot) lnurlHandler(ctx context.Context, m *tb.Message) {
|
|||
return
|
||||
}
|
||||
|
||||
// assume payment
|
||||
// get rid of the URI prefix
|
||||
lnurlSplit = strings.TrimPrefix(lnurlSplit, "lightning:")
|
||||
// HandleLNURL by fiatjaf/go-lnurl
|
||||
_, params, err := bot.HandleLNURL(lnurlSplit)
|
||||
if err != nil {
|
||||
|
|
@ -140,14 +141,14 @@ func (bot TipBot) lnurlReceiveHandler(ctx context.Context, m *tb.Message) {
|
|||
fromUser := LoadUser(ctx)
|
||||
lnurlEncode, err := UserGetLNURL(fromUser)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[userLnurlHandler] Failed to get LNURL: %s", err)
|
||||
errmsg := fmt.Sprintf("[userLnurlHandler] Failed to get LNURL: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
bot.Telegram.Send(m.Sender, Translate(ctx, "lnurlNoUsernameMessage"))
|
||||
}
|
||||
// create qr code
|
||||
qr, err := qrcode.Encode(lnurlEncode, qrcode.Medium, 256)
|
||||
if err != nil {
|
||||
errmsg := fmt.Sprintf("[userLnurlHandler] Failed to create QR code for LNURL: %s", err)
|
||||
errmsg := fmt.Sprintf("[userLnurlHandler] Failed to create QR code for LNURL: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ func (bot *TipBot) payHandler(ctx context.Context, m *tb.Message) {
|
|||
if err != nil {
|
||||
NewMessage(m, WithDuration(0, bot))
|
||||
bot.trySendMessage(m.Sender, helpPayInvoiceUsage(ctx, Translate(ctx, "invalidInvoiceHelpMessage")))
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not getArgumentFromCommand: %s", err)
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not getArgumentFromCommand: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ func (bot *TipBot) payHandler(ctx context.Context, m *tb.Message) {
|
|||
bolt11, err := decodepay.Decodepay(paymentRequest)
|
||||
if err != nil {
|
||||
bot.trySendMessage(m.Sender, helpPayInvoiceUsage(ctx, Translate(ctx, "invalidInvoiceHelpMessage")))
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not decode invoice: %s", err)
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not decode invoice: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
return
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ func (bot *TipBot) payHandler(ctx context.Context, m *tb.Message) {
|
|||
balance, err := bot.GetUserBalance(user)
|
||||
if err != nil {
|
||||
NewMessage(m, WithDuration(0, bot))
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not get user balance: %s", err)
|
||||
errmsg := fmt.Sprintf("[/pay] Error: Could not get user balance: %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
bot.trySendMessage(m.Sender, Translate(ctx, "errorTryLaterMessage"))
|
||||
return
|
||||
|
|
@ -154,7 +154,7 @@ func (bot *TipBot) confirmPayHandler(ctx context.Context, c *tb.Callback) {
|
|||
sn, err := tx.Get(tx, bot.Bunt)
|
||||
// immediatelly set intransaction to block duplicate calls
|
||||
if err != nil {
|
||||
log.Errorf("[confirmPayHandler] %s", err)
|
||||
log.Errorf("[confirmPayHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
payData := sn.(*PayData)
|
||||
|
|
|
|||
|
|
@ -51,18 +51,18 @@ func (bot *TipBot) photoHandler(ctx context.Context, m *tb.Message) {
|
|||
// get file reader closer from Telegram api
|
||||
reader, err := bot.Telegram.GetFile(m.Photo.MediaFile())
|
||||
if err != nil {
|
||||
log.Errorf("[photoHandler] getfile error: %v\n", err)
|
||||
log.Errorf("[photoHandler] getfile error: %v\n", err.Error())
|
||||
return
|
||||
}
|
||||
// decode to jpeg image
|
||||
img, err := jpeg.Decode(reader)
|
||||
if err != nil {
|
||||
log.Errorf("[photoHandler] image.Decode error: %v\n", err)
|
||||
log.Errorf("[photoHandler] image.Decode error: %v\n", err.Error())
|
||||
return
|
||||
}
|
||||
data, err := TryRecognizeQrCode(img)
|
||||
if err != nil {
|
||||
log.Errorf("[photoHandler] tryRecognizeQrCodes error: %v\n", err)
|
||||
log.Errorf("[photoHandler] tryRecognizeQrCodes error: %v\n", err.Error())
|
||||
bot.trySendMessage(m.Sender, Translate(ctx, "photoQrNotRecognizedMessage"))
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ func (bot *TipBot) confirmSendHandler(ctx context.Context, c *tb.Callback) {
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
sn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[acceptSendHandler] %s", err)
|
||||
log.Errorf("[acceptSendHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
sendData := sn.(*SendData)
|
||||
|
|
@ -269,7 +269,7 @@ func (bot *TipBot) confirmSendHandler(ctx context.Context, c *tb.Callback) {
|
|||
success, err := t.Send()
|
||||
if !success || err != nil {
|
||||
// bot.trySendMessage(c.Sender, sendErrorMessage)
|
||||
errmsg := fmt.Sprintf("[/send] Error: Transaction failed. %s", err)
|
||||
errmsg := fmt.Sprintf("[/send] Error: Transaction failed. %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
bot.tryEditMessage(c.Message, i18n.Translate(sendData.LanguageCode, "sendErrorMessage"), &tb.ReplyMarkup{})
|
||||
return
|
||||
|
|
@ -307,7 +307,7 @@ func (bot *TipBot) cancelSendHandler(ctx context.Context, c *tb.Callback) {
|
|||
defer mutex.UnlockWithContext(ctx, tx.ID)
|
||||
sn, err := tx.Get(tx, bot.Bunt)
|
||||
if err != nil {
|
||||
log.Errorf("[acceptSendHandler] %s", err)
|
||||
log.Errorf("[acceptSendHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -480,7 +480,7 @@ func (bot *TipBot) shopHandler(ctx context.Context, m *tb.Message) {
|
|||
var err error
|
||||
shop, err = bot.getShop(ctx, shopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopHandler] %s", err)
|
||||
log.Errorf("[shopHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
@ -511,7 +511,7 @@ func (bot *TipBot) shopNewItemHandler(ctx context.Context, c *tb.Callback) {
|
|||
user := LoadUser(ctx)
|
||||
shop, err := bot.getShop(ctx, c.Data)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewItemHandler] %s", err)
|
||||
log.Errorf("[shopNewItemHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
if shop.Owner.Telegram.ID != c.Sender.ID {
|
||||
|
|
@ -537,7 +537,7 @@ func (bot *TipBot) shopNewItemHandler(ctx context.Context, c *tb.Callback) {
|
|||
func (bot *TipBot) addShopItem(ctx context.Context, shopId string) (*Shop, ShopItem, error) {
|
||||
shop, err := bot.getShop(ctx, shopId)
|
||||
if err != nil {
|
||||
log.Errorf("[addShopItem] %s", err)
|
||||
log.Errorf("[addShopItem] %s", err.Error())
|
||||
return shop, ShopItem{}, err
|
||||
}
|
||||
user := LoadUser(ctx)
|
||||
|
|
@ -626,7 +626,7 @@ func (bot *TipBot) shopItemAddItemHandler(ctx context.Context, c *tb.Callback) {
|
|||
|
||||
shop, err := bot.getShop(ctx, shopView.ShopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewItemHandler] %s", err)
|
||||
log.Errorf("[shopNewItemHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -656,7 +656,7 @@ func (bot *TipBot) addItemFileHandler(ctx context.Context, m *tb.Message) {
|
|||
|
||||
shop, err := bot.getShop(ctx, shopView.ShopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewItemHandler] %s", err)
|
||||
log.Errorf("[shopNewItemHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -746,7 +746,7 @@ func (bot *TipBot) shopGetItemFilesHandler(ctx context.Context, c *tb.Callback)
|
|||
}
|
||||
shop, err := bot.getShop(ctx, shopView.ShopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewItemHandler] %s", err)
|
||||
log.Errorf("[shopNewItemHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
itemID := c.Data
|
||||
|
|
@ -784,7 +784,7 @@ func (bot *TipBot) shopConfirmBuyHandler(ctx context.Context, c *tb.Callback) {
|
|||
}
|
||||
shop, err := bot.getShop(ctx, shopView.ShopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopConfirmBuyHandler] %s", err)
|
||||
log.Errorf("[shopConfirmBuyHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
itemID := c.Data
|
||||
|
|
@ -812,7 +812,7 @@ func (bot *TipBot) shopConfirmBuyHandler(ctx context.Context, c *tb.Callback) {
|
|||
success, err := t.Send()
|
||||
if !success || err != nil {
|
||||
// bot.trySendMessage(c.Sender, sendErrorMessage)
|
||||
errmsg := fmt.Sprintf("[shop] Error: Transaction failed. %s", err)
|
||||
errmsg := fmt.Sprintf("[shop] Error: Transaction failed. %s", err.Error())
|
||||
log.Errorln(errmsg)
|
||||
bot.trySendMessage(user.Telegram, i18n.Translate(user.Telegram.LanguageCode, "sendErrorMessage"), &tb.ReplyMarkup{})
|
||||
return
|
||||
|
|
@ -841,7 +841,7 @@ func (bot *TipBot) shopSendItemFilesToUser(ctx context.Context, toUser *lnbits.U
|
|||
}
|
||||
shop, err := bot.getShop(ctx, shopView.ShopID)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewItemHandler] %s", err)
|
||||
log.Errorf("[shopNewItemHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
item := shop.Items[itemID]
|
||||
|
|
@ -958,7 +958,7 @@ func (bot *TipBot) shopsHandler(ctx context.Context, m *tb.Message) {
|
|||
if err != nil && user.Telegram.ID == shopOwner.Telegram.ID {
|
||||
shops, err = bot.initUserShops(ctx, user)
|
||||
if err != nil {
|
||||
log.Errorf("[shopsHandler] %s", err)
|
||||
log.Errorf("[shopsHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
@ -973,7 +973,7 @@ func (bot *TipBot) shopsHandler(ctx context.Context, m *tb.Message) {
|
|||
for _, shopId := range shops.Shops {
|
||||
shop, err := bot.getShop(ctx, shopId)
|
||||
if err != nil {
|
||||
log.Errorf("[shopsHandler] %s", err)
|
||||
log.Errorf("[shopsHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
shopTitles += fmt.Sprintf("\n· %s (%d items)", str.MarkdownEscape(shop.Title), len(shop.Items))
|
||||
|
|
@ -1140,7 +1140,7 @@ func (bot *TipBot) shopsDescriptionHandler(ctx context.Context, c *tb.Callback)
|
|||
user := LoadUser(ctx)
|
||||
shops, err := bot.getUserShops(ctx, user)
|
||||
if err != nil {
|
||||
log.Errorf("[shopsDescriptionHandler] %s", err)
|
||||
log.Errorf("[shopsDescriptionHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
SetUserState(user, bot, lnbits.UserEnterShopsDescription, shops.ID)
|
||||
|
|
@ -1152,7 +1152,7 @@ func (bot *TipBot) enterShopsDescriptionHandler(ctx context.Context, m *tb.Messa
|
|||
user := LoadUser(ctx)
|
||||
shops, err := bot.getUserShops(ctx, user)
|
||||
if err != nil {
|
||||
log.Errorf("[enterShopsDescriptionHandler] %s", err)
|
||||
log.Errorf("[enterShopsDescriptionHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
if shops.Owner.Telegram.ID != m.Sender.ID {
|
||||
|
|
@ -1189,7 +1189,7 @@ func (bot *TipBot) shopsResetHandler(ctx context.Context, c *tb.Callback) {
|
|||
user := LoadUser(ctx)
|
||||
shops, err := bot.getUserShops(ctx, user)
|
||||
if err != nil {
|
||||
log.Errorf("[shopsResetHandler] %s", err)
|
||||
log.Errorf("[shopsResetHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
if shops.Owner.Telegram.ID != c.Sender.ID {
|
||||
|
|
@ -1312,7 +1312,7 @@ func (bot *TipBot) shopNewShopHandler(ctx context.Context, c *tb.Callback) {
|
|||
user := LoadUser(ctx)
|
||||
shops, err := bot.getUserShops(ctx, user)
|
||||
if err != nil {
|
||||
log.Errorf("[shopNewShopHandler] %s", err)
|
||||
log.Errorf("[shopNewShopHandler] %s", err.Error())
|
||||
return
|
||||
}
|
||||
if len(shops.Shops) >= shops.MaxShops {
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ func (bot *TipBot) getShop(ctx context.Context, shopId string) (*Shop, error) {
|
|||
// immediatelly set intransaction to block duplicate calls
|
||||
sn, err := tx.Get(tx, bot.ShopBunt)
|
||||
if err != nil {
|
||||
log.Errorf("[getShop] %s", err)
|
||||
log.Errorf("[getShop] %s", err.Error())
|
||||
return &Shop{}, err
|
||||
}
|
||||
shop := sn.(*Shop)
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func (bot TipBot) createWallet(user *lnbits.User) error {
|
|||
internal.Configuration.Lnbits.AdminId,
|
||||
UserStr)
|
||||
if err != nil {
|
||||
errormsg := fmt.Sprintf("[createWallet] Create wallet error: %s", err)
|
||||
errormsg := fmt.Sprintf("[createWallet] Create wallet error: %s", err.Error())
|
||||
log.Errorln(errormsg)
|
||||
return err
|
||||
}
|
||||
|
|
@ -94,7 +94,7 @@ func (bot TipBot) createWallet(user *lnbits.User) error {
|
|||
user.Name = u.Name
|
||||
wallet, err := bot.Client.Wallets(*user)
|
||||
if err != nil {
|
||||
errormsg := fmt.Sprintf("[createWallet] Get wallet error: %s", err)
|
||||
errormsg := fmt.Sprintf("[createWallet] Get wallet error: %s", err.Error())
|
||||
log.Errorln(errormsg)
|
||||
return err
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ func (bot TipBot) createWallet(user *lnbits.User) error {
|
|||
user.CreatedAt = time.Now()
|
||||
err = UpdateUserRecord(user, bot)
|
||||
if err != nil {
|
||||
errormsg := fmt.Sprintf("[createWallet] Update user record error: %s", err)
|
||||
errormsg := fmt.Sprintf("[createWallet] Update user record error: %s", err.Error())
|
||||
log.Errorln(errormsg)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ func (bot *TipBot) tipHandler(ctx context.Context, m *tb.Message) {
|
|||
if !success {
|
||||
NewMessage(m, WithDuration(0, bot))
|
||||
bot.trySendMessage(m.Sender, fmt.Sprintf("%s %s", Translate(ctx, "tipErrorMessage"), err))
|
||||
errMsg := fmt.Sprintf("[/tip] Transaction failed: %s", err)
|
||||
errMsg := fmt.Sprintf("[/tip] Transaction failed: %s", err.Error())
|
||||
log.Warnln(errMsg)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ func IsInvoice(message string) bool {
|
|||
|
||||
func IsLnurl(message string) bool {
|
||||
message = strings.ToLower(message)
|
||||
if strings.HasPrefix(message, "lnurl") {
|
||||
if strings.HasPrefix(message, "lnurl") || strings.HasPrefix(message, "lightning:lnurl") {
|
||||
// string must be a single word
|
||||
if !strings.Contains(message, " ") {
|
||||
return true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue