mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 21:42:24 +00:00
feat: complete submission process for adding a client to inbounds
This commit is contained in:
parent
ae0b98c87e
commit
698c1be3bb
13 changed files with 88 additions and 6 deletions
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" = "❌ بستن کیبورد"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" = "❌ キーボードを閉じる"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" = "❌ Закрыть клавиатуру"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" = "❌ Закрити клавіатуру"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" = "❌ 关闭键盘"
|
||||
|
|
|
@ -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" = "❌ 關閉鍵盤"
|
||||
|
|
Loading…
Reference in a new issue