socks.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. $app->any('/socks/{app}/{route:.*}', function ($request, $response, $args) {
  3. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  4. switch ($args['app']) {
  5. case 'sonarr':
  6. $url = 'sonarrURL';
  7. $enabled = 'sonarrSocksEnabled';
  8. $auth = 'sonarrSocksAuth';
  9. $header = 'X-Api-Key';
  10. break;
  11. case 'radarr':
  12. $url = 'radarrURL';
  13. $enabled = 'radarrSocksEnabled';
  14. $auth = 'radarrSocksAuth';
  15. $header = 'X-Api-Key';
  16. break;
  17. case 'lidarr':
  18. $url = 'lidarrURL';
  19. $enabled = 'lidarrSocksEnabled';
  20. $auth = 'lidarrSocksAuth';
  21. $header = 'X-Api-Key';
  22. break;
  23. case 'sabnzbd':
  24. $url = 'sabnzbdURL';
  25. $enabled = 'sabnzbdSocksEnabled';
  26. $auth = 'sabnzbdSocksAuth';
  27. $header = null;
  28. break;
  29. case 'nzbget':
  30. $url = 'nzbgetURL';
  31. $enabled = 'nzbgetSocksEnabled';
  32. $auth = 'nzbgetSocksAuth';
  33. $header = 'Authorization';
  34. break;
  35. default:
  36. $Organizr->setAPIResponse('error', 'Application not supported for socks', 404);
  37. $response->getBody()->write(jsonE($GLOBALS['api']));
  38. return $response
  39. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  40. ->withStatus($GLOBALS['responseCode']);
  41. }
  42. $socks = $Organizr->socks($url, $enabled, $auth, $request, $header);
  43. $data = $socks ?? jsonE($GLOBALS['api']);
  44. $response->getBody()->write($data);
  45. return $response
  46. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  47. ->withStatus($GLOBALS['responseCode']);
  48. });