DownloadControllers.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Node;
  5. use App\Models\Article;
  6. use Helpers;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Validation\Rule;
  10. use Illuminate\Support\Facades\Redis;
  11. use Auth;
  12. use Session;
  13. use App\Models\Sms;
  14. class DownloadControllers extends Controller
  15. {
  16. public function index(){
  17. if(Auth::check()){
  18. // 用户转换
  19. if (Session::has('user')) {
  20. auth()->loginUsingId(Session::get('user'));
  21. Session::forget('user');
  22. }
  23. $user = auth()->user();
  24. $totalTransfer = $user->transfer_enable;
  25. $usedTransfer = $user->usedTraffic();
  26. $unusedTraffic = $totalTransfer - $usedTransfer > 0 ? $totalTransfer - $usedTransfer : 0;
  27. $expireTime = $user->expired_at;
  28. $profile= auth()->user()->profile();
  29. $data = [];
  30. if (Node::whereIn('type', [1, 4])->whereStatus(1)->exists()) {
  31. $data[] = 'ss';
  32. //array_push
  33. }
  34. if (Node::whereType(2)->whereStatus(1)->exists()) {
  35. $data[] = 'v2';
  36. }
  37. if (Node::whereType(3)->whereStatus(1)->exists()) {
  38. $data[] = 'trojan';
  39. }
  40. $subscribe = auth()->user()->subscribe;
  41. // $subscribe_link = route('sub', $subscribe->code);
  42. $subscribe_link = sysConfig('subscribe_domain') . "/s/" . $subscribe->code;
  43. $subscribe_linkA = "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $subscribe->code;
  44. $subscribe_linkB = "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $subscribe->code;
  45. $subscribe_linkC = "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $subscribe->code;
  46. $subscribe_linkD = "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $subscribe->code . "?target=meet";
  47. $subscribe_linkF = "https://107.148.72.132" . "/s/" . $subscribe->code . "?target=meet";
  48. $subscribe_linkG = "https://naizi1124.xn--3iq226gfdb94q.com" . "/s/" . $subscribe->code . "?target=clash";
  49. // $subarr = ["A"=>"","B"=>""];
  50. return view('down.dowload', [
  51. "islogin" => 1,
  52. 'remainDays' => $expireTime < date('Y-m-d') ? -1 : Helpers::daysToNow($expireTime),
  53. 'username' => $profile["account"],
  54. 'unusedTraffic' => flowAutoShow($unusedTraffic),
  55. 'totalTransfer' => flowAutoShow($totalTransfer),
  56. 'expireTime' => $expireTime,
  57. 'banedTime' => $user->ban_time,
  58. 'unusedPercent' => $totalTransfer > 0 ? round($unusedTraffic / $totalTransfer, 2) * 100 : 0,
  59. "android" => Article::whereId(8)->first(),
  60. "pg" => Article::whereId(7)->first(),
  61. "windows" => Article::whereId(9)->first(),
  62. "mac" => Article::whereId(6)->first(),
  63. "game" => Article::whereId(5)->first(),
  64. "v2" => Article::whereId(16)->first(),
  65. "wx" => Article::whereId(10)->first(),
  66. "ios" => Article::whereId(7)->first(),
  67. "sp" => Article::whereId(13)->first(),
  68. 'subUrl' => sysConfig('subscribe_domain') . "/s/" . $subscribe->code,
  69. 'sub' => $data,
  70. 'paying_user' => auth()->user()->activePayingUser(), // 付费用户判断
  71. 'Shadowrocket_install' => 'itms-services://?action=download-manifest&url='.sysConfig('website_url').'/clients/Shadowrocket.plist', // 客户端安装
  72. 'Quantumult_install' => 'itms-services://?action=download-manifest&url='.sysConfig('website_url').'/clients/Quantumult.plist', // 客户端安装
  73. 'subscribe_status' => $subscribe->status, // 订阅连接
  74. 'link' => $subscribe_link,
  75. 'link2' => $subscribe_linkC, //主域名
  76. 'link3' =>$subscribe_linkF,
  77. 'link4' =>$subscribe_linkD,
  78. 'link5' => $subscribe_linkB, //国内域名
  79. 'link6' => $subscribe_linkG, //国内域名
  80. # foxray://yiguo.dev/sub/add/?url=base64#name
  81. 'subscribe_link_for_xray' => 'foxray://add/sub://'.base64url_encode($subscribe_link).'?remarks='.sysConfig('website_name'),
  82. 'subscribe_link' => 'sub://'.base64url_encode($subscribe_link),
  83. 'Shadowrocket_link' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_link).'?remarks='.sysConfig('website_name'),
  84. 'Shadowrocket_linkA' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkA).'?remarks='.sysConfig('website_name'),
  85. 'Shadowrocket_linkB' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkB).'?remarks='.sysConfig('website_name'),
  86. 'Shadowrocket_linkC' => 'foxray://yiguo.dev/sub/add/?url='.base64url_encode($subscribe_linkG) . '#' .sysConfig('website_name'),
  87. 'Shadowrocket_linkQrcode' => 'sub://'.base64url_encode($subscribe_link).'#'.base64url_encode(sysConfig('website_name')),
  88. 'Clash_link' => "clash://install-config?url={$subscribe_link}",
  89. 'Clash_linkA' => "clash://install-config?url={$subscribe_linkA}",
  90. 'Clash_linkB' => "clash://install-config?url={$subscribe_linkB}",
  91. 'Clash_linkC' => "clash:///install-config?url={$subscribe_linkC}",
  92. 'Clash_linkD' => "clash://install-config?url={$subscribe_linkD}",
  93. 'Clash_linkF' => "clash://install-config?url={$subscribe_linkF}",
  94. 'Quantumultx' => 'quantumult-x:///update-configuration?remote-resource='.json_encode([
  95. 'server_remote' => "{$subscribe_link}, tag=".urlencode(sysConfig('website_name').' '.sysConfig('website_url')),
  96. 'filter_remote' => '',
  97. 'rewrite_remote' => '',
  98. ]),
  99. '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'),
  100. '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'),
  101. ]);
  102. } else {
  103. return view('down.dowIndex',[
  104. "islogin" => 0,
  105. "android" => Article::whereId(8)->first(),
  106. "pg" => Article::whereId(7)->first(),
  107. "windows" => Article::whereId(9)->first(),
  108. "mac" => Article::whereId(6)->first(),
  109. "game" => Article::whereId(5)->first(),
  110. "v2" => Article::whereId(16)->first(),
  111. "wx" => Article::whereId(10)->first(),
  112. "ios" => Article::whereId(7)->first(),
  113. "sp" => Article::whereId(13)->first(),
  114. "link" => "",
  115. "link2" => "",
  116. ]);
  117. }
  118. }
  119. public function down(){
  120. }
  121. public function article(Request $request)
  122. {
  123. $id = $request->input("id");
  124. $query = Article::whereId($id)->first();
  125. //var_dump($query); die();
  126. return view('down.article',["article" => $query]);
  127. }
  128. /**
  129. $values = Redis::lrange('dxzym',0,-1); //获取所有
  130. if(!empty($values)){
  131. foreach ($values as $key => $value){
  132. $data = json_decode($value, true);
  133. $datas[$key]["fromNumber"] = $data["fromNumber"];
  134. $datas[$key]["text"] = $data["text"];
  135. $datas[$key]["time"] = $data["time"];
  136. Redis::lrem('dxzym',$key,$value);
  137. }
  138. }
  139. * @param Request $request
  140. * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
  141. */
  142. public function ShowCode(Request $request){
  143. // $datas = [];
  144. //
  145. // $values = Redis::lrange('dxzym',0,-1); //获取所有
  146. // if(!empty($values)){
  147. // foreach ($values as $key => $value){
  148. //
  149. // $data = json_decode($value, true);
  150. // $datas[$key]["fromNumber"] = $data["fromNumber"];
  151. // $datas[$key]["text"] = $data["text"];
  152. // $datas[$key]["time"] = $data["time"];
  153. //
  154. // Redis::lrem('dxzym',$key,$value);
  155. //
  156. // }
  157. // }
  158. $sql = Sms::where('created_at','>=',date('Y-m-d H:i:s', strtotime(' -10 minutes')))->orderByDesc('created_at')->get();
  159. //return response()->json(['ret' => 1, 'code' => $sql], 200);
  160. return view('down.zym',['CodeList' => $sql]);
  161. }
  162. }