From 65d74beede3f99d837dd3329d80559a6de493eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E4=B8=AB=E8=AE=B2=E6=A2=B5?= Date: Sun, 5 Mar 2023 14:58:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E7=9A=84=E4=BA=A4=E4=BA=92=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=20(#70)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 19 +++++++++++-------- public/gpt.go | 10 +++++++++- public/public.go | 1 + 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index a709e90c..9dfd6ef6 100644 --- a/main.go +++ b/main.go @@ -110,16 +110,19 @@ func ProcessRequest(rmsg public.ReceiveMsg) error { logger.Warning(fmt.Errorf("send message error: %v", err)) } case "余钝": - rst, err := public.GetBalance() - if err != nil { - logger.Warning(fmt.Errorf("get balance error: %v", err)) - return err + cacheMsg := public.UserService.GetUserMode("system_balance") + if cacheMsg == "" { + rst, err := public.GetBalance() + if err != nil { + logger.Warning(fmt.Errorf("get balance error: %v", err)) + return err + } + t1 := time.Unix(int64(rst.Grants.Data[0].EffectiveAt), 0) + t2 := time.Unix(int64(rst.Grants.Data[0].ExpiresAt), 0) + cacheMsg = fmt.Sprintf("πŸ’΅ 已用: πŸ’²%v\nπŸ’΅ 剩余: πŸ’²%v\n⏳ ζœ‰ζ•ˆζ—Άι—΄: 从 %v 到 %v\n", fmt.Sprintf("%.2f", rst.TotalUsed), fmt.Sprintf("%.2f", rst.TotalAvailable), t1.Format("2006-01-02 15:04:05"), t2.Format("2006-01-02 15:04:05")) } - t1 := time.Unix(int64(rst.Grants.Data[0].EffectiveAt), 0) - t2 := time.Unix(int64(rst.Grants.Data[0].ExpiresAt), 0) - msg := fmt.Sprintf("πŸ’΅ 已用: πŸ’²%v\nπŸ’΅ 剩余: πŸ’²%v\n⏳ ζœ‰ζ•ˆζ—Άι—΄: 从 %v 到 %v\n", fmt.Sprintf("%.2f", rst.TotalUsed), fmt.Sprintf("%.2f", rst.TotalAvailable), t1.Format("2006-01-02 15:04:05"), t2.Format("2006-01-02 15:04:05")) - _, err = rmsg.ReplyText(msg, rmsg.SenderStaffId) + _, err := rmsg.ReplyText(cacheMsg, rmsg.SenderStaffId) if err != nil { logger.Warning(fmt.Errorf("send message error: %v", err)) } diff --git a/public/gpt.go b/public/gpt.go index a1bbcdbb..975d80c2 100644 --- a/public/gpt.go +++ b/public/gpt.go @@ -10,7 +10,10 @@ import ( ) func InitAiCli() *resty.Client { - return resty.New().SetTimeout(30*time.Second).SetHeader("Authorization", fmt.Sprintf("Bearer %s", config.LoadConfig().ApiKey)).SetProxy(config.LoadConfig().HttpProxy) + if config.LoadConfig().HttpProxy != "" { + return resty.New().SetTimeout(30*time.Second).SetHeader("Authorization", fmt.Sprintf("Bearer %s", config.LoadConfig().ApiKey)).SetProxy(config.LoadConfig().HttpProxy).SetRetryCount(3).SetRetryWaitTime(5 * time.Second) + } + return resty.New().SetTimeout(30*time.Second).SetHeader("Authorization", fmt.Sprintf("Bearer %s", config.LoadConfig().ApiKey)).SetRetryCount(3).SetRetryWaitTime(5 * time.Second) } type Billing struct { @@ -42,5 +45,10 @@ func GetBalance() (Billing, error) { if err != nil { return data, err } + t1 := time.Unix(int64(data.Grants.Data[0].EffectiveAt), 0) + t2 := time.Unix(int64(data.Grants.Data[0].ExpiresAt), 0) + msg := fmt.Sprintf("πŸ’΅ 已用: πŸ’²%v\nπŸ’΅ 剩余: πŸ’²%v\n⏳ ζœ‰ζ•ˆζ—Άι—΄: 从 %v 到 %v\n", fmt.Sprintf("%.2f", data.TotalUsed), fmt.Sprintf("%.2f", data.TotalAvailable), t1.Format("2006-01-02 15:04:05"), t2.Format("2006-01-02 15:04:05")) + // ζ”Ύε…₯ηΌ“ε­˜ + UserService.SetUserMode("system_balance", msg) return data, nil } diff --git a/public/public.go b/public/public.go index f592f05a..e76bad50 100644 --- a/public/public.go +++ b/public/public.go @@ -12,6 +12,7 @@ var UserService service.UserServiceInterface func InitSvc() { config.LoadConfig() UserService = service.NewUserService() + _, _ = GetBalance() } func FirstCheck(rmsg ReceiveMsg) bool {