alroyso il y a 1 an
Parent
commit
2d17c47858

+ 55 - 10
app/Http/Controllers/ClientController.php

@@ -33,9 +33,10 @@ class ClientController extends Controller
         if (strpos($target, 'shadowrocket') !== false) {
             return $this->shadowrocket($user, $servers);
         }
-//        if (strpos($target, 'clashmeta') !== false) {
-//            return $this->clash($servers);
-//        }
+
+        if (strpos($target, 'meet') !== false) {
+            return $this->clash_meet($servers);
+        }
 //            if (strpos($target, 'shadowsocks') !== false) {
 //                exit($this->shaodowsocksSIP008($servers));
 //            }
@@ -102,8 +103,7 @@ class ClientController extends Controller
 
         return $encode ? base64_encode($uri) : $uri;
     }
-
-    private function clash($servers)
+    private function clash_meet($servers)
     {
         $defaultConfig = base_path().'/resources/rules/default.clash.yaml';
         $customConfig = base_path().'/resources/rules/custom.clash.yaml';
@@ -123,15 +123,60 @@ class ClientController extends Controller
                 $proxies[] = $server['name'];
             }
             if ($server['type'] === 'v2ray') {
-//                if ($server['vless'] == 1){
+                if ($server['vless'] == 1){
 //                    $proxy[] = Clash::buildVless($server);
 //                    $proxies[] = $server['name'];
-//                } else {
-//
-//                }
-                $proxy[] = Clash::buildVmess($server);
+                } else {
+                    $proxy[] = Clash::buildVmess($server);
+                    $proxies[] = $server['name'];
+                }
+
+            }
+            if ($server['type'] === 'trojan') {
+                $proxy[] = Clash::buildTrojan($server);
+                $proxies[] = $server['name'];
+            }
+        }
+
+        $config['proxies'] = array_merge($config['proxies'] ?: [], $proxy ?? []);
+        foreach ($config['proxy-groups'] as $k => $v) {
+            if (! is_array($config['proxy-groups'][$k]['proxies'])) {
+                continue;
+            }
+            $config['proxy-groups'][$k]['proxies'] = array_merge($config['proxy-groups'][$k]['proxies'], $proxies ?? []);
+        }
+
+        return str_replace('$app_name', sysConfig('website_name'), Yaml::dump($config));
+    }
+
+    private function clash($servers)
+    {
+        $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);
+        }
+
+        foreach ($servers as $server) {
+            if ($server['type'] === 'shadowsocks') {
+                $proxy[] = Clash::buildShadowsocks($server);
                 $proxies[] = $server['name'];
             }
+            if ($server['type'] === 'shadowsocksr') {
+                $proxy[] = Clash::buildShadowsocksr($server);
+                $proxies[] = $server['name'];
+            }
+            if ($server['type'] === 'v2ray') {
+                if ($server['vless'] == 1){
+                    $proxy[] = Clash::buildVless($server);
+                    $proxies[] = $server['name'];
+                } else {
+                    $proxy[] = Clash::buildVmess($server);
+                    $proxies[] = $server['name'];
+                }
+            }
             if ($server['type'] === 'trojan') {
                 $proxy[] = Clash::buildTrojan($server);
                 $proxies[] = $server['name'];

+ 37 - 39
app/Http/Controllers/DownloadControllers.php

@@ -17,12 +17,6 @@ use App\Models\Sms;
 class DownloadControllers extends Controller
 {
     public  function index(){
-//
-        $Article =  new Article();
-        $articles =$Article->get();
-//        dump($articles);
-//        die();
-
         if(Auth::check()){
             // 用户转换
             if (Session::has('user')) {
@@ -48,18 +42,17 @@ class DownloadControllers extends Controller
             }
 
             $subscribe = auth()->user()->subscribe;
-            //$subscribe_link = route('sub', $subscribe->code);
+            // $subscribe_link = route('sub', $subscribe->code);
             $subscribe_link = sysConfig('subscribe_domain') . "/s/" . $subscribe->code;
             $subscribe_linkA = "https://user.vipsix.top" . "/s/" . $subscribe->code;
-            $subscribe_linkB = "https://user.vipfive.top" . "/s/" . $subscribe->code;
-            $subscribe_linkC = "http://user.vipfive.top" . "/s/" . $subscribe->code;
-            $subscribe_linkD = "http://user.vipfive.top" . "/s/" . $subscribe->code;
+            $subscribe_linkB = "https://user.vipfour.xyz" . "/s/" . $subscribe->code;
+            $subscribe_linkC = "https://user.jyjksmd.top" . "/s/" . $subscribe->code;
+            $subscribe_linkD = "user.vipfour.xyz" . "/s/" . $subscribe->code . "?target=meet";
+            $subscribe_linkF = "user.jyjksmd.top" . "/s/" . $subscribe->code . "?target=meet";
 //            $subarr = ["A"=>"","B"=>""];
 
-
-
             return view('down.dowload', [
-                "islogin"                 => 1 ,
+                "islogin"                 => 1,
                 'remainDays'       => $expireTime < date('Y-m-d') ? -1 : Helpers::daysToNow($expireTime),
                 'username'                  => $profile["account"],
                 'unusedTraffic'             => flowAutoShow($unusedTraffic),
@@ -67,16 +60,17 @@ class DownloadControllers extends Controller
                 'expireTime'                => $expireTime,
                 'banedTime'                 => $user->ban_time,
                 'unusedPercent'             => $totalTransfer > 0 ? round($unusedTraffic / $totalTransfer, 2) * 100 : 0,
-                'articlelist'               =>$articles,
-//                "android"                 => Article::whereId(8)->first(),
-//                "ios"                     => Article::whereId(7)->first(),
-//                "windows"                 => Article::whereId(9)->first(),
-//                "game"                 => Article::whereId(5)->first(),
-//                "mac"                   => Article::whereId(6)->first(),
-//                "wx"                   => Article::whereId(10)->first(),
-//                "v2"                   => Article::whereId(11)->first(),
-//                "pg"                   => Article::whereId(7)->first(),
-//                "sp"                   => Article::whereId(13)->first(),
+                "android"                 => Article::whereId(8)->first(),
+                "pg"                 => Article::whereId(7)->first(),
+                "windows"                 => Article::whereId(9)->first(),
+                  "mac"                 => Article::whereId(6)->first(),
+                   "game"                 => Article::whereId(5)->first(),
+                   "v2"                 => Article::whereId(16)->first(),
+                   "wx"                 => Article::whereId(10)->first(),
+                    "ios"                 => Article::whereId(7)->first(),
+                    "sp"                 => Article::whereId(13)->first(),
+
+
                 'subUrl'                  => sysConfig('subscribe_domain') . "/s/" . $subscribe->code,
                 'sub'                     => $data,
                 'paying_user'             => auth()->user()->activePayingUser(), // 付费用户判断
@@ -84,7 +78,9 @@ class DownloadControllers extends Controller
                 'Quantumult_install'      => 'itms-services://?action=download-manifest&url='.sysConfig('website_url').'/clients/Quantumult.plist', // 客户端安装
                 'subscribe_status'        => $subscribe->status, // 订阅连接
                 'link'                    => $subscribe_link,
-                'linkbak'                 => $subscribe_linkD,
+                'link2'                    => $subscribe_linkC, //主域名
+                'link3'          =>$subscribe_linkF,
+                'link4'          =>$subscribe_linkD,
                 'subscribe_link'          => 'sub://'.base64url_encode($subscribe_link),
                 'Shadowrocket_link'       => 'shadowrocket://add/sub://'.base64url_encode($subscribe_link).'?remarks='.sysConfig('website_name'),
                 'Shadowrocket_linkA'       => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkA).'?remarks='.sysConfig('website_name'),
@@ -97,6 +93,8 @@ class DownloadControllers extends Controller
                 'Clash_linkA'              => "clash://install-config?url={$subscribe_linkA}",
                 'Clash_linkB'              => "clash://install-config?url={$subscribe_linkB}",
                 'Clash_linkC'              => "clash:///install-config?url={$subscribe_linkC}",
+                'Clash_linkD'              => "clash://install-config?url=http%3A%2F%2F{$subscribe_linkD}",
+                'Clash_linkF'              => "clash://install-config?url=http%3A%2F%2F{$subscribe_linkF}",
                 'Quantumultx'             => 'quantumult-x:///update-configuration?remote-resource='.json_encode([
                         'server_remote'  => "{$subscribe_link},  tag=".urlencode(sysConfig('website_name').' '.sysConfig('website_url')),
                         'filter_remote'  => '',
@@ -105,22 +103,22 @@ class DownloadControllers extends Controller
                 'Quantumult_linkOut'      => 'quantumult://configuration?server='.base64url_encode($subscribe_link).'&filter='.base64url_encode('https://raw.githubusercontent.com/ZBrettonYe/VPN-Rules-Collection/master/Profiles/Quantumult/Pro.conf').'&rejection='.base64url_encode('https://raw.githubusercontent.com/ZBrettonYe/VPN-Rules-Collection/master/Profiles/Quantumult/Rejection.conf'),
                 'Quantumult_linkIn'       => 'quantumult://configuration?server='.base64url_encode($subscribe_link).'&filter='.base64url_encode('https://raw.githubusercontent.com/ZBrettonYe/VPN-Rules-Collection/master/Profiles/Quantumult/BacktoCN.conf').'&rejection='.base64url_encode('https://raw.githubusercontent.com/ZBrettonYe/VPN-Rules-Collection/master/Profiles/Quantumult/Rejection.conf'),
             ]);
-        }
-        else {
-            return view('down.dowload',[
+        } else {
+            return view('down.dowIndex',[
                 "islogin"  => 0,
-                "subUrl"   => "",
-                'articlelist'               =>$articles,
-//                "android"                 => Article::whereId(8)->first(),
-//                "ios"                     => Article::whereId(7)->first(),
-//                "windows"                 => Article::whereId(9)->first(),
-//                "game"                 => Article::whereId(5)->first(),
-//                "mac"                   => Article::whereId(6)->first(),
-//                "wx"                   => Article::whereId(10)->first(),
-//                "v2"                   => Article::whereId(11)->first(),
-//                "pg"                   => Article::whereId(7)->first(),
-//                "sp"                   => Article::whereId(13)->first(),
-            ]);
+                "android"                 => Article::whereId(8)->first(),
+                "pg"                 => Article::whereId(7)->first(),
+                 "windows"                 => Article::whereId(9)->first(),
+                 "mac"                 => Article::whereId(6)->first(),
+                  "game"                 => Article::whereId(5)->first(),
+                   "v2"                 => Article::whereId(16)->first(),
+                    "wx"                 => Article::whereId(10)->first(),
+                    "ios"                 => Article::whereId(7)->first(),
+                    "sp"                 => Article::whereId(13)->first(),
+                    "link"                 => "",
+                    "link2"                 => "",
+
+                ]);
         }
     }