Browse Source

refactor: tg bot service

M1Screw 2 years ago
parent
commit
89ebae0af9

+ 1 - 1
src/Controllers/CallbackController.php

@@ -5,7 +5,7 @@ declare(strict_types=1);
 namespace App\Controllers;
 
 use App\Models\Setting;
-use App\Utils\Telegram\Process;
+use App\Services\Bot\Telegram\Process;
 use MaxMind\Db\Reader\InvalidDatabaseException;
 use Psr\Http\Message\ResponseInterface;
 use RedisException;

+ 13 - 13
src/Utils/Telegram/Callback.php → src/Services/Bot/Telegram/Callback.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram;
+namespace App\Services\Bot\Telegram;
 
 use App\Controllers\LinkController;
 use App\Controllers\SubController;
@@ -77,10 +77,10 @@ final class Callback
         $this->bot = $bot;
         $this->triggerUser = [
             'id' => $Callback->getFrom()->getId(),
-            'name' => $Callback->getFrom()->getFirstName() . ' ' . $Callback->getFrom()->getLastName(),
+            'name' => $Callback->getFrom()->getFirstName() . ' Callback.php' . $Callback->getFrom()->getLastName(),
             'username' => $Callback->getFrom()->getUsername(),
         ];
-        $this->User = TelegramTools::getUser($this->triggerUser['id']);
+        $this->User = Tool::getUser($this->triggerUser['id']);
         $this->ChatID = $Callback->getMessage()->getChat()->getId();
         $this->Callback = $Callback;
         $this->MessageID = $Callback->getMessage()->getMessageId();
@@ -115,7 +115,7 @@ final class Callback
             $sendMessage
         );
         if ($this->AllowEditMessage) {
-            TelegramTools::sendPost('editMessageText', $sendMessage);
+            Tool::sendPost('editMessageText', $sendMessage);
         } else {
             $this->bot->sendMessage($sendMessage);
         }
@@ -142,7 +142,7 @@ final class Callback
             ],
             $sendMessage
         );
-        TelegramTools::sendPost('answerCallbackQuery', $sendMessage);
+        Tool::sendPost('answerCallbackQuery', $sendMessage);
     }
 
     public static function getUserIndexKeyboard($user): array
@@ -176,9 +176,9 @@ final class Callback
                 ],
             ],
         ];
-        $text = Reply::getUserTitle($user);
+        $text = Message::getUserTitle($user);
         $text .= PHP_EOL . PHP_EOL;
-        $text .= Reply::getUserInfo($user);
+        $text .= Message::getUserInfo($user);
 
         return [
             'text' => $text,
@@ -253,9 +253,9 @@ final class Callback
 
     public function getUserCenterKeyboard(): array
     {
-        $text = Reply::getUserTitle($this->User);
+        $text = Message::getUserTitle($this->User);
         $text .= PHP_EOL . PHP_EOL;
-        $text .= Reply::getUserTrafficInfo($this->User);
+        $text .= Message::getUserTrafficInfo($this->User);
         $keyboard = [
             [
                 [
@@ -439,7 +439,7 @@ final class Callback
 
     public function getUserEditKeyboard(): array
     {
-        $text = Reply::getUserTitle($this->User);
+        $text = Message::getUserTitle($this->User);
         $keyboard = [
             [
                 [
@@ -682,7 +682,7 @@ final class Callback
                 break;
             case 'unban_update':
                 // 提交群组解封
-                TelegramTools::sendPost(
+                Tool::sendPost(
                     'unbanChatMember',
                     [
                         'chat_id' => Setting::obtain('telegram_chatid'),
@@ -957,9 +957,9 @@ final class Callback
         if ($this->ChatID > 0) {
             $temp = self::getUserIndexKeyboard($this->User);
         } else {
-            $temp['text'] = Reply::getUserTitle($this->User);
+            $temp['text'] = Message::getUserTitle($this->User);
             $temp['text'] .= PHP_EOL . PHP_EOL;
-            $temp['text'] .= Reply::getUserTrafficInfo($this->User);
+            $temp['text'] .= Message::getUserTrafficInfo($this->User);
             $temp['keyboard'] = [
                 [
                     [

+ 3 - 3
src/Utils/Telegram/Commands/CheckinCommand.php → src/Services/Bot/Telegram/Commands/CheckinCommand.php

@@ -2,10 +2,10 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
-use App\Utils\Telegram\TelegramTools;
+use App\Services\Bot\Telegram\Tool;
 use Telegram\Bot\Actions;
 use Telegram\Bot\Commands\Command;
 
@@ -53,7 +53,7 @@ final class CheckinCommand extends Command
         $SendUser = [
             'id' => $Message->getFrom()->getId(),
         ];
-        $User = TelegramTools::getUser($SendUser['id']);
+        $User = Tool::getUser($SendUser['id']);
         if ($User === null) {
             // 回送信息
             $response = $this->replyWithMessage(

+ 1 - 1
src/Utils/Telegram/Commands/HelpCommand.php → src/Services/Bot/Telegram/Commands/HelpCommand.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
 use Telegram\Bot\Actions;

+ 4 - 4
src/Utils/Telegram/Commands/MenuCommand.php → src/Services/Bot/Telegram/Commands/MenuCommand.php

@@ -2,10 +2,10 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
-use App\Utils\Telegram\Callback;
-use App\Utils\Telegram\TelegramTools;
+use App\Services\Bot\Telegram\Callback;
+use App\Services\Bot\Telegram\Tool;
 use Telegram\Bot\Actions;
 use Telegram\Bot\Commands\Command;
 use function json_encode;
@@ -47,7 +47,7 @@ final class MenuCommand extends Command
                 'id' => $Message->getFrom()->getId(),
             ];
 
-            $user = TelegramTools::getUser($SendUser['id']);
+            $user = Tool::getUser($SendUser['id']);
             if ($user === null) {
                 $reply = null;
             } else {

+ 5 - 5
src/Utils/Telegram/Commands/MyCommand.php → src/Services/Bot/Telegram/Commands/MyCommand.php

@@ -2,11 +2,11 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
 use App\Models\User;
-use App\Utils\Telegram\Reply;
+use App\Services\Bot\Telegram\Message;
 use Telegram\Bot\Actions;
 use Telegram\Bot\Commands\Command;
 use function json_encode;
@@ -57,7 +57,7 @@ final class MyCommand extends Command
         // 触发用户
         $SendUser = [
             'id' => $Message->getFrom()->getId(),
-            'name' => $Message->getFrom()->getFirstName() . ' ' . $Message->getFrom()->getLastName(),
+            'name' => $Message->getFrom()->getFirstName() . ' MyCommand.php' . $Message->getFrom()->getLastName(),
             'username' => $Message->getFrom()->getUsername(),
         ];
 
@@ -86,9 +86,9 @@ final class MyCommand extends Command
 
     public function group($User, $SendUser, $ChatID, $Message, $MessageID)
     {
-        $text = Reply::getUserTitle($User);
+        $text = Message::getUserTitle($User);
         $text .= PHP_EOL . PHP_EOL;
-        $text .= Reply::getUserTrafficInfo($User);
+        $text .= Message::getUserTrafficInfo($User);
         // 回送信息
         return $this->replyWithMessage(
             [

+ 1 - 1
src/Utils/Telegram/Commands/PingCommand.php → src/Services/Bot/Telegram/Commands/PingCommand.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
 use Telegram\Bot\Actions;

+ 2 - 2
src/Utils/Telegram/Commands/StartCommand.php → src/Services/Bot/Telegram/Commands/StartCommand.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
 use RedisException;
@@ -41,7 +41,7 @@ final class StartCommand extends Command
             // 触发用户
             $SendUser = [
                 'id' => $Message->getFrom()->getId(),
-                'name' => $Message->getFrom()->getFirstName() . ' ' . $Message->getFrom()->getLastName(),
+                'name' => $Message->getFrom()->getFirstName() . ' StartCommand.php' . $Message->getFrom()->getLastName(),
                 'username' => $Message->getFrom()->getUsername(),
             ];
             // 消息内容

+ 3 - 3
src/Utils/Telegram/Commands/UnbindCommand.php → src/Services/Bot/Telegram/Commands/UnbindCommand.php

@@ -2,10 +2,10 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram\Commands;
+namespace App\Services\Bot\Telegram\Commands;
 
 use App\Models\Setting;
-use App\Utils\Telegram\TelegramTools;
+use App\Services\Bot\Telegram\Tool;
 use Telegram\Bot\Actions;
 use Telegram\Bot\Commands\Command;
 
@@ -36,7 +36,7 @@ final class UnbindCommand extends Command
             'id' => $Message->getFrom()->getId(),
         ];
 
-        $User = TelegramTools::getUser($SendUser['id']);
+        $User = Tool::getUser($SendUser['id']);
 
         if ($ChatID > 0) {
             // 私人

+ 56 - 7
src/Utils/Telegram/Message.php → src/Services/Bot/Telegram/Message.php

@@ -2,9 +2,10 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram;
+namespace App\Services\Bot\Telegram;
 
 use App\Models\Setting;
+use App\Models\User;
 use RedisException;
 use Telegram\Bot\Api;
 use Telegram\Bot\Exceptions\TelegramSDKException;
@@ -48,10 +49,10 @@ final class Message
         $this->bot = $bot;
         $this->triggerUser = [
             'id' => $Message->getFrom()->getId(),
-            'name' => $Message->getFrom()->getFirstName() . ' ' . $Message->getFrom()->getLastName(),
+            'name' => $Message->getFrom()->getFirstName() . ' Message.php' . $Message->getFrom()->getLastName(),
             'username' => $Message->getFrom()->getUsername(),
         ];
-        $this->User = TelegramTools::getUser($this->triggerUser['id']);
+        $this->User = Tool::getUser($this->triggerUser['id']);
         $this->ChatID = $Message->getChat()->getId();
         $this->Message = $Message;
         $this->MessageID = $Message->getMessageId();
@@ -77,6 +78,7 @@ final class Message
             ],
             $sendMessage
         );
+
         $this->bot->sendMessage($sendMessage);
     }
 
@@ -91,7 +93,7 @@ final class Message
 
         $Member = [
             'id' => $NewChatMember->getId(),
-            'name' => $NewChatMember->getFirstName() . ' ' . $NewChatMember->getLastName(),
+            'name' => $NewChatMember->getFirstName() . ' Message.php' . $NewChatMember->getLastName(),
         ];
 
         if ($NewChatMember->getUsername() === Setting::obtain('telegram_bot')) {
@@ -107,7 +109,7 @@ final class Message
                     ]
                 );
 
-                TelegramTools::sendPost(
+                Tool::sendPost(
                     'kickChatMember',
                     [
                         'chat_id' => $this->ChatID,
@@ -123,7 +125,7 @@ final class Message
             }
         } else {
             // 新成员加入群组
-            $NewUser = TelegramTools::getUser($Member['id']);
+            $NewUser = Tool::getUser($Member['id']);
 
             if (Setting::obtain('telegram_group_bound_user')
                 &&
@@ -139,7 +141,7 @@ final class Message
                     ]
                 );
 
-                TelegramTools::sendPost(
+                Tool::sendPost(
                     'kickChatMember',
                     [
                         'chat_id' => $this->ChatID,
@@ -161,4 +163,51 @@ final class Message
             }
         }
     }
+
+    /**
+     * 用户的流量使用讯息
+     */
+    public static function getUserTrafficInfo(User $user): string
+    {
+        $text = [
+            '你当前的流量状况:',
+            '',
+            '今日已使用 ' . $user->todayUsedTrafficPercent() . '% :' . $user->todayUsedTraffic(),
+            '之前已使用 ' . $user->lastUsedTrafficPercent() . '% :' . $user->lastUsedTraffic(),
+            '流量约剩余 ' . $user->unusedTrafficPercent() . '% :' . $user->unusedTraffic(),
+        ];
+
+        return implode(PHP_EOL, $text);
+    }
+
+    /**
+     * 用户基本讯息
+     */
+    public static function getUserInfo(User $user): string
+    {
+        $text = [
+            '当前余额:' . $user->money,
+            '在线 IP 数:' . ($user->node_iplimit !== 0 ? $user->onlineIpCount() .
+                ' / ' . $user->node_iplimit : $user->onlineIpCount() . ' / 不限制'),
+            '端口速率:' . ($user->node_speedlimit > 0 ? $user->node_speedlimit . 'Mbps' : '不限制'),
+            '上次使用:' . $user->lastUseTime(),
+            '过期时间:' . $user->class_expire,
+        ];
+
+        return implode(PHP_EOL, $text);
+    }
+
+    /**
+     * 获取用户或管理的尊称
+     */
+    public static function getUserTitle(User $user): string
+    {
+        if ($user->class > 0) {
+            $text = '尊敬的 VIP ' . $user->class . ' 你好:';
+        } else {
+            $text = '尊敬的用户你好:';
+        }
+
+        return $text;
+    }
 }

+ 1 - 1
src/Utils/Telegram/Process.php → src/Services/Bot/Telegram/Process.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram;
+namespace App\Services\Bot\Telegram;
 
 use App\Models\Setting;
 use MaxMind\Db\Reader\InvalidDatabaseException;

+ 2 - 2
src/Utils/Telegram/TelegramTools.php → src/Services/Bot/Telegram/Tool.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Utils\Telegram;
+namespace App\Services\Bot\Telegram;
 
 use App\Models\Setting;
 use App\Models\User;
@@ -17,7 +17,7 @@ use const CURLOPT_POSTFIELDS;
 use const CURLOPT_TIMEOUT;
 use const CURLOPT_URL;
 
-final class TelegramTools
+final class Tool
 {
     /**
      * 搜索用户

+ 0 - 54
src/Utils/Telegram/Reply.php

@@ -1,54 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Utils\Telegram;
-
-use App\Models\User;
-
-final class Reply
-{
-    /**
-     * 用户的流量使用讯息
-     */
-    public static function getUserTrafficInfo(User $user): string
-    {
-        $text = [
-            '你当前的流量状况:',
-            '',
-            '今日已使用 ' . $user->todayUsedTrafficPercent() . '% :' . $user->todayUsedTraffic(),
-            '之前已使用 ' . $user->lastUsedTrafficPercent() . '% :' . $user->lastUsedTraffic(),
-            '流量约剩余 ' . $user->unusedTrafficPercent() . '% :' . $user->unusedTraffic(),
-        ];
-        return implode(PHP_EOL, $text);
-    }
-
-    /**
-     * 用户基本讯息
-     */
-    public static function getUserInfo(User $user): string
-    {
-        $text = [
-            '当前余额:' . $user->money,
-            '在线 IP 数:' . ($user->node_iplimit !== 0 ? $user->onlineIpCount() .
-                ' / ' . $user->node_iplimit : $user->onlineIpCount() . ' / 不限制'),
-            '端口速率:' . ($user->node_speedlimit > 0 ? $user->node_speedlimit . 'Mbps' : '不限制'),
-            '上次使用:' . $user->lastUseTime(),
-            '过期时间:' . $user->class_expire,
-        ];
-        return implode(PHP_EOL, $text);
-    }
-
-    /**
-     * 获取用户或管理的尊称
-     */
-    public static function getUserTitle(User $user): string
-    {
-        if ($user->class > 0) {
-            $text = '尊敬的 VIP ' . $user->class . ' 你好:';
-        } else {
-            $text = '尊敬的用户你好:';
-        }
-        return $text;
-    }
-}