diff --git a/web/service/tgbot.go b/web/service/tgbot.go index 7bfdcc48..c45b962e 100644 --- a/web/service/tgbot.go +++ b/web/service/tgbot.go @@ -134,9 +134,12 @@ func (t *Tgbot) OnReceive() { } func (t *Tgbot) answerCommand(message *tgbotapi.Message, chatId int64, isAdmin bool) { - msg := "" + msg, onlyMessage := "", false + + command, commandArgs := message.Command(), message.CommandArguments() + // Extract the command from the Message. - switch message.Command() { + switch command { case "help": msg += t.I18nBot("tgbot.commands.help") msg += t.I18nBot("tgbot.commands.pleaseChoose") @@ -147,26 +150,37 @@ func (t *Tgbot) answerCommand(message *tgbotapi.Message, chatId int64, isAdmin b } msg += "\n\n" + t.I18nBot("tgbot.commands.pleaseChoose") case "status": + onlyMessage = true msg += t.I18nBot("tgbot.commands.status") + case "id": + onlyMessage = true + msg += t.I18nBot("tgbot.commands.getID", "ID=="+strconv.FormatInt(message.From.ID, 10)) case "usage": - if len(message.CommandArguments()) > 1 { + onlyMessage = true + if len(commandArgs) > 1 { if isAdmin { - t.searchClient(chatId, message.CommandArguments()) + t.searchClient(chatId, commandArgs) } else { - t.searchForClient(chatId, message.CommandArguments()) + t.searchForClient(chatId, commandArgs) } } else { msg += t.I18nBot("tgbot.commands.usage") } case "inbound": + onlyMessage = true if isAdmin { - t.searchInbound(chatId, message.CommandArguments()) + t.searchInbound(chatId, commandArgs) } else { msg += t.I18nBot("tgbot.commands.unknown") } default: msg += t.I18nBot("tgbot.commands.unknown") } + + if onlyMessage { + t.SendMsgToTgbot(chatId, msg) + return + } t.SendAnswer(chatId, msg, isAdmin) } @@ -239,6 +253,7 @@ func (t *Tgbot) SendMsgToTgbot(tgid int64, msg string, replyMarkup ...tgbotapi.I if !isRunning { return } + if msg == "" { logger.Info("[tgbot] message is empty!") return diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index 9ccc7110..2d13b724 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -160,7 +160,7 @@ "email" = "Email" "emailDesc" = "Please provide a unique email address." "setDefaultCert" = "Set cert from panel" -"telegramDesc" = "use Telegram ID without @ or chat IDs ( you can get it here @userinfobot )" +"telegramDesc" = "use Telegram ID without @ or chat IDs ( you can get it here @userinfobot or use '/id' command in bot )" "subscriptionDesc" = "you can find your sub link on Details, also you can use the same name for several configurations" [pages.client] @@ -231,7 +231,7 @@ "telegramToken" = "Telegram Token" "telegramTokenDesc" = "The Token you have got from @BotFather" "telegramChatId" = "Telegram Admin ChatIDs" -"telegramChatIdDesc" = "Multi chatIDs separated by comma." +"telegramChatIdDesc" = "Multiple Chat IDs separated by comma. use @userinfobot or use '/id' command in bot to get your Chat IDs." "telegramNotifyTime" = "Telegram bot notification time" "telegramNotifyTimeDesc" = "Use Crontab timing format." "tgNotifyBackup" = "Database Backup" @@ -362,6 +362,7 @@ "welcome" = "🤖 Welcome to {{ .Hostname }} management bot.\r\n" "status" = "✅ Bot is ok!" "usage" = "❗ Please provide a text to search!" +"getID" = "🆔 Your ID: {{ .ID }}" "helpAdminCommands" = "Search for a client email:\r\n/usage [Email]\r\n \r\nSearch for inbounds (with client stats):\r\n/inbound [Remark]" "helpClientCommands" = "To search for statistics, just use folowing command:\r\n \r\n/usage [UUID|Password]\r\n \r\nUse UUID for vmess/vless and Password for Trojan." diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml index d4429f09..fbf17bae 100644 --- a/web/translation/translate.fa_IR.toml +++ b/web/translation/translate.fa_IR.toml @@ -159,7 +159,7 @@ "email" = "ایمیل" "emailDesc" = "ایمیل باید کاملا منحصر به فرد باشد" "setDefaultCert" = "استفاده از گواهی پنل" -"telegramDesc" = "از آیدی تلگرام بدون @ یا آیدی چت استفاده کنید (می توانید آن را از اینجا دریافت کنید @userinfobot)" +"telegramDesc" = "از آیدی تلگرام بدون @ یا آیدی چت استفاده کنید (می توانید آن را از اینجا دریافت کنید @userinfobot یا در ربات دستور '/id' را وارد کنید)" "subscriptionDesc" = "می توانید ساب لینک خود را در جزئیات پیدا کنید، همچنین می توانید از همین نام برای چندین کانفیگ استفاده کنید" [pages.client] @@ -230,7 +230,7 @@ "telegramToken" = "توکن تلگرام" "telegramTokenDesc" = "توکن را باید از مدیر بات های تلگرام دریافت کنید @botfather" "telegramChatId" = "آی دی تلگرام مدیریت" -"telegramChatIdDesc" = "با استفاده از کاما میتونید چند آی دی را از هم جدا کنید" +"telegramChatIdDesc" = "از @userinfobot یا دستور '/id' در ربات برای دریافت شناسه های چت خود استفاده کنید. با استفاده از کاما میتونید چند آی دی را از هم جدا کنید. " "telegramNotifyTime" = "مدت زمان نوتیفیکیشن ربات تلگرام" "telegramNotifyTimeDesc" = "از فرمت زمان بندی لینوکس استفاده کنید " "tgNotifyBackup" = "پشتیبان گیری از پایگاه داده" @@ -360,6 +360,7 @@ "welcome" = "🤖 به ربات مدیریت {{ .Hostname }} خوش آمدید.\r\n" "status" = "✅ ربات در حالت عادی است!" "usage" = "❗ لطفاً یک متن برای جستجو وارد کنید!" +"getID" = "🆔 شناسه شما: {{ .ID }}" "helpAdminCommands" = "برای جستجوی ایمیل مشتری:\r\n/usage [ایمیل]\r\n \r\nبرای جستجوی ورودی‌ها (با آمار مشتری):\r\n/inbound [توضیح]" "helpClientCommands" = "برای جستجوی آمار، فقط از دستور زیر استفاده کنید:\r\n \r\n/usage [UUID|رمز عبور]\r\n \r\nاز UUID برای vmess/vless و از رمز عبور برای Trojan استفاده کنید." diff --git a/web/translation/translate.ru_RU.toml b/web/translation/translate.ru_RU.toml index 0fb85ccd..ac6ac609 100644 --- a/web/translation/translate.ru_RU.toml +++ b/web/translation/translate.ru_RU.toml @@ -160,7 +160,7 @@ "email" = "Email" "emailDesc" = "Пожалуйста, укажите уникальный Email" "setDefaultCert" = "Установить сертификат с панели" -"telegramDesc" = "используйте Telegram ID (вы можете получить его у @userinfobot)" +"telegramDesc" = "Используйте идентификатор Telegram без символа @ или идентификатора чата (можно получить его здесь @userinfobot или использовать команду '/id' в боте)" "subscriptionDesc" = "вы можете найти свою ссылку подписки в разделе «Подробнее», также вы можете использовать одно и то же имя для нескольких конфигов" [pages.client] @@ -231,7 +231,7 @@ "telegramToken" = "Токен Телеграм-бота" "telegramTokenDesc" = "Перезагрузите панель для применения настроек" "telegramChatId" = "Телеграм-ID админа бота" -"telegramChatIdDesc" = "Если несколько Телеграм-ID, разделить запятой. Используйте @userinfobot, чтобы получить Телеграм-ID. Перезагрузите панель для применения настроек" +"telegramChatIdDesc" = "Множественные идентификаторы чата, разделенные запятыми. Чтобы получить свои идентификаторы чатов, используйте @userinfobot или команду '/id' в боте." "telegramNotifyTime" = "Частота уведомлений телеграм-бота" "telegramNotifyTimeDesc" = "Используйте формат Crontab. Перезагрузите панель для применения настроек" "tgNotifyBackup" = "Резервное копирование базы данных" @@ -361,6 +361,7 @@ "welcome" = "🤖 Добро пожаловать в бота управления {{ .Hostname }}.\r\n" "status" = "✅ Бот работает нормально!" "usage" = "❗ Пожалуйста, укажите текст для поиска!" +"getID" = "🆔 Ваш ID: {{ .ID }}" "helpAdminCommands" = "Поиск по электронной почте клиента:\r\n/usage [Email]\r\n \r\nПоиск входящих соединений (со статистикой клиента):\r\n/inbound [Remark]" "helpClientCommands" = "Для получения статистики используйте следующую команду:\r\n \r\n/usage [UUID|Password]\r\n \r\nИспользуйте UUID для vmess/vless и пароль для Trojan." diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml index 0cf2abff..a1d2e1a4 100644 --- a/web/translation/translate.zh_Hans.toml +++ b/web/translation/translate.zh_Hans.toml @@ -160,7 +160,7 @@ "email" = "电子邮件" "emailDesc" = "电子邮件必须完全唯" "setDefaultCert" = "从面板设置证书" -"telegramDesc" = "使用不带@的电报 ID 或聊天 ID(您可以在此处获取 @userinfobot)" +"telegramDesc" = "使用 Telegram ID,不包含 @ 符号或聊天 ID(可以在 @userinfobot 处获取,或在机器人中使用'/id'命令)" "subscriptionDesc" = "您可以在详细信息上找到您的子链接,也可以对多个配置使用相同的名称" [pages.client] @@ -231,7 +231,7 @@ "telegramToken" = "电报机器人TOKEN" "telegramTokenDesc" = "重启面板生效" "telegramChatId" = "以逗号分隔的多个 chatID" -"telegramChatIdDesc" = "重启面板生效" +"telegramChatIdDesc" = "多个聊天 ID 用逗号分隔。使用 @userinfobot 或在机器人中使用'/id'命令获取您的聊天 ID。" "telegramNotifyTime" = "电报机器人通知时间" "telegramNotifyTimeDesc" = "采用Crontab定时格式" "tgNotifyBackup" = "数据库备份" @@ -361,6 +361,7 @@ "welcome" = "🤖 欢迎来到{{ .Hostname }}管理机器人。\r\n" "status" = "✅ 机器人正常运行!" "usage" = "❗ 请输入要搜索的文本!" +"getID" = "🆔 您的ID为:{{ .ID }}" "helpAdminCommands" = "搜索客户端邮箱:\r\n/usage [Email]\r\n \r\n搜索入站连接(包含客户端统计信息):\r\n/inbound [Remark]" "helpClientCommands" = "要搜索统计信息,请使用以下命令:\r\n \r\n/usage [UUID|Password]\r\n \r\n对于vmess/vless,请使用UUID;对于Trojan,请使用密码。"