From cb02fd557fdd056bf257f7674be28ee37bccecbb Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sun, 21 Aug 2022 12:52:54 +0200 Subject: [PATCH] sse --- internal/telegram/handler.go | 25 ++++++++++++++++++------ internal/telegram/link.go | 38 ++++++++++++------------------------ translations/de.toml | 13 +++++++++++- translations/en.toml | 12 +++++++++++- 4 files changed, 54 insertions(+), 34 deletions(-) diff --git a/internal/telegram/handler.go b/internal/telegram/handler.go index f14a3f5..3d0c641 100644 --- a/internal/telegram/handler.go +++ b/internal/telegram/handler.go @@ -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, diff --git a/internal/telegram/link.go b/internal/telegram/link.go index 98555c7..64114ac 100644 --- a/internal/telegram/link.go +++ b/internal/telegram/link.go @@ -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 } diff --git a/translations/de.toml b/translations/de.toml index 3c3558c..860a310 100644 --- a/translations/de.toml +++ b/translations/de.toml @@ -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 diff --git a/translations/en.toml b/translations/en.toml index 93a8ff1..19cd7c3 100644 --- a/translations/en.toml +++ b/translations/en.toml @@ -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."""