ClientController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Http\Controllers\Client;
  3. use App\Http\Controllers\Controller;
  4. use App\Services\ServerService;
  5. use Illuminate\Http\Request;
  6. use App\Services\UserService;
  7. class ClientController extends Controller
  8. {
  9. public function subscribe(Request $request)
  10. {
  11. $flag = $request->input('flag')
  12. ?? (isset($_SERVER['HTTP_USER_AGENT'])
  13. ? $_SERVER['HTTP_USER_AGENT']
  14. : '');
  15. $flag = strtolower($flag);
  16. $user = $request->user;
  17. // account not expired and is not banned.
  18. $userService = new UserService();
  19. if ($userService->isAvailable($user)) {
  20. $serverService = new ServerService();
  21. $servers = $serverService->getAvailableServers($user);
  22. if ($flag) {
  23. foreach (glob(app_path('Http//Controllers//Client//Protocols') . '/*.php') as $file) {
  24. $file = 'App\\Http\\Controllers\\Client\\Protocols\\' . basename($file, '.php');
  25. $class = new $file($user, $servers);
  26. if (strpos($flag, $class->flag) !== false) {
  27. die($class->handle());
  28. }
  29. }
  30. }
  31. die('该客户端暂不支持进行订阅');
  32. }
  33. }
  34. }