From c69132cc4c6de5d1b0db91815cac486638a04b90 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 24 Nov 2019 00:41:37 +0800 Subject: [PATCH] update --- app/Http/Controllers/ClientController.php | 18 ++---------------- app/Http/Controllers/UserController.php | 3 +++ app/Utils/Helper.php | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 44eec604..2e27281c 100755 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -7,6 +7,7 @@ use App\Http\Controllers\Controller; use App\Models\User; use App\Models\Plan; use App\Models\Server; +use App\Utils\Helper; use Symfony\Component\Yaml\Yaml; class ClientController extends Controller @@ -75,22 +76,7 @@ class ClientController extends Controller private function origin ($user, $server) { $uri = ''; foreach($server as $item) { - $config = [ - "ps" => $item->name, - "add" => $item->host, - "port" => $item->port, - "id" => $user->v2ray_uuid, - "aid" => "2", - "net" => $item->network, - "type" => "chacha20-poly1305", - "host" => "", - "tls" => $item->tls?"tls":"", - ]; - if ($item->network == 'ws') { - $wsSettings = json_decode($item->settings); - if ($wsSettings->path) $config['path'] = $wsSettings->path; - } - $uri .= "vmess://".base64_encode(json_encode($config))."\r\n"; + $uri .= Helper::buildVmessLink($item, $user); } return base64_encode($uri); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c30d8664..5c2d0bf2 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -104,6 +104,9 @@ class UserController extends Controller } } } + for ($i = 0; $i <= count($server); $i++) { + $server[$i]['link'] = Helper::buildVmessLink($server[$i], $user); + } $user['subscribe_url'] = config('v2board.subscribe_url', config('v2board.app_url', env('APP_URL'))) . '/api/v1/client/subscribe?token=' . $user['token']; return response([ 'data' => [ diff --git a/app/Utils/Helper.php b/app/Utils/Helper.php index 8040e44a..bc73d705 100755 --- a/app/Utils/Helper.php +++ b/app/Utils/Helper.php @@ -49,4 +49,23 @@ class Helper } return $str; } + + public static function buildVmessLink($item, $user) { + $config = [ + "ps" => $item->name, + "add" => $item->host, + "port" => $item->port, + "id" => $user->v2ray_uuid, + "aid" => "2", + "net" => $item->network, + "type" => "chacha20-poly1305", + "host" => "", + "tls" => $item->tls?"tls":"", + ]; + if ($item->network == 'ws') { + $wsSettings = json_decode($item->settings); + if ($wsSettings->path) $config['path'] = $wsSettings->path; + } + return "vmess://".base64_encode(json_encode($config))."\r\n"; + } }