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