change clash config

This commit is contained in:
Tokumeikoi 2020-05-26 15:34:29 +08:00
parent 7eb5532c30
commit bade7e2cf3
3 changed files with 525 additions and 10447 deletions

View File

@ -160,9 +160,15 @@ class ClientController extends Controller
private function clash($user, $server) private function clash($user, $server)
{ {
$defaultConfig = base_path() . '/resources/rules/default.clash.yaml';
$customConfig = base_path() . '/resources/rules/custom.clash.yaml';
if (\File::exists($customConfig)) {
$config = Yaml::parseFile($customConfig);
} else {
$config = Yaml::parseFile($defaultConfig);
}
$proxy = []; $proxy = [];
$proxies = []; $proxies = [];
$rules = [];
foreach ($server as $item) { foreach ($server as $item) {
$array = []; $array = [];
$array['name'] = $item->name; $array['name'] = $item->name;
@ -191,101 +197,12 @@ class ClientController extends Controller
array_push($proxies, $item->name); array_push($proxies, $item->name);
} }
$proxyGroup = [ $config['Proxy'] = array_merge($config['Proxy'] ? $config['Proxy'] : [], $proxy);
[ foreach ($config['Proxy Group'] as $k => $v) {
'name' => '🔰 节点选择', $config['Proxy Group'][$k]['proxies'] = array_merge($config['Proxy Group'][$k]['proxies'], $proxies);
'type' => 'select',
'proxies' => array_merge([
'♻️ 自动选择',
'🎯 全球直连'
], $proxies)
], [
'name' => '♻️ 自动选择',
'type' => 'url-test',
'url' => 'http://www.gstatic.com/generate_204',
'interval' => 300,
'proxies' => $proxies
], [
'name' => '🌍 国外媒体',
'type' => 'select',
'proxies' => array_merge([
'🔰 节点选择',
'♻️ 自动选择',
'🎯 全球直连'
], $proxies)
], [
'name' => '🌏 国内媒体',
'type' => 'select',
'proxies' => array_merge([
'🎯 全球直连',
'🔰 节点选择'
], $proxies)
], [
'name' => 'Ⓜ️ 微软服务',
'type' => 'select',
'proxies' => array_merge([
'🎯 全球直连',
'🔰 节点选择'
], $proxies)
], [
'name' => '📲 电报信息',
'type' => 'select',
'proxies' => array_merge([
'🔰 节点选择',
'🎯 全球直连'
], $proxies)
], [
'name' => '🍎 苹果服务',
'type' => 'select',
'proxies' => array_merge([
'🎯 全球直连',
'🔰 节点选择',
'♻️ 自动选择'
], $proxies)
], [
'name' => '🎯 全球直连',
'type' => 'select',
'proxies' => [
'DIRECT'
]
], [
'name' => '🛑 全球拦截',
'type' => 'select',
'proxies' => [
'REJECT',
'DIRECT'
]
], [
'name' => '🐟 漏网之鱼',
'type' => 'select',
'proxies' => array_merge([
'🔰 节点选择',
'♻️ 自动选择',
'🎯 全球直连'
], $proxies)
]
];
try {
$rules = [];
foreach (glob(base_path() . '/resources/rules/' . '*.clash.yaml') as $file) {
$rules = array_merge($rules, Yaml::parseFile($file)['Rule']);
} }
} catch (\Exception $e) {} $yaml = Yaml::dump($config);
$yaml = str_replace('$app_name', config('v2board.app_name', 'V2Board'), $yaml);
$config = [ return $yaml;
'port' => 7890,
'socks-port' => 7891,
'allow-lan' => false,
'mode' => 'Rule',
'log-level' => 'info',
'external-controller' => '0.0.0.0:9090',
'secret' => '',
'Proxy' => $proxy,
'Proxy Group' => $proxyGroup,
'Rule' => $rules
];
return Yaml::dump($config);
} }
} }

1
resources/rules/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
custom.clash.yaml

File diff suppressed because it is too large Load Diff