DownloadControllers.php 8.9 KB

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