mirror of
https://github.com/v2board/v2board.git
synced 2025-06-13 05:15:27 +08:00
feature: shadowsocks and more
This commit is contained in:
@ -8,6 +8,7 @@ use App\Utils\Clash;
|
||||
use App\Utils\QuantumultX;
|
||||
use App\Utils\Shadowrocket;
|
||||
use App\Utils\Surge;
|
||||
use App\Utils\URLSchemes;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Server;
|
||||
use App\Utils\Helper;
|
||||
@ -34,7 +35,7 @@ class ClientController extends Controller
|
||||
die($this->quantumult($user, $servers['vmess']));
|
||||
}
|
||||
if (strpos($_SERVER['HTTP_USER_AGENT'], 'clash') !== false) {
|
||||
die($this->clash($user, $servers['vmess'], $servers['trojan']));
|
||||
die($this->clash($user, $servers['shadowsocks'], $servers['vmess'], $servers['trojan']));
|
||||
}
|
||||
if (strpos($_SERVER['HTTP_USER_AGENT'], 'surfboard') !== false) {
|
||||
die($this->surfboard($user, $servers['vmess']));
|
||||
@ -46,7 +47,7 @@ class ClientController extends Controller
|
||||
die($this->shadowrocket($user, $servers['vmess'], $servers['trojan']));
|
||||
}
|
||||
}
|
||||
die($this->origin($user, $servers['vmess'], $servers['trojan']));
|
||||
die($this->origin($user, $servers['shadowsocks'], $servers['vmess'], $servers['trojan']));
|
||||
}
|
||||
}
|
||||
// TODO: Ready to stop support
|
||||
@ -101,14 +102,17 @@ class ClientController extends Controller
|
||||
return base64_encode($uri);
|
||||
}
|
||||
|
||||
private function origin($user, $vmess = [], $trojan = [])
|
||||
private function origin($user, $shadowsocks = [], $vmess = [], $trojan = [])
|
||||
{
|
||||
$uri = '';
|
||||
foreach ($shadowsocks as $item) {
|
||||
$uri .= URLSchemes::buildShadowsocks($item, $user);
|
||||
}
|
||||
foreach ($vmess as $item) {
|
||||
$uri .= Helper::buildVmessLink($item, $user);
|
||||
$uri .= URLSchemes::buildVmess($item, $user);
|
||||
}
|
||||
foreach ($trojan as $item) {
|
||||
$uri .= Helper::buildTrojanLink($item, $user);
|
||||
$uri .= URLSchemes::buildTrojan($item, $user);
|
||||
}
|
||||
return base64_encode($uri);
|
||||
}
|
||||
@ -192,7 +196,7 @@ class ClientController extends Controller
|
||||
return $config;
|
||||
}
|
||||
|
||||
private function clash($user, $vmess = [], $trojan = [])
|
||||
private function clash($user, $shadowsocks = [], $vmess = [], $trojan = [])
|
||||
{
|
||||
$defaultConfig = base_path() . '/resources/rules/default.clash.yaml';
|
||||
$customConfig = base_path() . '/resources/rules/custom.clash.yaml';
|
||||
@ -203,6 +207,12 @@ class ClientController extends Controller
|
||||
}
|
||||
$proxy = [];
|
||||
$proxies = [];
|
||||
|
||||
foreach ($shadowsocks as $item) {
|
||||
array_push($proxy, Clash::buildShadowsocks($user->uuid, $item));
|
||||
array_push($proxies, $item->name);
|
||||
}
|
||||
|
||||
foreach ($vmess as $item) {
|
||||
array_push($proxy, Clash::buildVmess($user->uuid, $item));
|
||||
array_push($proxies, $item->name);
|
||||
|
Reference in New Issue
Block a user