Browse Source

Add v2rayN和v2rayNG订阅中显示用户的剩余流量和到期时间的信息

Bob 4 years ago
parent
commit
91b0a97d9f
1 changed files with 22 additions and 4 deletions
  1. 22 4
      app/Http/Controllers/ClientController.php

+ 22 - 4
app/Http/Controllers/ClientController.php

@@ -35,13 +35,13 @@ class ClientController extends Controller
             return $this->shadowrocket($user, $servers);
         }
         if (strpos($target, 'v2rayn') !== false) {
-            return $this->v2rayN($servers);
+            return $this->v2rayN($user, $servers);
         }
         if (strpos($target, 'v2rayng') !== false) {
-            return $this->v2rayN($servers);
+            return $this->v2rayN($user, $servers);
         }
         if (strpos($target, 'v2rayu') !== false) {
-            return $this->v2rayN($servers);
+            return $this->v2rayN($user, $servers);
         }
 //            if (strpos($target, 'shadowsocks') !== false) {
 //                exit($this->shaodowsocksSIP008($servers));
@@ -233,9 +233,27 @@ class ClientController extends Controller
         return json_encode(['version' => 1, 'remark' => sysConfig('website_name'), 'servers' => $configs ?? []], JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
     }
 
-    private function v2rayN($servers)
+    private function v2rayN(User $user, $servers)
     {
         $uri = '';
+        if (sysConfig('is_custom_subscribe')) {
+            $text = '';
+            if (strtotime($user->expired_at) > time()) {
+                if ($user->transfer_enable == 0) {
+                    $text .= '剩余流量:0';
+                } else {
+                    $text .= '剩余流量:'.flowAutoShow($user->transfer_enable);
+                }
+                $text .= ', 过期时间:'.$user->expired_at;
+            } else {
+                $text .= '账户已过期,请续费后使用';
+            }
+            $uri .= 'vmess://'.base64url_encode(json_encode([
+                    'v' => '2', 'ps' => $text, 'add' => sysConfig('website_url'), 'port' => 0, 'id' => $user->vmess_id, 'aid' => 0, 'net' => 'tcp',
+                    'type' => 'none', 'host' => sysConfig('website_url'), 'path' => '/', 'tls' => 'tls',
+                ], JSON_PRETTY_PRINT)).PHP_EOL;
+        }
+
         foreach ($servers as $server) {
             if ($server['type'] === 'shadowsocksr') {
                 $uri .= V2rayN::buildShadowsocksr($server);