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