From 0798b371b61758ebab2798adb8800a2fdf5de1b0 Mon Sep 17 00:00:00 2001 From: xboard Date: Sat, 27 Sep 2025 16:53:17 +0800 Subject: [PATCH] feat(telegram plugin): improve Telegram notification formatting --- plugins/Telegram/Plugin.php | 50 ++++++++++++++++++++++-------------- plugins/Telegram/config.json | 2 +- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/plugins/Telegram/Plugin.php b/plugins/Telegram/Plugin.php index 4958c00..b04ffbd 100644 --- a/plugins/Telegram/Plugin.php +++ b/plugins/Telegram/Plugin.php @@ -76,28 +76,35 @@ class Plugin extends AbstractPlugin if (!$user) return; $user->load('plan'); - $transfer_enable = Helper::transferToGB($user->transfer_enable); - $remaining_traffic = Helper::transferToGB($user->transfer_enable - $user->u - $user->d); - $u = Helper::transferToGB($user->u); - $d = Helper::transferToGB($user->d); - $expired_at = $user->expired_at ? date('Y-m-d H:i:s', $user->expired_at) : ''; + $transfer_enable = $this->transferToGBString($user->transfer_enable); + $remaining_traffic = $this->transferToGBString($user->transfer_enable - $user->u - $user->d); + $u = $this->transferToGBString($user->u); + $d = $this->transferToGBString($user->d); + $expired_at = $user->expired_at ? date('Y-m-d H:i:s', $user->expired_at) : '长期有效'; $money = $user->balance / 100; $affmoney = $user->commission_balance / 100; $plan = $user->plan; $ip = request()?->ip() ?? ''; $region = $ip ? (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? (new \Ip2Region())->simple($ip) : 'NULL') : ''; - $TGmessage = "📮工单提醒 #{$ticket->id}\n———————————————\n"; - $TGmessage .= "邮箱: `{$user->email}`\n"; - $TGmessage .= "用户位置: \n`{$region}`\n"; + $TGmessage = "📮 *工单提醒* #{$ticket->id}\n"; + $TGmessage .= "━━━━━━━━━━━━━━━━━━━━\n"; + $TGmessage .= "📧 邮箱: `{$user->email}`\n"; + $TGmessage .= "📍 位置: `{$region}`\n"; + if ($plan) { - $TGmessage .= "套餐与流量: \n`{$plan->name} {$transfer_enable}/{$remaining_traffic}`\n"; - $TGmessage .= "上传/下载: \n`{$u}/{$d}`\n"; - $TGmessage .= "到期时间: \n`{$expired_at}`\n"; + $TGmessage .= "📦 套餐: `{$plan->name}`\n"; + $TGmessage .= "📊 流量: `{$remaining_traffic}G / {$transfer_enable}G` (已用/总计)\n"; + $TGmessage .= "⬆️⬇️ 已用: `{$u}G / {$d}G`\n"; + $TGmessage .= "⏰ 到期: `{$expired_at}`\n"; } else { - $TGmessage .= "套餐与流量: \n`未订购任何套餐`\n"; + $TGmessage .= "📦 套餐: `未订购任何套餐`\n"; } - $TGmessage .= "余额/佣金余额: \n`{$money}/{$affmoney}`\n"; - $TGmessage .= "主题:\n`{$ticket->subject}`\n内容:\n`{$message->message}`\n"; + + $TGmessage .= "💰 余额: `{$money}元`\n"; + $TGmessage .= "💸 佣金: `{$affmoney}元`\n"; + $TGmessage .= "━━━━━━━━━━━━━━━━━━━━\n"; + $TGmessage .= "📝 *主题*: `{$ticket->subject}`\n"; + $TGmessage .= "💬 *内容*: `{$message->message}`"; $this->telegramService->sendMessageWithAdmin($TGmessage, true); } @@ -107,7 +114,7 @@ class Plugin extends AbstractPlugin $this->registerTelegramCommand($command, [$this, $config['handler']]); } - $this->registerReplyHandler('/(工单提醒 #?|工单ID: ?)(\\d+)/', [$this, 'handleTicketReply']); + $this->registerReplyHandler('/(📮.*?工单提醒.*?#?|工单ID: ?)(\\d+)/', [$this, 'handleTicketReply']); } public function registerTelegramCommand(string $command, callable $handler): void @@ -330,10 +337,10 @@ class Plugin extends AbstractPlugin $usagePercentage = $transferTotal > 0 ? ($transferUsed / $transferTotal) * 100 : 0; $text = sprintf( - "📊 流量使用情况\n\n已用流量:%s\n总流量:%s\n剩余流量:%s\n使用率:%.2f%%", - Helper::transferToGB($transferUsed), - Helper::transferToGB($transferTotal), - Helper::transferToGB($transferRemaining), + "📊 流量使用情况\n\n已用流量:%sG\n总流量:%sG\n剩余流量:%sG\n使用率:%.2f%%", + $this->transferToGBString($transferUsed), + $this->transferToGBString($transferTotal), + $this->transferToGBString($transferRemaining), $usagePercentage ); @@ -422,4 +429,9 @@ class Plugin extends AbstractPlugin return $commands; } + private function transferToGBString(float $transfer_enable, int $decimals = 2): string + { + return number_format(Helper::transferToGB($transfer_enable), $decimals, '.', ''); + } + } \ No newline at end of file diff --git a/plugins/Telegram/config.json b/plugins/Telegram/config.json index 68c047c..581aa0d 100644 --- a/plugins/Telegram/config.json +++ b/plugins/Telegram/config.json @@ -1,7 +1,7 @@ { "name": "Telegram Bot 集成", "code": "telegram", - "version": "1.0.0", + "version": "1.0.1", "description": "Telegram Bot 消息处理和命令系统", "author": "XBoard Team", "require": {