mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-03-01 01:20:49 +03:00
feat(tgbot): Allow restart core via telegram bot (#2581)
This commit is contained in:
parent
744583b4e7
commit
2ef5ccc2fd
@ -243,7 +243,12 @@ func (t *Tgbot) answerCommand(message *telego.Message, chatId int64, isAdmin boo
|
|||||||
|
|
||||||
command, _, commandArgs := tu.ParseCommand(message.Text)
|
command, _, commandArgs := tu.ParseCommand(message.Text)
|
||||||
|
|
||||||
// Extract the command from the Message.
|
// Helper function to handle unknown commands.
|
||||||
|
handleUnknownCommand := func() {
|
||||||
|
msg += t.I18nBot("tgbot.commands.unknown")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the command.
|
||||||
switch command {
|
switch command {
|
||||||
case "help":
|
case "help":
|
||||||
msg += t.I18nBot("tgbot.commands.help")
|
msg += t.I18nBot("tgbot.commands.help")
|
||||||
@ -266,9 +271,7 @@ func (t *Tgbot) answerCommand(message *telego.Message, chatId int64, isAdmin boo
|
|||||||
if isAdmin {
|
if isAdmin {
|
||||||
t.searchClient(chatId, commandArgs[0])
|
t.searchClient(chatId, commandArgs[0])
|
||||||
} else {
|
} else {
|
||||||
// Convert message.From.ID to int64
|
t.getClientUsage(chatId, int64(message.From.ID), commandArgs[0])
|
||||||
fromID := int64(message.From.ID)
|
|
||||||
t.getClientUsage(chatId, fromID, commandArgs[0])
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
msg += t.I18nBot("tgbot.commands.usage")
|
msg += t.I18nBot("tgbot.commands.usage")
|
||||||
@ -278,21 +281,48 @@ func (t *Tgbot) answerCommand(message *telego.Message, chatId int64, isAdmin boo
|
|||||||
if isAdmin && len(commandArgs) > 0 {
|
if isAdmin && len(commandArgs) > 0 {
|
||||||
t.searchInbound(chatId, commandArgs[0])
|
t.searchInbound(chatId, commandArgs[0])
|
||||||
} else {
|
} else {
|
||||||
msg += t.I18nBot("tgbot.commands.unknown")
|
handleUnknownCommand()
|
||||||
|
}
|
||||||
|
case "restart":
|
||||||
|
onlyMessage = true
|
||||||
|
if isAdmin {
|
||||||
|
if len(commandArgs) == 0 {
|
||||||
|
msg += t.I18nBot("tgbot.commands.restartUsage")
|
||||||
|
} else if strings.ToLower(commandArgs[0]) == "force" {
|
||||||
|
if t.xrayService.IsXrayRunning() {
|
||||||
|
err := t.xrayService.RestartXray(true)
|
||||||
|
if err != nil {
|
||||||
|
msg += t.I18nBot("tgbot.commands.restartFailed", "Error=="+err.Error())
|
||||||
|
} else {
|
||||||
|
msg += t.I18nBot("tgbot.commands.restartSuccess")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
msg += t.I18nBot("tgbot.commands.xrayNotRunning")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
handleUnknownCommand()
|
||||||
|
msg += t.I18nBot("tgbot.commands.restartUsage")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
handleUnknownCommand()
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
msg += t.I18nBot("tgbot.commands.unknown")
|
handleUnknownCommand()
|
||||||
}
|
}
|
||||||
|
|
||||||
if msg != "" {
|
if msg != "" {
|
||||||
|
t.sendResponse(chatId, msg, onlyMessage, isAdmin)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to send the message based on onlyMessage flag.
|
||||||
|
func (t *Tgbot) sendResponse(chatId int64, msg string, onlyMessage, isAdmin bool) {
|
||||||
if onlyMessage {
|
if onlyMessage {
|
||||||
t.SendMsgToTgbot(chatId, msg)
|
t.SendMsgToTgbot(chatId, msg)
|
||||||
return
|
|
||||||
} else {
|
} else {
|
||||||
t.SendAnswer(chatId, msg, isAdmin)
|
t.SendAnswer(chatId, msg, isAdmin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool) {
|
func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool) {
|
||||||
chatId := callbackQuery.Message.GetChat().ID
|
chatId := callbackQuery.Message.GetChat().ID
|
||||||
@ -872,6 +902,7 @@ func (t *Tgbot) SendAnswer(chatId int64, msg string, isAdmin bool) {
|
|||||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.onlines")).WithCallbackData(t.encodeQuery("onlines")),
|
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.onlines")).WithCallbackData(t.encodeQuery("onlines")),
|
||||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.allClients")).WithCallbackData(t.encodeQuery("get_inbounds")),
|
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.allClients")).WithCallbackData(t.encodeQuery("get_inbounds")),
|
||||||
),
|
),
|
||||||
|
// TODOOOOOOOOOOOOOO: Add restart button here.
|
||||||
)
|
)
|
||||||
numericKeyboardClient := tu.InlineKeyboard(
|
numericKeyboardClient := tu.InlineKeyboard(
|
||||||
tu.InlineKeyboardRow(
|
tu.InlineKeyboardRow(
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Bot is OK!"
|
"status" = "✅ Bot is OK!"
|
||||||
"usage" = "❗ Please provide a text to search!"
|
"usage" = "❗ Please provide a text to search!"
|
||||||
"getID" = "🆔 Your ID: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Your ID: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "To search for a client email:\r\n<code>/usage [Email]</code>\r\n\r\nTo search for inbounds (with client stats):\r\n<code>/inbound [Remark]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
"helpAdminCommands" = "To restart Xray Core:\r\n<code>/restart force</code>\r\n\r\nTo search for a client email:\r\n<code>/usage [Email]</code>\r\n\r\nTo search for inbounds (with client stats):\r\n<code>/inbound [Remark]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "To search for statistics, use the following command:\r\n\r\n<code>/usage [Email]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
"helpClientCommands" = "To search for statistics, use the following command:\r\n\r\n<code>/usage [Email]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Operation successful!"
|
||||||
|
"restartFailed" = "❗ Error in operation.\r\n\r\n<code>Error: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core is not running."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 CPU Load {{ .Percent }}% exceeds the threshold of {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 CPU Load {{ .Percent }}% exceeds the threshold of {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ ¡El bot está bien!"
|
"status" = "✅ ¡El bot está bien!"
|
||||||
"usage" = "❗ ¡Por favor proporciona un texto para buscar!"
|
"usage" = "❗ ¡Por favor proporciona un texto para buscar!"
|
||||||
"getID" = "🆔 Tu ID: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Tu ID: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Para buscar un correo electrónico de cliente:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nPara buscar entradas (con estadísticas de cliente):\r\n<code>/inbound [Observación]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Para reiniciar Xray Core:\r\n<code>/restart force</code>\r\n\r\nPara buscar un correo electrónico de cliente:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nPara buscar entradas (con estadísticas de cliente):\r\n<code>/inbound [Observación]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Para buscar estadísticas, utiliza el siguiente comando:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>"
|
"helpClientCommands" = "Para buscar estadísticas, utiliza el siguiente comando:\r\n<code>/usage [Correo electrónico]</code>\r\n\r\nID de Chat de Telegram:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ ¡Operación exitosa!"
|
||||||
|
"restartFailed" = "❗ Error en la operación.\r\n\r\n<code>Error: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core no está en ejecución."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 El uso de CPU {{ .Percent }}% es mayor que el umbral {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 El uso de CPU {{ .Percent }}% es mayor que el umbral {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ ربات در حالت عادی است!"
|
"status" = "✅ ربات در حالت عادی است!"
|
||||||
"usage" = "❗ لطفاً یک متن برای جستجو وارد کنید!"
|
"usage" = "❗ لطفاً یک متن برای جستجو وارد کنید!"
|
||||||
"getID" = "🆔 شناسه شما: <code>{{ .ID }}</code>"
|
"getID" = "🆔 شناسه شما: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "برای جستجوی ایمیل مشتری:\r\n<code>/usage [ایمیل]</code>\r\n\r\nبرای جستجوی ورودیها (با آمار مشتری):\r\n<code>/inbound [توضیحات]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>"
|
"helpAdminCommands" = "برای راهاندازی مجدد Xray Core:\r\n<code>/restart force</code>\r\n\r\nبرای جستجوی ایمیل مشتری:\r\n<code>/usage [ایمیل]</code>\r\n\r\nبرای جستجوی ورودیها (با آمار مشتری):\r\n<code>/inbound [توضیحات]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "برای جستجوی آمار، از دستور زیر استفاده کنید:\r\n<code>/usage [ایمیل]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>"
|
"helpClientCommands" = "برای جستجوی آمار، از دستور زیر استفاده کنید:\r\n<code>/usage [ایمیل]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ عملیات با موفقیت انجام شد!"
|
||||||
|
"restartFailed" = "❗ خطا در عملیات.\r\n\r\n<code>خطا: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core در حال اجرا نیست."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 بار پردازنده {{ .Percent }}% بیشتر از آستانه است {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 بار پردازنده {{ .Percent }}% بیشتر از آستانه است {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Bot dalam keadaan baik!"
|
"status" = "✅ Bot dalam keadaan baik!"
|
||||||
"usage" = "❗ Harap berikan teks untuk mencari!"
|
"usage" = "❗ Harap berikan teks untuk mencari!"
|
||||||
"getID" = "🆔 ID Anda: <code>{{ .ID }}</code>"
|
"getID" = "🆔 ID Anda: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Untuk mencari email klien:\r\n<code>/usage [Email]</code>\r\n\r\nUntuk mencari inbound (dengan statistik klien):\r\n<code>/inbound [Catatan]</code>\r\n\r\nID Obrolan Telegram:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Untuk memulai ulang Xray Core:\r\n<code>/restart force</code>\r\n\r\nUntuk mencari email klien:\r\n<code>/usage [Email]</code>\r\n\r\nUntuk mencari inbound (dengan statistik klien):\r\n<code>/inbound [Catatan]</code>\r\n\r\nID Obrolan Telegram:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Untuk mencari statistik, gunakan perintah berikut:\r\n<code>/usage [Email]</code>\r\n\r\nID Obrolan Telegram:\r\n<code>/id</code>"
|
"helpClientCommands" = "Untuk mencari statistik, gunakan perintah berikut:\r\n<code>/usage [Email]</code>\r\n\r\nID Obrolan Telegram:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Operasi berhasil!"
|
||||||
|
"restartFailed" = "❗ Kesalahan dalam operasi.\r\n\r\n<code>Error: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core tidak berjalan."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 Beban CPU {{ .Percent }}% melebihi batas {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 Beban CPU {{ .Percent }}% melebihi batas {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Bot está OK!"
|
"status" = "✅ Bot está OK!"
|
||||||
"usage" = "❗ Por favor, forneça um texto para pesquisar!"
|
"usage" = "❗ Por favor, forneça um texto para pesquisar!"
|
||||||
"getID" = "🆔 Seu ID: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Seu ID: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Para pesquisar por um email de cliente:\r\n<code>/usage [Email]</code>\r\n\r\nPara pesquisar por inbounds (com estatísticas do cliente):\r\n<code>/inbound [Remark]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Para reiniciar o Xray Core:\r\n<code>/restart force</code>\r\n\r\nPara pesquisar por um email de cliente:\r\n<code>/usage [Email]</code>\r\n\r\nPara pesquisar por inbounds (com estatísticas do cliente):\r\n<code>/inbound [Remark]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Para pesquisar por estatísticas, use o seguinte comando:\r\n\r\n<code>/usage [Email]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
"helpClientCommands" = "Para pesquisar por estatísticas, use o seguinte comando:\r\n\r\n<code>/usage [Email]</code>\r\n\r\nTelegram Chat ID:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Operação bem-sucedida!"
|
||||||
|
"restartFailed" = "❗ Erro na operação.\r\n\r\n<code>Erro: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core não está em execução."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 A carga da CPU {{ .Percent }}% excede o limite de {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 A carga da CPU {{ .Percent }}% excede o limite de {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Бот работает нормально!"
|
"status" = "✅ Бот работает нормально!"
|
||||||
"usage" = "❗ Пожалуйста, укажите текст для поиска!"
|
"usage" = "❗ Пожалуйста, укажите текст для поиска!"
|
||||||
"getID" = "🆔 Ваш ID: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Ваш ID: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Для поиска электронной почты клиента:\r\n<code>/usage [Email]</code>\r\n\r\nДля поиска входящих (со статистикой клиента):\r\n<code>/inbound [Примечание]</code>\r\n\r\nID чата Telegram:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Для перезапуска Xray Core:\r\n<code>/restart force</code>\r\n\r\nДля поиска электронной почты клиента:\r\n<code>/usage [Email]</code>\r\n\r\nДля поиска входящих (со статистикой клиента):\r\n<code>/inbound [Примечание]</code>\r\n\r\nID чата Telegram:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Для поиска статистики используйте следующую команду:\r\n<code>/usage [Email]</code>\r\n\r\nID чата Telegram:\r\n<code>/id</code>"
|
"helpClientCommands" = "Для поиска статистики используйте следующую команду:\r\n<code>/usage [Email]</code>\r\n\r\nID чата Telegram:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Операция успешно завершена!"
|
||||||
|
"restartFailed" = "❗ Ошибка в операции.\r\n\r\n<code>Ошибка: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core не запущен."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 Загрузка процессора составляет {{ .Percent }}%, что превышает пороговое значение {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 Загрузка процессора составляет {{ .Percent }}%, что превышает пороговое значение {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Bot çalışıyor!"
|
"status" = "✅ Bot çalışıyor!"
|
||||||
"usage" = "❗ Lütfen aramak için bir metin sağlayın!"
|
"usage" = "❗ Lütfen aramak için bir metin sağlayın!"
|
||||||
"getID" = "🆔 Kimliğiniz: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Kimliğiniz: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Bir müşteri e-postasını aramak için:\r\n<code>/usage [E-posta]</code>\r\n\r\nGelenleri aramak için (müşteri istatistikleri ile):\r\n<code>/inbound [Açıklama]</code>\r\n\r\nTelegram Sohbet Kimliği:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Xray Core'u yeniden başlatmak için:\r\n<code>/restart force</code>\r\n\r\nBir müşteri e-postasını aramak için:\r\n<code>/usage [E-posta]</code>\r\n\r\nGelenleri aramak için (müşteri istatistikleri ile):\r\n<code>/inbound [Açıklama]</code>\r\n\r\nTelegram Sohbet Kimliği:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "İstatistikleri aramak için şu komutu kullanın:\r\n\r\n<code>/usage [E-posta]</code>\r\n\r\nTelegram Sohbet Kimliği:\r\n<code>/id</code>"
|
"helpClientCommands" = "İstatistikleri aramak için şu komutu kullanın:\r\n\r\n<code>/usage [E-posta]</code>\r\n\r\nTelegram Sohbet Kimliği:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ İşlem başarılı!"
|
||||||
|
"restartFailed" = "❗ İşlem hatası.\r\n\r\n<code>Hata: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core çalışmıyor."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 CPU Yükü {{ .Percent }}% eşiği {{ .Threshold }}%'yi aşıyor"
|
"cpuThreshold" = "🔴 CPU Yükü {{ .Percent }}% eşiği {{ .Threshold }}%'yi aşıyor"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Бот в порядку!"
|
"status" = "✅ Бот в порядку!"
|
||||||
"usage" = "❗ Введіть текст для пошуку!"
|
"usage" = "❗ Введіть текст для пошуку!"
|
||||||
"getID" = "🆔 Ваш ідентифікатор: <code>{{ .ID }}</code>"
|
"getID" = "🆔 Ваш ідентифікатор: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Для пошуку електронної пошти клієнта:\r\n<code>/usage [Електронна пошта]</code>\r\n\r\nДля пошуку вхідних (зі статистикою клієнта):\r\n<code>/inbound [Примітка]</code>\r\n\r\nID чату Telegram:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Для перезапуску Xray Core:\r\n<code>/restart force</code>\r\n\r\nДля пошуку електронної пошти клієнта:\r\n<code>/usage [Електронна пошта]</code>\r\n\r\nДля пошуку вхідних (зі статистикою клієнта):\r\n<code>/inbound [Примітка]</code>\r\n\r\nID чату Telegram:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Для пошуку статистики використовуйте наступну команду:\r\n<code>/usage [Електронна пошта]</code>\r\n\r\nID чату Telegram:\r\n<code>/id</code>"
|
"helpClientCommands" = "Для пошуку статистики використовуйте наступну команду:\r\n<code>/usage [Електронна пошта]</code>\r\n\r\nID чату Telegram:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Операція успішна!"
|
||||||
|
"restartFailed" = "❗ Помилка в операції.\r\n\r\n<code>Помилка: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core не запущений."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 Навантаження ЦП {{ .Percent }}% перевищує порогове значення {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 Навантаження ЦП {{ .Percent }}% перевищує порогове значення {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ Bot hoạt động bình thường!"
|
"status" = "✅ Bot hoạt động bình thường!"
|
||||||
"usage" = "❗ Vui lòng cung cấp văn bản để tìm kiếm!"
|
"usage" = "❗ Vui lòng cung cấp văn bản để tìm kiếm!"
|
||||||
"getID" = "🆔 ID của bạn: <code>{{ .ID }}</code>"
|
"getID" = "🆔 ID của bạn: <code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "Để tìm kiếm email của khách hàng:\r\n<code>/usage [Email]</code>\r\n\r\nĐể tìm kiếm các nhập (với số liệu thống kê của khách hàng):\r\n<code>/inbound [Ghi chú]</code>\r\n\r\nID Trò chuyện Telegram:\r\n<code>/id</code>"
|
"helpAdminCommands" = "Để khởi động lại Xray Core:\r\n<code>/restart force</code>\r\n\r\nĐể tìm kiếm email của khách hàng:\r\n<code>/usage [Email]</code>\r\n\r\nĐể tìm kiếm các nhập (với số liệu thống kê của khách hàng):\r\n<code>/inbound [Ghi chú]</code>\r\n\r\nID Trò chuyện Telegram:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "Để tìm kiếm thống kê, sử dụng lệnh sau:\r\n<code>/usage [Email]</code>\r\n\r\nID Trò chuyện Telegram:\r\n<code>/id</code>"
|
"helpClientCommands" = "Để tìm kiếm thống kê, sử dụng lệnh sau:\r\n<code>/usage [Email]</code>\r\n\r\nID Trò chuyện Telegram:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ Hoạt động thành công!"
|
||||||
|
"restartFailed" = "❗ Lỗi trong quá trình hoạt động.\r\n\r\n<code>Lỗi: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core không chạy."
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 Sử dụng CPU {{ .Percent }}% vượt quá ngưỡng {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 Sử dụng CPU {{ .Percent }}% vượt quá ngưỡng {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ 机器人正常运行!"
|
"status" = "✅ 机器人正常运行!"
|
||||||
"usage" = "❗ 请输入要搜索的文本!"
|
"usage" = "❗ 请输入要搜索的文本!"
|
||||||
"getID" = "🆔 您的 ID 为:<code>{{ .ID }}</code>"
|
"getID" = "🆔 您的 ID 为:<code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "要搜索客户电子邮件:\r\n<code>/usage [电子邮件]</code>\r\n\r\n要搜索入站(带有客户统计数据):\r\n<code>/inbound [备注]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
"helpAdminCommands" = "要重新启动 Xray Core:\r\n<code>/restart force</code>\r\n\r\n要搜索客户电子邮件:\r\n<code>/usage [电子邮件]</code>\r\n\r\n要搜索入站(带有客户统计数据):\r\n<code>/inbound [备注]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "要搜索统计数据,请使用以下命令:\r\n<code>/usage [电子邮件]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
"helpClientCommands" = "要搜索统计数据,请使用以下命令:\r\n<code>/usage [电子邮件]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ 操作成功!"
|
||||||
|
"restartFailed" = "❗ 操作错误。\r\n\r\n<code>错误: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core 未运行。"
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 CPU 使用率为 {{ .Percent }}%,超过阈值 {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 CPU 使用率为 {{ .Percent }}%,超过阈值 {{ .Threshold }}%"
|
||||||
|
@ -483,8 +483,12 @@
|
|||||||
"status" = "✅ 機器人正常執行!"
|
"status" = "✅ 機器人正常執行!"
|
||||||
"usage" = "❗ 請輸入要搜尋的文字!"
|
"usage" = "❗ 請輸入要搜尋的文字!"
|
||||||
"getID" = "🆔 您的 ID 為:<code>{{ .ID }}</code>"
|
"getID" = "🆔 您的 ID 為:<code>{{ .ID }}</code>"
|
||||||
"helpAdminCommands" = "要搜尋客戶電子郵件:\r\n<code>/usage [電子郵件]</code>\r\n\r\n要搜尋入站(帶有客戶統計資料):\r\n<code>/inbound [備註]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
"helpAdminCommands" = "要重新啟動 Xray Core:\r\n<code>/restart force</code>\r\n\r\n要搜尋客戶電子郵件:\r\n<code>/usage [電子郵件]</code>\r\n\r\n要搜尋入站(帶有客戶統計資料):\r\n<code>/inbound [備註]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
||||||
"helpClientCommands" = "要搜尋統計資料,請使用以下命令:\r\n<code>/usage [電子郵件]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
"helpClientCommands" = "要搜尋統計資料,請使用以下命令:\r\n<code>/usage [電子郵件]</code>\r\n\r\nTelegram聊天ID:\r\n<code>/id</code>"
|
||||||
|
"restartUsage" = "\r\n\r\n<code>/restart force</code>"
|
||||||
|
"restartSuccess" = "✅ 操作成功!"
|
||||||
|
"restartFailed" = "❗ 操作錯誤。\r\n\r\n<code>錯誤: {{ .Error }}</code>."
|
||||||
|
"xrayNotRunning" = "❗ Xray Core 未運行。"
|
||||||
|
|
||||||
[tgbot.messages]
|
[tgbot.messages]
|
||||||
"cpuThreshold" = "🔴 CPU 使用率為 {{ .Percent }}%,超過閾值 {{ .Threshold }}%"
|
"cpuThreshold" = "🔴 CPU 使用率為 {{ .Percent }}%,超過閾值 {{ .Threshold }}%"
|
||||||
|
Loading…
Reference in New Issue
Block a user