diff --git a/web/service/tgbot.go b/web/service/tgbot.go index 5189dc13..dc99a24d 100644 --- a/web/service/tgbot.go +++ b/web/service/tgbot.go @@ -2,10 +2,10 @@ package service import ( "crypto/rand" - "math/big" "embed" "errors" "fmt" + "math/big" "net" "net/url" "os" @@ -919,6 +919,19 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool } t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.answers.chooseClient", "Inbound=="+inbound.Remark), clients) case "add_client_to": + // assign default values to clients variables + client_Id = uuid.New().String() + client_Flow = "" + client_Email = t.randomLowerAndNum(8) + client_LimitIP = 0 + client_TotalGB = 0 + client_ExpiryTime = 0 + client_Enable = true + client_TgID = "" + client_SubID = t.randomLowerAndNum(16) + client_Comment = "" + client_Reset = 0 + inboundId := dataArray[1] inboundIdInt, err := strconv.Atoi(inboundId) if err != nil { @@ -990,17 +1003,17 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.commands.helpAdminCommands")) case "add_client": // assign default values to clients variables - client_Id = uuid.New().String() // button + client_Id = uuid.New().String() client_Flow = "" - client_Email = t.randomLowerAndNum(8) // button + client_Email = t.randomLowerAndNum(8) client_LimitIP = 0 client_TotalGB = 0 client_ExpiryTime = 0 - client_Enable = true // button + client_Enable = true client_TgID = "" client_SubID = t.randomLowerAndNum(16) - client_Comment = "" // button - client_Reset = 0 // button + client_Comment = "" + client_Reset = 0 inbounds, err := t.getInboundsAddClient() if err != nil { @@ -1054,9 +1067,54 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool case "add_client_cancel": delete(userStates, chatId) t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.cancel"), tu.ReplyKeyboardRemove()) + case "add_client_submit_enable": + inboundService := &InboundService{} + _, err := inboundService.SubmitAddClient() + if err != nil { + errorMessage := fmt.Sprintf("%v", err) + t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.error_add_client", "error=="+errorMessage), tu.ReplyKeyboardRemove()) + } else { + t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.success_add_client"), tu.ReplyKeyboardRemove()) + } + case "add_client_submit_disable": + client_Enable = false + inboundService := &InboundService{} + _, err := inboundService.SubmitAddClient() + if err != nil { + errorMessage := fmt.Sprintf("%v", err) + t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.error_add_client", "error=="+errorMessage), tu.ReplyKeyboardRemove()) + } else { + t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.success_add_client"), tu.ReplyKeyboardRemove()) + } } } + +func (s *InboundService) SubmitAddClient() (bool, error) { + jsonString := fmt.Sprintf(`{"clients": [{ + "id": "%s", + "flow": "%s", + "email": "%s", + "limitIp": %d, + "totalGB": %d, + "expiryTime": %d, + "enable": %t, + "tgId": "%s", + "subId": "%s", + "comment": "%s", + "reset": %d +}]}`, client_Id, client_Flow, client_Email, client_LimitIP, client_TotalGB, client_ExpiryTime, client_Enable, client_TgID, client_SubID, client_Comment, client_Reset) + + + newInbound := &model.Inbound{ + Id: receiver_inbound_ID, + Settings: jsonString, + } + + + return s.AddInboundClient(newInbound) +} + func checkAdmin(tgId int64) bool { for _, adminId := range adminIds { if adminId == tgId { diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index 96b6b8a9..ae4974dc 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Inbound: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Comment: {{ .ClientComment }}\n\nYou can add the client to inbound now!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Comment: {{ .ClientComment }}\n\nYou can add the client to inbound now!" "cancel" = "❌ Process Canceled! \n\nYou can /start again anytime. 🔄" +"error_add_client" = "⚠️ Error:\n\n {{ .error }}" +"success_add_client" = "🏆 Success! You can now modify it using the 'All Clients' inline button." [tgbot.buttons] "closeKeyboard" = "❌ Close Keyboard" diff --git a/web/translation/translate.es_ES.toml b/web/translation/translate.es_ES.toml index b9081d90..64b813ce 100644 --- a/web/translation/translate.es_ES.toml +++ b/web/translation/translate.es_ES.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Entrada: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Correo: {{ .ClientEmail }}\n💬 Comentario: {{ .ClientComment }}\n\n¡Puedes añadir el cliente a la entrada ahora!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Correo: {{ .ClientEmail }}\n💬 Comentario: {{ .ClientComment }}\n\n¡Puedes añadir el cliente a la entrada ahora!" "cancel" = "❌ ¡Proceso cancelado! \n\nPuedes /start de nuevo en cualquier momento. 🔄" +"error_add_client" = "⚠️ Error:\n\n {{ .error }}" +"success_add_client" = "🏆 ¡Éxito! Ahora puedes modificarlo usando el botón en línea 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Cerrar Teclado" diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml index 75057f07..0dee6dc3 100644 --- a/web/translation/translate.fa_IR.toml +++ b/web/translation/translate.fa_IR.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 ورودی: {{ .InboundRemark }}\n\n🔑 شناسه: {{ .ClientId }}\n📧 ایمیل: {{ .ClientEmail }}\n💬 کامنت: {{ .ClientComment }}\n\nهم‌اکنون می‌توانید مشتری را به ورودی اضافه کنید!" "client_data" = "🔑 شناسه: {{ .ClientId }}\n📧 ایمیل: {{ .ClientEmail }}\n💬 کامنت: {{ .ClientComment }}\n\nهم‌اکنون می‌توانید مشتری را به ورودی اضافه کنید!" "cancel" = "❌ فرآیند لغو شد! \n\nشما می‌توانید هر زمان دوباره /start کنید. 🔄" +"error_add_client" = "⚠️ خطا:\n\n {{ .error }}" +"success_add_client" = "🏆 موفقیت! اکنون می‌توانید آن را با استفاده از دکمه 'All Clients' تغییر دهید." [tgbot.buttons] "closeKeyboard" = "❌ بستن کیبورد" diff --git a/web/translation/translate.id_ID.toml b/web/translation/translate.id_ID.toml index 84e8fb22..70fb9c46 100644 --- a/web/translation/translate.id_ID.toml +++ b/web/translation/translate.id_ID.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Masuk: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Komentar: {{ .ClientComment }}\n\nSekarang Anda bisa menambahkan klien ke inbound!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Komentar: {{ .ClientComment }}\n\nSekarang Anda bisa menambahkan klien ke inbound!" "cancel" = "❌ Proses dibatalkan! \n\nAnda bisa /start lagi kapan saja. 🔄" +"error_add_client" = "⚠️ Kesalahan:\n\n {{ .error }}" +"success_add_client" = "🏆 Sukses! Sekarang Anda dapat mengubahnya menggunakan tombol 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Tutup Papan Ketik" diff --git a/web/translation/translate.ja_JP.toml b/web/translation/translate.ja_JP.toml index 102ea429..f70790e1 100644 --- a/web/translation/translate.ja_JP.toml +++ b/web/translation/translate.ja_JP.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 受信データ: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 メール: {{ .ClientEmail }}\n💬 コメント: {{ .ClientComment }}\n\nクライアントを受信リストに追加できます!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 メール: {{ .ClientEmail }}\n💬 コメント: {{ .ClientComment }}\n\nクライアントを受信リストに追加できます!" "cancel" = "❌ 処理がキャンセルされました! \n\nいつでも/startでやり直せます。 🔄" +"error_add_client" = "⚠️ エラー:\n\n {{ .error }}" +"success_add_client" = "🏆 成功!「All Clients」ボタンを使って変更できます。" [tgbot.buttons] "closeKeyboard" = "❌ キーボードを閉じる" diff --git a/web/translation/translate.pt_BR.toml b/web/translation/translate.pt_BR.toml index f3a2bb9f..3365bd40 100644 --- a/web/translation/translate.pt_BR.toml +++ b/web/translation/translate.pt_BR.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Entrada: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 E-mail: {{ .ClientEmail }}\n💬 Comentário: {{ .ClientComment }}\n\nVocê pode adicionar o cliente à entrada agora!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 E-mail: {{ .ClientEmail }}\n💬 Comentário: {{ .ClientComment }}\n\nVocê pode adicionar o cliente à entrada agora!" "cancel" = "❌ Processo cancelado! \n\nVocê pode /start novamente a qualquer momento. 🔄" +"error_add_client" = "⚠️ Erro:\n\n {{ .error }}" +"success_add_client" = "🏆 Sucesso! Agora você pode modificá-lo usando o botão 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Fechar teclado" diff --git a/web/translation/translate.ru_RU.toml b/web/translation/translate.ru_RU.toml index 4cd2abe3..59366148 100644 --- a/web/translation/translate.ru_RU.toml +++ b/web/translation/translate.ru_RU.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Входящие: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в входящие!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в входящие!" "cancel" = "❌ Процесс отменен! \n\nВы можете снова запустить /start в любое время. 🔄" +"error_add_client" = "⚠️ Ошибка:\n\n {{ .error }}" +"success_add_client" = "🏆 Успех! Теперь вы можете изменить его с помощью кнопки 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Закрыть клавиатуру" diff --git a/web/translation/translate.tr_TR.toml b/web/translation/translate.tr_TR.toml index e5ee0a95..3e0fdc12 100644 --- a/web/translation/translate.tr_TR.toml +++ b/web/translation/translate.tr_TR.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Giriş: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 E-posta: {{ .ClientEmail }}\n💬 Yorum: {{ .ClientComment }}\n\nŞimdi müşteri girişine ekleyebilirsiniz!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 E-posta: {{ .ClientEmail }}\n💬 Yorum: {{ .ClientComment }}\n\nŞimdi müşteri girişine ekleyebilirsiniz!" "cancel" = "❌ İşlem iptal edildi! \n\nİstediğiniz zaman /start komutunu tekrar verebilirsiniz. 🔄" +"error_add_client" = "⚠️ Hata:\n\n {{ .error }}" +"success_add_client" = "🏆 Başarılı! Şimdi 'All Clients' düğmesini kullanarak düzenleyebilirsiniz." [tgbot.buttons] "closeKeyboard" = "❌ Klavyeyi Kapat" diff --git a/web/translation/translate.uk_UA.toml b/web/translation/translate.uk_UA.toml index c3d66b54..66b5217c 100644 --- a/web/translation/translate.uk_UA.toml +++ b/web/translation/translate.uk_UA.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Вхідні дані: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Коментар: {{ .ClientComment }}\n\nЗараз ви можете додати клієнта до вхідних!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Коментар: {{ .ClientComment }}\n\nЗараз ви можете додати клієнта до вхідних!" "cancel" = "❌ Процес скасовано! \n\nВи можете /start знову в будь-який час. 🔄" +"error_add_client" = "⚠️ Помилка:\n\n {{ .error }}" +"success_add_client" = "🏆 Успіх! Тепер ви можете змінити його за допомогою кнопки 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Закрити клавіатуру" diff --git a/web/translation/translate.vi_VN.toml b/web/translation/translate.vi_VN.toml index 2b450ab3..5131c9f8 100644 --- a/web/translation/translate.vi_VN.toml +++ b/web/translation/translate.vi_VN.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 Dữ liệu đến: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Bình luận: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào danh sách đến!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n💬 Bình luận: {{ .ClientComment }}\n\nBây giờ bạn có thể thêm khách hàng vào danh sách đến!" "cancel" = "❌ Quá trình bị hủy! \n\nBạn có thể /start lại bất cứ lúc nào. 🔄" +"error_add_client" = "⚠️ Lỗi:\n\n {{ .error }}" +"success_add_client" = "🏆 Thành công! Bây giờ bạn có thể chỉnh sửa nó bằng nút 'All Clients'." [tgbot.buttons] "closeKeyboard" = "❌ Đóng Bàn Phím" diff --git a/web/translation/translate.zh_CN.toml b/web/translation/translate.zh_CN.toml index dd60be9e..d56fd43e 100644 --- a/web/translation/translate.zh_CN.toml +++ b/web/translation/translate.zh_CN.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 入站数据: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 邮件: {{ .ClientEmail }}\n💬 评论: {{ .ClientComment }}\n\n现在您可以将客户添加到入站!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 邮件: {{ .ClientEmail }}\n💬 评论: {{ .ClientComment }}\n\n现在您可以将客户添加到入站!" "cancel" = "❌ 过程已取消! \n\n您可以随时 /start 重新开始。 🔄" +"error_add_client" = "⚠️ 错误:\n\n {{ .error }}" +"success_add_client" = "🏆 成功!现在您可以使用“All Clients”按钮进行修改。" [tgbot.buttons] "closeKeyboard" = "❌ 关闭键盘" diff --git a/web/translation/translate.zh_TW.toml b/web/translation/translate.zh_TW.toml index 8dd8d96c..2938c7c8 100644 --- a/web/translation/translate.zh_TW.toml +++ b/web/translation/translate.zh_TW.toml @@ -581,6 +581,8 @@ "inbound_client_data" = "🔄 進站數據: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 電子郵件: {{ .ClientEmail }}\n💬 評論: {{ .ClientComment }}\n\n您現在可以將客戶加入進站!" "client_data" = "🔑 ID: {{ .ClientId }}\n📧 電子郵件: {{ .ClientEmail }}\n💬 評論: {{ .ClientComment }}\n\n您現在可以將客戶加入進站!" "cancel" = "❌ 處理已取消! \n\n您隨時可以 /start 再次開始。 🔄" +"error_add_client" = "⚠️ 錯誤:\n\n {{ .error }}" +"success_add_client" = "🏆 成功!現在您可以使用「All Clients」按鈕進行修改。" [tgbot.buttons] "closeKeyboard" = "❌ 關閉鍵盤"