DownloadControllers.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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://user.vipsix.top" . "/s/" . $subscribe->code;
  44. $subscribe_linkB = "https://user.vipfive.top" . "/s/" . $subscribe->code;
  45. $subscribe_linkC = "http://user.vipfive.top" . "/s/" . $subscribe->code;
  46. // $subarr = ["A"=>"","B"=>""];
  47. return view('down.dowload', [
  48. "islogin" => 1,
  49. 'remainDays' => $expireTime < date('Y-m-d') ? -1 : Helpers::daysToNow($expireTime),
  50. 'username' => $profile["account"],
  51. 'unusedTraffic' => flowAutoShow($unusedTraffic),
  52. 'totalTransfer' => flowAutoShow($totalTransfer),
  53. 'expireTime' => $expireTime,
  54. 'banedTime' => $user->ban_time,
  55. 'unusedPercent' => $totalTransfer > 0 ? round($unusedTraffic / $totalTransfer, 2) * 100 : 0,
  56. "android" => Article::whereId(8)->first(),
  57. "ios" => Article::whereId(7)->first(),
  58. "windows" => Article::whereId(9)->first(),
  59. "game" => Article::whereId(5)->first(),
  60. "mac" => Article::whereId(6)->first(),
  61. "wx" => Article::whereId(10)->first(),
  62. "v2" => Article::whereId(11)->first(),
  63. "pg" => Article::whereId(7)->first(),
  64. "sp" => Article::whereId(13)->first(),
  65. 'subUrl' => sysConfig('subscribe_domain') . "/s/" . $subscribe->code,
  66. 'sub' => $data,
  67. 'paying_user' => auth()->user()->activePayingUser(), // 付费用户判断
  68. 'Shadowrocket_install' => 'itms-services://?action=download-manifest&url='.sysConfig('website_url').'/clients/Shadowrocket.plist', // 客户端安装
  69. 'Quantumult_install' => 'itms-services://?action=download-manifest&url='.sysConfig('website_url').'/clients/Quantumult.plist', // 客户端安装
  70. 'subscribe_status' => $subscribe->status, // 订阅连接
  71. 'link' => $subscribe_link,
  72. 'subscribe_link' => 'sub://'.base64url_encode($subscribe_link),
  73. 'Shadowrocket_link' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_link).'?remarks='.sysConfig('website_name'),
  74. 'Shadowrocket_linkA' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkA).'?remarks='.sysConfig('website_name'),
  75. 'Shadowrocket_linkB' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkB).'?remarks='.sysConfig('website_name'),
  76. 'Shadowrocket_linkC' => 'shadowrocket://add/sub://'.base64url_encode($subscribe_linkC).'?remarks='.sysConfig('website_name'),
  77. 'Shadowrocket_linkQrcode' => 'sub://'.base64url_encode($subscribe_link).'#'.base64url_encode(sysConfig('website_name')),
  78. 'Clash_link' => "clash://install-config?url={$subscribe_link}",
  79. 'Clash_linkA' => "clash://install-config?url={$subscribe_linkA}",
  80. 'Clash_linkB' => "clash://install-config?url={$subscribe_linkB}",
  81. 'Clash_linkC' => "clash:///install-config?url={$subscribe_linkC}",
  82. 'Quantumultx' => 'quantumult-x:///update-configuration?remote-resource='.json_encode([
  83. 'server_remote' => "{$subscribe_link}, tag=".urlencode(sysConfig('website_name').' '.sysConfig('website_url')),
  84. 'filter_remote' => '',
  85. 'rewrite_remote' => '',
  86. ]),
  87. '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'),
  88. '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'),
  89. ]);
  90. } else {
  91. return view('down.dowIndex',[
  92. "islogin" => 0,
  93. "android" => Article::whereId(8)->first(),
  94. "ios" => Article::whereId(7)->first(),
  95. "windows" => Article::whereId(9)->first(),
  96. "game" => Article::whereId(5)->first(),
  97. "mac" => Article::whereId(6)->first(),
  98. "wx" => Article::whereId(10)->first(),
  99. "v2" => Article::whereId(11)->first(),
  100. "pg" => Article::whereId(7)->first(),
  101. "sp" => Article::whereId(13)->first(),
  102. ]);
  103. }
  104. }
  105. public function down(){
  106. }
  107. public function article(Request $request)
  108. {
  109. $id = $request->input("id");
  110. $query = Article::whereId($id)->first();
  111. //var_dump($query); die();
  112. return view('down.article',["article" => $query]);
  113. }
  114. /**
  115. $values = Redis::lrange('dxzym',0,-1); //获取所有
  116. if(!empty($values)){
  117. foreach ($values as $key => $value){
  118. $data = json_decode($value, true);
  119. $datas[$key]["fromNumber"] = $data["fromNumber"];
  120. $datas[$key]["text"] = $data["text"];
  121. $datas[$key]["time"] = $data["time"];
  122. Redis::lrem('dxzym',$key,$value);
  123. }
  124. }
  125. * @param Request $request
  126. * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
  127. */
  128. public function ShowCode(Request $request){
  129. // $datas = [];
  130. //
  131. // $values = Redis::lrange('dxzym',0,-1); //获取所有
  132. // if(!empty($values)){
  133. // foreach ($values as $key => $value){
  134. //
  135. // $data = json_decode($value, true);
  136. // $datas[$key]["fromNumber"] = $data["fromNumber"];
  137. // $datas[$key]["text"] = $data["text"];
  138. // $datas[$key]["time"] = $data["time"];
  139. //
  140. // Redis::lrem('dxzym',$key,$value);
  141. //
  142. // }
  143. // }
  144. $sql = Sms::where('created_at','>=',date('Y-m-d H:i:s', strtotime(' -10 minutes')))->orderByDesc('created_at')->get();
  145. //return response()->json(['ret' => 1, 'code' => $sql], 200);
  146. return view('down.zym',['CodeList' => $sql]);
  147. }
  148. }