From c18f55d6dd2130dbca67abda0d2443f35db09643 Mon Sep 17 00:00:00 2001 From: xboard Date: Fri, 19 Jul 2024 07:04:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E4=B8=AAcommit=E9=80=A0=E6=88=90=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V1/Client/ClientController.php | 21 ++++++++----------- app/Utils/Helper.php | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/V1/Client/ClientController.php b/app/Http/Controllers/V1/Client/ClientController.php index 5dd83f1..913e4d6 100644 --- a/app/Http/Controllers/V1/Client/ClientController.php +++ b/app/Http/Controllers/V1/Client/ClientController.php @@ -28,7 +28,7 @@ class ClientController extends Controller 'surge' => '2398' ]; // allowed types - const AllowedTypes = ['vmess', 'vless', 'trojan', 'hysteria', 'shadowsocks']; + const AllowedTypes = ['vmess', 'vless', 'trojan', 'hysteria', 'shadowsocks', 'hysteria2']; public function subscribe(Request $request) { @@ -41,9 +41,8 @@ class ClientController extends Controller $ip = $request->input('ip', $request->ip()); // get client version $version = preg_match('/\/v?(\d+(\.\d+){0,2})/', $flag, $matches) ? $matches[1] : null; - $supportHy2 = $version - && collect(self::SupportedHy2ClientVersions) - ->contains(fn($minVersion, $client) => stripos($flag, $client) !== false && $this->versionCompare($version, $minVersion)); + $supportHy2 = $version ? collect(self::SupportedHy2ClientVersions) + ->contains(fn($minVersion, $client) => stripos($flag, $client) !== false && $this->versionCompare($version, $minVersion)) : true; $user = $request->user; // account not expired and is not banned. $userService = new UserService(); @@ -85,13 +84,12 @@ class ClientController extends Controller private function serverFilter($servers, $typesArr, $filterArr, $region, $supportHy2) { return collect($servers)->reject(function ($server) use ($typesArr, $filterArr, $region, $supportHy2) { - if ( - $typesArr && ( - ($server['type'] == "hysteria" && $server['version'] == 2 && !in_array('hysteria2', $typesArr) && !$supportHy2) || - (!in_array($server['type'], $typesArr) && !($server['type'] == "hysteria" && $server['version'] == 2 && in_array('hysteria2', $typesArr))) - ) - ) { - return true; + if ($server['type'] == "hysteria" && $server['version'] == 2) { + if(!in_array('hysteria2', $typesArr)){ + return true; + }elseif(false == $supportHy2){ + return true; + } } if ($filterArr) { @@ -167,7 +165,6 @@ class ClientController extends Controller $expiredDate = $user['expired_at'] ? date('Y-m-d', $user['expired_at']) : '长期有效'; $userService = new UserService(); $resetDay = $userService->getResetDay($user); - // 筛选提示 array_unshift($servers, array_merge($servers[0], [ 'name' => "套餐到期:{$expiredDate}", ])); diff --git a/app/Utils/Helper.php b/app/Utils/Helper.php index c3e60f2..6844327 100644 --- a/app/Utils/Helper.php +++ b/app/Utils/Helper.php @@ -112,7 +112,7 @@ class Helper { $subscribeUrls = explode(',', admin_setting('subscribe_url')); $subscribeUrl = $subscribeUrls[array_rand($subscribeUrls)]; - $subscribeUrl = self::replaceRandomNumber($subscribeUrl); + $subscribeUrl = self::replaceByPattern($subscribeUrl); if ($subscribeUrl) return $subscribeUrl . $path; return url($path); }