This commit is contained in:
callebtc 2022-08-21 12:52:54 +02:00
parent ac9cc644eb
commit cb02fd557f
4 changed files with 54 additions and 34 deletions

View file

@ -321,7 +321,6 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/tipjar", "/spendendose"},
Handler: bot.tipjarHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.localizerInterceptor,
bot.logMessageInterceptor,
@ -337,7 +336,6 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/help", &btnHelpMainMenu},
Handler: bot.helpHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.localizerInterceptor,
bot.logMessageInterceptor,
@ -385,8 +383,8 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/advanced"},
Handler: bot.advancedHelpHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.requirePrivateChatInterceptor,
bot.localizerInterceptor,
bot.logMessageInterceptor,
bot.requireUserInterceptor,
@ -401,8 +399,24 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/link"},
Handler: bot.lndhubHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.requirePrivateChatInterceptor,
bot.localizerInterceptor,
bot.logMessageInterceptor,
bot.requireUserInterceptor,
bot.lockInterceptor,
},
OnDefer: []intercept.Func{
bot.unlockInterceptor,
},
},
},
{
Endpoints: []interface{}{"/api"},
Handler: bot.apiHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.requirePrivateChatInterceptor,
bot.localizerInterceptor,
bot.logMessageInterceptor,
bot.requireUserInterceptor,
@ -417,8 +431,8 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/lnurl"},
Handler: bot.lnurlHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.requirePrivateChatInterceptor,
bot.localizerInterceptor,
bot.logMessageInterceptor,
bot.requireUserInterceptor,
@ -434,7 +448,6 @@ func (bot TipBot) getHandler() []InterceptionWrapper {
Endpoints: []interface{}{"/group"},
Handler: bot.groupHandler,
Interceptor: &Interceptor{
Before: []intercept.Func{
bot.localizerInterceptor,
bot.logMessageInterceptor,

View file

@ -20,22 +20,9 @@ func (bot *TipBot) lndhubHandler(ctx intercept.Context) (intercept.Context, erro
bot.trySendMessage(m.Sender, Translate(ctx, "couldNotLinkMessage"))
return ctx, fmt.Errorf("invalid configuration")
}
// check and print all commands
bot.anyTextHandler(ctx)
// reply only in private message
if m.Chat.Type != tb.ChatPrivate {
// delete message
bot.tryDeleteMessage(m)
}
// first check whether the user is initialized
fromUser := LoadUser(ctx)
bot.trySendMessage(m.Sender, Translate(ctx, "walletConnectMessage"))
// do not respond to banned users
if bot.UserIsBanned(fromUser) {
log.Warnln("[lndhubHandler] user is banned. not responding.")
return ctx, fmt.Errorf("user is banned")
}
linkmsg := bot.trySendMessageEditable(m.Sender, Translate(ctx, "walletConnectMessage"))
lndhubUrl := fmt.Sprintf("lndhub://admin:%s@%slndhub/ext/", fromUser.Wallet.Adminkey, internal.Configuration.Lnbits.LnbitsPublicUrl)
@ -48,25 +35,24 @@ func (bot *TipBot) lndhubHandler(ctx intercept.Context) (intercept.Context, erro
}
// send the link to the user
linkmsg := bot.trySendMessage(m.Sender, &tb.Photo{File: tb.File{FileReader: bytes.NewReader(qr)}, Caption: fmt.Sprintf("`%s`", lndhubUrl)})
qrmsg := bot.trySendMessage(m.Sender, &tb.Photo{File: tb.File{FileReader: bytes.NewReader(qr)}, Caption: fmt.Sprintf("`%s`", lndhubUrl)})
// auto delete
go func() {
time.Sleep(time.Second * 60)
bot.tryDeleteMessage(linkmsg)
bot.trySendMessage(m.Sender, Translate(ctx, "linkHiddenMessage"), tb.Silent)
bot.tryDeleteMessage(qrmsg)
bot.tryEditMessage(linkmsg, Translate(ctx, "linkHiddenMessage"), tb.Silent)
}()
// auto delete the message
// NewMessage(linkmsg, WithDuration(time.Second*time.Duration(internal.Configuration.Telegram.MessageDisposeDuration), bot))
return ctx, nil
}
func (bot *TipBot) apiHandler(ctx intercept.Context) (intercept.Context, error) {
m := ctx.Message()
if internal.Configuration.Lnbits.LnbitsPublicUrl == "" {
bot.trySendMessage(m.Sender, Translate(ctx, "couldNotLinkMessage"))
return ctx, fmt.Errorf("invalid configuration")
}
// check and print all commands
bot.anyTextHandler(ctx)
fromUser := LoadUser(ctx)
apimesg := bot.trySendMessageEditable(m.Sender, fmt.Sprintf(Translate(ctx, "apiConnectMessage"), fromUser.Wallet.Adminkey, fromUser.Wallet.Inkey))
// auto delete
go func() {
time.Sleep(time.Second * 60)
bot.tryEditMessage(apimesg, Translate(ctx, "apiHiddenMessage"))
}()
return ctx, nil
}

View file

@ -260,11 +260,22 @@ lnurlWithdrawSuccess = """✅ Abhebung angefordert."""
walletConnectMessage = """🔗 *Verbinde dein Wallet*
Teile diese URL und den QR code mit niemandem! Jeder, der darauf Zugriff hat, hat auch Zugriff auf dein Konto.
Teile diese URL und den QR code mit niemandem! Jeder, der darauf Zugriff hat, hat auch Zugriff auf dein Konto. Nutze /api für deine API keys.
- *BlueWallet:* Drücke *New wallet*, *Import wallet*, *Scan or import a file*, und scanne den QR Code.
- *Zeus:* Kopiere die URL unten, drücke *Add a new node*, *Import* (die URL), *Save Node Config*."""
couldNotLinkMessage = """🚫 Konnte dein Wallet nicht verbinden. Bitte versuche es später noch einmal."""
linkHiddenMessage = """🔍 Link versteckt. Gebe /link ein um ihn wieder zu sehen."""
# API
walletConnectMessage = """🔗 *Deine API Keys*
Teile diese Key mit niemandem! Jeder, der darauf Zugriff hat, hat auch Zugriff auf dein Konto. Nutze /link um dein Wallet zu verbinden.
- *Admin key:* `%s`
- *Invoice key:* `%s`"""
apiHiddenMessage = """🔍 Keys versteckt. Gebe /api ein um sie wieder zu sehen."""
# FAUCET

View file

@ -264,13 +264,23 @@ lnurlWithdrawSuccess = """✅ Withdrawal requested."""
walletConnectMessage = """🔗 *Link your wallet*
Never share the URL or the QR code with anyone or they will be able to access your funds.
Never share the URL or the QR code with anyone or they will be able to access your funds. Use /api for your API keys.
- *BlueWallet:* Press *New wallet*, *Import wallet*, *Scan or import a file*, and scan the QR code.
- *Zeus:* Copy the URL below, press *Add a new node*, select *LNDHub* as Node interface, enter the URL, *Save Node Config*."""
couldNotLinkMessage = """🚫 Couldn't link your wallet. Please try again later."""
linkHiddenMessage = """🔍 Link hidden. Enter /link to see it again."""
# API
apiConnectMessage = """🔗 *Your API keys*
Never share these keys with anyone or they will be able to access your funds. Use /link to link your wallet.
- *Admin key:* `%s`
- *Invoice key:* `%s`"""
apiHiddenMessage = """🔍 Keys hidden. Enter /api to see them again."""
# FAUCET
inlineQueryFaucetTitle = """🚰 Create a faucet."""