diff --git a/app/bot.php b/app/bot.php index 3b2d93b..6d390f2 100644 --- a/app/bot.php +++ b/app/bot.php @@ -3505,30 +3505,28 @@ DNS-over-HTTPS with IP: ); } - public function userXr($i, $fs = 0) + public function userXr($i, $fs = 0, $fv = 0) { - $c = $this->getXray(); - $domain = $this->getPacConf()['domain'] ?: $this->ip; - $scheme = empty($this->nginxGetTypeCert()) ? 'http' : 'https'; - $hash = substr(md5($this->key), 0, 8); - $v2ray = "$scheme://{$domain}/pac?h=$hash&t=s&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}"; - $sing = "$scheme://{$domain}/pac?h=$hash&t=si&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}"; - $fullsing = 'sing-box://import-remote-profile/?url=' . urlencode("$scheme://{$domain}/pac?h=$hash&t=si&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}") . "#vpnbot$i"; + $c = $this->getXray(); + $domain = $this->getPacConf()['domain'] ?: $this->ip; + $scheme = empty($this->nginxGetTypeCert()) ? 'http' : 'https'; + $hash = substr(md5($this->key), 0, 8); + $v2ray = "$scheme://{$domain}/pac?h=$hash&t=s&b=1&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}"; + $sing = "$scheme://{$domain}/pac?h=$hash&t=si&b=1&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}"; + $fullsing = 'sing-box://import-remote-profile/?url=' . urlencode("$scheme://{$domain}/pac?h=$hash&t=si&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}") . "#vpnbot$i"; + $fullv2ray = 'v2rayng://install-config?url=' . urlencode("$scheme://{$domain}/pac?h=$hash&t=si&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}") . "#vpnbot$i"; if (!empty($fs)) { return $fullsing; } + if (!empty($fv)) { + return $fullv2ray; + } $text[] = "Menu -> " . $this->i18n('xray') . " -> {$c['inbounds'][0]['settings']['clients'][$i]['email']}\n"; $text[] = "{$this->linkXray($i)}\n"; - $text[] = "v2ray subscription: $v2ray"; - $text[] = "sing-box subscription: $sing"; + $text[] = "v2ray: $v2ray\n"; + $text[] = "sing-box: $sing"; - $data[] = [ - [ - 'text' => 'sing-box subscription', - 'web_app' => ['url' => "$scheme://{$domain}/pac?h=$hash&b=1&t=si&s={$c['inbounds'][0]['settings']['clients'][$i]['id']}"], - ], - ]; $data[] = [ [ 'text' => $this->i18n('show QR'), @@ -3561,7 +3559,7 @@ DNS-over-HTTPS with IP: ); } - public function v2raySubscription($key) + public function v2raySubscription($key, $fs = 0) { $pac = $this->getPacConf(); $domain = $pac['domain'] ?: $this->ip; @@ -3570,6 +3568,9 @@ DNS-over-HTTPS with IP: $flag = true; foreach ($xr['inbounds'][0]['settings']['clients'] as $k => $v) { if ($v['id'] == $key) { + if (!empty($fs)) { + return $this->userXr($k, 0, 1); + } $flag = false; break; } @@ -3691,6 +3692,8 @@ DNS-over-HTTPS with IP: ]; if (empty($c['routing']['rules'][0]['domain'])) { unset($c['routing']['rules'][0]); + $c['routing']['rules'] = array_values($c['routing']['rules']); + } echo json_encode($c); } @@ -3836,6 +3839,7 @@ DNS-over-HTTPS with IP: ]; if (empty($c['route']['rules'][1]['domain'])) { unset($c['route']['rules'][1]); + $c['route']['rules'] = array_values($c['route']['rules']); } return json_encode($c); } diff --git a/app/index.php b/app/index.php index b44c2c9..3e09ab7 100644 --- a/app/index.php +++ b/app/index.php @@ -34,7 +34,14 @@ if ($hash == substr(md5($c['key']), 0, 8)) { require __DIR__ . '/bot.php'; require __DIR__ . '/i18n.php'; $bot = new Bot($c['key'], $i); - $bot->v2raySubscription($_GET['s']); + if (!empty($_GET['b'])) { + $fs = $bot->v2raySubscription($_GET['s'], 1); + header("Location: $fs"); + exit; + } else { + header('Content-Type: application/json'); + echo $bot->v2raySubscription($_GET['s']); + } exit; case 'si': @@ -43,16 +50,12 @@ if ($hash == substr(md5($c['key']), 0, 8)) { $bot = new Bot($c['key'], $i); if (!empty($_GET['b'])) { $fs = $bot->singboxSubscription($_GET['s'], 1); - $r = << - sing-box - - HTML; + header("Location: $fs"); + exit; } else { header('Content-Type: application/json'); - $r = $bot->singboxSubscription($_GET['s']); + echo $bot->singboxSubscription($_GET['s']); } - echo $r; exit; default: diff --git a/version b/version index 31a03bb..c4bfa71 100644 --- a/version +++ b/version @@ -1,3 +1,9 @@ +09.04.2024 v1.15.2 +- редиректы вместо кнопки-подписки +- фикс добавления подписки +09.04.2024 v1.15.1 +- кнопка sing-box +- фикс пустого списка РАС для sing-box 09.04.2024 v1.15.1 - кнопка sing-box - фикс пустого списка РАС для sing-box