mirror of
https://github.com/v2board/v2board.git
synced 2025-03-13 06:04:42 +08:00
Merge 982ec97361776418596ca6c4b6f4dada5dda6553 into 0ca47622a50116d0ddd7ffb316b157afb57d25e8
This commit is contained in:
commit
9d77b3d34f
24
app/Http/Controllers/Client/Protocols/Clash.php
Normal file → Executable file
24
app/Http/Controllers/Client/Protocols/Clash.php
Normal file → Executable file
@ -62,20 +62,22 @@ class Clash
|
|||||||
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
||||||
foreach ($config['proxy-groups'] as $k => $v) {
|
foreach ($config['proxy-groups'] as $k => $v) {
|
||||||
if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = [];
|
if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = [];
|
||||||
$isFilter = false;
|
$updatedProxies = [];
|
||||||
foreach ($config['proxy-groups'][$k]['proxies'] as $src) {
|
foreach ($config['proxy-groups'][$k]['proxies'] as $index => $src) {
|
||||||
foreach ($proxies as $dst) {
|
if ($this->isRegex($src)) {
|
||||||
if (!$this->isRegex($src)) continue;
|
foreach ($proxies as $dst) {
|
||||||
$isFilter = true;
|
if ($this->isMatch($src, $dst)) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src]));
|
$updatedProxies[] = $dst;
|
||||||
if ($this->isMatch($src, $dst)) {
|
}
|
||||||
array_push($config['proxy-groups'][$k]['proxies'], $dst);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$updatedProxies[] = $src;
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
if (empty($updatedProxies) && !empty($config['proxy-groups'][$k]['proxies'])) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies);
|
$updatedProxies = array_merge($updatedProxies, $proxies);
|
||||||
|
}
|
||||||
|
$config['proxy-groups'][$k]['proxies'] = $updatedProxies;
|
||||||
}
|
}
|
||||||
|
|
||||||
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
||||||
|
24
app/Http/Controllers/Client/Protocols/ClashMeta.php
Normal file → Executable file
24
app/Http/Controllers/Client/Protocols/ClashMeta.php
Normal file → Executable file
@ -53,20 +53,22 @@ class ClashMeta
|
|||||||
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
||||||
foreach ($config['proxy-groups'] as $k => $v) {
|
foreach ($config['proxy-groups'] as $k => $v) {
|
||||||
if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = [];
|
if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = [];
|
||||||
$isFilter = false;
|
$updatedProxies = [];
|
||||||
foreach ($config['proxy-groups'][$k]['proxies'] as $src) {
|
foreach ($config['proxy-groups'][$k]['proxies'] as $index => $src) {
|
||||||
foreach ($proxies as $dst) {
|
if ($this->isRegex($src)) {
|
||||||
if (!$this->isRegex($src)) continue;
|
foreach ($proxies as $dst) {
|
||||||
$isFilter = true;
|
if ($this->isMatch($src, $dst)) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src]));
|
$updatedProxies[] = $dst;
|
||||||
if ($this->isMatch($src, $dst)) {
|
}
|
||||||
array_push($config['proxy-groups'][$k]['proxies'], $dst);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$updatedProxies[] = $src;
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
if (empty($updatedProxies) && !empty($config['proxy-groups'][$k]['proxies'])) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies);
|
$updatedProxies = array_merge($updatedProxies, $proxies);
|
||||||
|
}
|
||||||
|
$config['proxy-groups'][$k]['proxies'] = $updatedProxies;
|
||||||
}
|
}
|
||||||
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
||||||
return $group['proxies'];
|
return $group['proxies'];
|
||||||
|
26
app/Http/Controllers/Client/Protocols/Stash.php
Normal file → Executable file
26
app/Http/Controllers/Client/Protocols/Stash.php
Normal file → Executable file
@ -59,21 +59,23 @@ class Stash
|
|||||||
|
|
||||||
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
$config['proxies'] = array_merge($config['proxies'] ? $config['proxies'] : [], $proxy);
|
||||||
foreach ($config['proxy-groups'] as $k => $v) {
|
foreach ($config['proxy-groups'] as $k => $v) {
|
||||||
if (!is_array($config['proxy-groups'][$k]['proxies'])) continue;
|
if (!is_array($config['proxy-groups'][$k]['proxies'])) $config['proxy-groups'][$k]['proxies'] = [];
|
||||||
$isFilter = false;
|
$updatedProxies = [];
|
||||||
foreach ($config['proxy-groups'][$k]['proxies'] as $src) {
|
foreach ($config['proxy-groups'][$k]['proxies'] as $index => $src) {
|
||||||
foreach ($proxies as $dst) {
|
if ($this->isRegex($src)) {
|
||||||
if (!$this->isRegex($src)) continue;
|
foreach ($proxies as $dst) {
|
||||||
$isFilter = true;
|
if ($this->isMatch($src, $dst)) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_values(array_diff($config['proxy-groups'][$k]['proxies'], [$src]));
|
$updatedProxies[] = $dst;
|
||||||
if ($this->isMatch($src, $dst)) {
|
}
|
||||||
array_push($config['proxy-groups'][$k]['proxies'], $dst);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$updatedProxies[] = $src;
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
|
||||||
}
|
}
|
||||||
if ($isFilter) continue;
|
if (empty($updatedProxies) && !empty($config['proxy-groups'][$k]['proxies'])) {
|
||||||
$config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies);
|
$updatedProxies = array_merge($updatedProxies, $proxies);
|
||||||
|
}
|
||||||
|
$config['proxy-groups'][$k]['proxies'] = $updatedProxies;
|
||||||
}
|
}
|
||||||
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
$config['proxy-groups'] = array_filter($config['proxy-groups'], function($group) {
|
||||||
return $group['proxies'];
|
return $group['proxies'];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user