DownloadControllers.php 10 KB

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