From e24490b05c64e5cc88b2e46db578eb8be088819b Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Tue, 30 Aug 2022 23:38:17 +0200 Subject: [PATCH] error feedback --- internal/telegram/generate.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/telegram/generate.go b/internal/telegram/generate.go index b09a866..6fce3f5 100644 --- a/internal/telegram/generate.go +++ b/internal/telegram/generate.go @@ -118,7 +118,7 @@ func (bot *TipBot) generateDalleImages(event Event) { // handle err if err != nil { log.Errorf("[NewHTTPClient] %v", err.Error()) - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "") return } @@ -128,7 +128,7 @@ func (bot *TipBot) generateDalleImages(event Event) { task, err := dalleClient.Generate(ctx, invoiceEvent.CallbackData) if err != nil { log.Errorf("[Generate] %v", err.Error()) - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "") return } // poll the task.ID until status is succeeded @@ -139,12 +139,12 @@ func (bot *TipBot) generateDalleImages(event Event) { for { select { case <-ctx.Done(): - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "") log.Errorf("[DALLE] ctx done") return // Got a timeout! fail with a timeout error case <-timeout: - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "Timeout. Please try again later.") log.Errorf("[DALLE] timeout") return // Got a tick, we should check on checkSomething() @@ -153,11 +153,11 @@ func (bot *TipBot) generateDalleImages(event Event) { // handle err if err != nil { log.Errorf("[GetTask] %v", err.Error()) - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "") return } if t.Status == dalle.StatusSucceeded { - fmt.Printf("[DALLE] task succeeded for user %s", GetUserStr(user.Telegram)) + log.Infof("[DALLE] task succeeded for user %s", GetUserStr(user.Telegram)) // download the first generated image for _, data := range t.Generations.Data { err = bot.downloadAndSendImages(ctx, dalleClient, data, invoiceEvent) @@ -169,7 +169,7 @@ func (bot *TipBot) generateDalleImages(event Event) { } else if t.Status == dalle.StatusRejected { log.Errorf("[DALLE] rejected: %s", t.ID) - bot.dalleRefundUser(user) + bot.dalleRefundUser(user, "Your prompt has been rejected by OpenAI. Do not use celebrity names, sexual expressions, or any other harmful content as prompt.") return } log.Debugf("[DALLE] pending for user %s", GetUserStr(user.Telegram)) @@ -203,7 +203,7 @@ func (bot *TipBot) downloadAndSendImages(ctx context.Context, dalleClient dalle. return nil } -func (bot *TipBot) dalleRefundUser(user *lnbits.User) error { +func (bot *TipBot) dalleRefundUser(user *lnbits.User, message string) error { if user.Wallet == nil { return fmt.Errorf("user has no wallet") } @@ -231,6 +231,13 @@ func (bot *TipBot) dalleRefundUser(user *lnbits.User) error { return err } log.Warnf("[DALLE] refunding user %s with %d sat", GetUserStr(user.Telegram), internal.Configuration.Generate.DallePrice) - bot.trySendMessage(user.Telegram, "🚫 Something went wrong. You have been refunded.") + + var err_reason string + if len(message) > 0 { + err_reason = message + } else { + err_reason = "Something went wrong." + } + bot.trySendMessage(user.Telegram, fmt.Sprintf("🚫 %s You have been refunded.", err_reason)) return nil }