homepage.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. <?php
  2. $app->get('/homepage/image', function ($request, $response, $args) {
  3. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  4. $Organizr->getHomepageMediaImage();
  5. // Don't need below as we kill script... maybe i should clean up correctly
  6. $response->getBody()->write(jsonE($GLOBALS['api']));
  7. return $response
  8. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  9. ->withStatus($GLOBALS['responseCode']);
  10. });
  11. $app->get('/homepage/calendar', function ($request, $response, $args) {
  12. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  13. $Organizr->getCalendar();
  14. $response->getBody()->write(jsonE($GLOBALS['api']));
  15. return $response
  16. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  17. ->withStatus($GLOBALS['responseCode']);
  18. });
  19. $app->get('/homepage/plex/streams', function ($request, $response, $args) {
  20. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  21. $Organizr->getPlexHomepageStreams();
  22. $response->getBody()->write(jsonE($GLOBALS['api']));
  23. return $response
  24. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  25. ->withStatus($GLOBALS['responseCode']);
  26. });
  27. $app->get('/homepage/emby/streams', function ($request, $response, $args) {
  28. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  29. $Organizr->getEmbyHomepageStreams();
  30. $response->getBody()->write(jsonE($GLOBALS['api']));
  31. return $response
  32. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  33. ->withStatus($GLOBALS['responseCode']);
  34. });
  35. $app->get('/homepage/jellyfin/streams', function ($request, $response, $args) {
  36. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  37. $Organizr->getJellyfinHomepageStreams();
  38. $response->getBody()->write(jsonE($GLOBALS['api']));
  39. return $response
  40. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  41. ->withStatus($GLOBALS['responseCode']);
  42. });
  43. $app->get('/homepage/plex/recent', function ($request, $response, $args) {
  44. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  45. $Organizr->getPlexHomepageRecent();
  46. $response->getBody()->write(jsonE($GLOBALS['api']));
  47. return $response
  48. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  49. ->withStatus($GLOBALS['responseCode']);
  50. });
  51. $app->get('/homepage/emby/recent', function ($request, $response, $args) {
  52. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  53. $Organizr->getEmbyHomepageRecent();
  54. $response->getBody()->write(jsonE($GLOBALS['api']));
  55. return $response
  56. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  57. ->withStatus($GLOBALS['responseCode']);
  58. });
  59. $app->get('/homepage/jellyfin/recent', function ($request, $response, $args) {
  60. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  61. $Organizr->getJellyfinHomepageRecent();
  62. $response->getBody()->write(jsonE($GLOBALS['api']));
  63. return $response
  64. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  65. ->withStatus($GLOBALS['responseCode']);
  66. });
  67. $app->get('/homepage/plex/playlists', function ($request, $response, $args) {
  68. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  69. $Organizr->getPlexHomepagePlaylists();
  70. $response->getBody()->write(jsonE($GLOBALS['api']));
  71. return $response
  72. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  73. ->withStatus($GLOBALS['responseCode']);
  74. });
  75. $app->post('/homepage/plex/metadata', function ($request, $response, $args) {
  76. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  77. $Organizr->getPlexHomepageMetadata($Organizr->apiData($request));
  78. $response->getBody()->write(jsonE($GLOBALS['api']));
  79. return $response
  80. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  81. ->withStatus($GLOBALS['responseCode']);
  82. });
  83. $app->post('/homepage/emby/metadata', function ($request, $response, $args) {
  84. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  85. $Organizr->getEmbyHomepageMetadata($Organizr->apiData($request));
  86. $response->getBody()->write(jsonE($GLOBALS['api']));
  87. return $response
  88. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  89. ->withStatus($GLOBALS['responseCode']);
  90. });
  91. $app->post('/homepage/jellyfin/metadata', function ($request, $response, $args) {
  92. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  93. $Organizr->getJellyfinHomepageMetadata($Organizr->apiData($request));
  94. $response->getBody()->write(jsonE($GLOBALS['api']));
  95. return $response
  96. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  97. ->withStatus($GLOBALS['responseCode']);
  98. });
  99. $app->get('/homepage/plex/search/{query}', function ($request, $response, $args) {
  100. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  101. $Organizr->getPlexHomepageSearch($args['query']);
  102. $response->getBody()->write(jsonE($GLOBALS['api']));
  103. return $response
  104. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  105. ->withStatus($GLOBALS['responseCode']);
  106. });
  107. $app->get('/homepage/pihole/stats', function ($request, $response, $args) {
  108. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  109. $Organizr->getPiholeHomepageStats();
  110. $response->getBody()->write(jsonE($GLOBALS['api']));
  111. return $response
  112. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  113. ->withStatus($GLOBALS['responseCode']);
  114. });
  115. $app->get('/homepage/rtorrent/queue', function ($request, $response, $args) {
  116. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  117. $Organizr->getRTorrentHomepageQueue();
  118. $response->getBody()->write(jsonE($GLOBALS['api']));
  119. return $response
  120. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  121. ->withStatus($GLOBALS['responseCode']);
  122. });
  123. $app->get('/homepage/sonarr/queue', function ($request, $response, $args) {
  124. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  125. $Organizr->getSonarrQueue();
  126. $response->getBody()->write(jsonE($GLOBALS['api']));
  127. return $response
  128. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  129. ->withStatus($GLOBALS['responseCode']);
  130. });
  131. $app->get('/homepage/sonarr/calendar', function ($request, $response, $args) {
  132. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  133. $Organizr->getSonarrCalendar();
  134. $response->getBody()->write(jsonE($GLOBALS['api']));
  135. return $response
  136. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  137. ->withStatus($GLOBALS['responseCode']);
  138. });
  139. $app->get('/homepage/radarr/queue', function ($request, $response, $args) {
  140. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  141. $Organizr->getRadarrQueue();
  142. $response->getBody()->write(jsonE($GLOBALS['api']));
  143. return $response
  144. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  145. ->withStatus($GLOBALS['responseCode']);
  146. });
  147. $app->get('/homepage/radarr/calendar', function ($request, $response, $args) {
  148. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  149. $Organizr->getRadarrCalendar();
  150. $response->getBody()->write(jsonE($GLOBALS['api']));
  151. return $response
  152. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  153. ->withStatus($GLOBALS['responseCode']);
  154. });
  155. $app->get('/homepage/lidarr/calendar', function ($request, $response, $args) {
  156. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  157. $Organizr->getLidarrCalendar();
  158. $response->getBody()->write(jsonE($GLOBALS['api']));
  159. return $response
  160. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  161. ->withStatus($GLOBALS['responseCode']);
  162. });
  163. $app->get('/homepage/couchpotato/calendar', function ($request, $response, $args) {
  164. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  165. $Organizr->getCouchPotatoCalendar();
  166. $response->getBody()->write(jsonE($GLOBALS['api']));
  167. return $response
  168. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  169. ->withStatus($GLOBALS['responseCode']);
  170. });
  171. $app->get('/homepage/sickrage/calendar', function ($request, $response, $args) {
  172. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  173. $Organizr->getSickRageCalendar();
  174. $response->getBody()->write(jsonE($GLOBALS['api']));
  175. return $response
  176. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  177. ->withStatus($GLOBALS['responseCode']);
  178. });
  179. $app->get('/homepage/ical/calendar', function ($request, $response, $args) {
  180. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  181. $Organizr->getICalendar();
  182. $response->getBody()->write(jsonE($GLOBALS['api']));
  183. return $response
  184. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  185. ->withStatus($GLOBALS['responseCode']);
  186. });
  187. $app->get('/homepage/deluge/queue', function ($request, $response, $args) {
  188. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  189. $Organizr->getDelugeHomepageQueue();
  190. $response->getBody()->write(jsonE($GLOBALS['api']));
  191. return $response
  192. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  193. ->withStatus($GLOBALS['responseCode']);
  194. });
  195. $app->get('/homepage/transmission/queue', function ($request, $response, $args) {
  196. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  197. $Organizr->getTransmissionHomepageQueue();
  198. $response->getBody()->write(jsonE($GLOBALS['api']));
  199. return $response
  200. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  201. ->withStatus($GLOBALS['responseCode']);
  202. });
  203. $app->get('/homepage/qbittorrent/queue', function ($request, $response, $args) {
  204. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  205. $Organizr->getQBittorrentHomepageQueue();
  206. $response->getBody()->write(jsonE($GLOBALS['api']));
  207. return $response
  208. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  209. ->withStatus($GLOBALS['responseCode']);
  210. });
  211. $app->get('/homepage/utorrent/queue', function ($request, $response, $args) {
  212. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  213. $Organizr->getuTorrentHomepageQueue();
  214. $response->getBody()->write(jsonE($GLOBALS['api']));
  215. return $response
  216. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  217. ->withStatus($GLOBALS['responseCode']);
  218. });
  219. $app->get('/homepage/jdownloader/queue', function ($request, $response, $args) {
  220. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  221. $Organizr->getJdownloaderHomepageQueue();
  222. $response->getBody()->write(jsonE($GLOBALS['api']));
  223. return $response
  224. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  225. ->withStatus($GLOBALS['responseCode']);
  226. });
  227. $app->get('/homepage/nzbget/queue', function ($request, $response, $args) {
  228. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  229. $Organizr->getNzbgetHomepageQueue();
  230. $response->getBody()->write(jsonE($GLOBALS['api']));
  231. return $response
  232. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  233. ->withStatus($GLOBALS['responseCode']);
  234. });
  235. $app->get('/homepage/sabnzbd/queue', function ($request, $response, $args) {
  236. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  237. $Organizr->getSabNZBdHomepageQueue();
  238. $response->getBody()->write(jsonE($GLOBALS['api']));
  239. return $response
  240. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  241. ->withStatus($GLOBALS['responseCode']);
  242. });
  243. $app->post('/homepage/sabnzbd/queue/resume', function ($request, $response, $args) {
  244. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  245. if ($Organizr->qualifyRequest(1, true)) {
  246. $Organizr->resumeSabNZBdQueue($Organizr->apiData($request)['target']);
  247. }
  248. $response->getBody()->write(jsonE($GLOBALS['api']));
  249. return $response
  250. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  251. ->withStatus($GLOBALS['responseCode']);
  252. });
  253. $app->post('/homepage/sabnzbd/queue/pause', function ($request, $response, $args) {
  254. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  255. if ($Organizr->qualifyRequest(1, true)) {
  256. $Organizr->pauseSabNZBdQueue($Organizr->apiData($request)['target']);
  257. }
  258. $response->getBody()->write(jsonE($GLOBALS['api']));
  259. return $response
  260. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  261. ->withStatus($GLOBALS['responseCode']);
  262. });
  263. $app->get('/homepage/unifi/data', function ($request, $response, $args) {
  264. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  265. $Organizr->getUnifiHomepageData();
  266. $response->getBody()->write(jsonE($GLOBALS['api']));
  267. return $response
  268. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  269. ->withStatus($GLOBALS['responseCode']);
  270. });
  271. $app->get('/homepage/tautulli/data', function ($request, $response, $args) {
  272. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  273. $Organizr->getTautulliHomepageData();
  274. $response->getBody()->write(jsonE($GLOBALS['api']));
  275. return $response
  276. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  277. ->withStatus($GLOBALS['responseCode']);
  278. });
  279. $app->get('/homepage/tautulli/names', function ($request, $response, $args) {
  280. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  281. $Organizr->getTautulliFriendlyNames();
  282. $response->getBody()->write(jsonE($GLOBALS['api']));
  283. return $response
  284. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  285. ->withStatus($GLOBALS['responseCode']);
  286. });
  287. $app->get('/homepage/netdata/data', function ($request, $response, $args) {
  288. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  289. $Organizr->getNetdataHomepageData();
  290. $response->getBody()->write(jsonE($GLOBALS['api']));
  291. return $response
  292. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  293. ->withStatus($GLOBALS['responseCode']);
  294. });
  295. $app->get('/homepage/monitorr/data', function ($request, $response, $args) {
  296. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  297. $Organizr->getMonitorrHomepageData();
  298. $response->getBody()->write(jsonE($GLOBALS['api']));
  299. return $response
  300. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  301. ->withStatus($GLOBALS['responseCode']);
  302. });
  303. $app->get('/homepage/speedtest/data', function ($request, $response, $args) {
  304. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  305. $Organizr->getSpeedtestHomepageData();
  306. $response->getBody()->write(jsonE($GLOBALS['api']));
  307. return $response
  308. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  309. ->withStatus($GLOBALS['responseCode']);
  310. });
  311. $app->get('/homepage/octoprint/data', function ($request, $response, $args) {
  312. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  313. $Organizr->getOctoprintHomepageData();
  314. $response->getBody()->write(jsonE($GLOBALS['api']));
  315. return $response
  316. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  317. ->withStatus($GLOBALS['responseCode']);
  318. });
  319. $app->get('/homepage/weather/data', function ($request, $response, $args) {
  320. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  321. $Organizr->getWeatherAndAirData();
  322. $response->getBody()->write(jsonE($GLOBALS['api']));
  323. return $response
  324. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  325. ->withStatus($GLOBALS['responseCode']);
  326. });
  327. $app->post('/homepage/weather/coordinates', function ($request, $response, $args) {
  328. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  329. $Organizr->searchCityForCoordinates($Organizr->apiData($request)['query']);
  330. $response->getBody()->write(jsonE($GLOBALS['api']));
  331. return $response
  332. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  333. ->withStatus($GLOBALS['responseCode']);
  334. });
  335. $app->get('/homepage/healthchecks', function ($request, $response, $args) {
  336. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  337. $Organizr->getHealthChecks();
  338. $response->getBody()->write(jsonE($GLOBALS['api']));
  339. return $response
  340. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  341. ->withStatus($GLOBALS['responseCode']);
  342. });
  343. $app->get('/homepage/healthchecks/{tags}', function ($request, $response, $args) {
  344. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  345. $Organizr->getHealthChecks($args['tags']);
  346. $response->getBody()->write(jsonE($GLOBALS['api']));
  347. return $response
  348. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  349. ->withStatus($GLOBALS['responseCode']);
  350. });
  351. $app->get('/homepage/ombi/requests[/{type}[/{limit}[/{offset}]]]', function ($request, $response, $args) {
  352. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  353. $args['type'] = $args['type'] ?? 'both';
  354. $args['limit'] = $args['limit'] ?? $Organizr->config['ombiLimit'];
  355. $args['offset'] = $args['offset'] ?? 0;
  356. $Organizr->getOmbiRequests($args['type'], $args['limit'], $args['offset']);
  357. $response->getBody()->write(jsonE($GLOBALS['api']));
  358. return $response
  359. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  360. ->withStatus($GLOBALS['responseCode']);
  361. });
  362. $app->post('/homepage/ombi/requests/{type}/{id}', function ($request, $response, $args) {
  363. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  364. $Organizr->addOmbiRequest($args['id'], $args['type']);
  365. $response->getBody()->write(jsonE($GLOBALS['api']));
  366. return $response
  367. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  368. ->withStatus($GLOBALS['responseCode']);
  369. });
  370. $app->post('/homepage/ombi/requests/{type}/{id}/available', function ($request, $response, $args) {
  371. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  372. $Organizr->actionOmbiRequest($args['id'], $args['type'], 'available');
  373. $response->getBody()->write(jsonE($GLOBALS['api']));
  374. return $response
  375. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  376. ->withStatus($GLOBALS['responseCode']);
  377. });
  378. $app->post('/homepage/ombi/requests/{type}/{id}/unavailable', function ($request, $response, $args) {
  379. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  380. $Organizr->actionOmbiRequest($args['id'], $args['type'], 'unavailable');
  381. $response->getBody()->write(jsonE($GLOBALS['api']));
  382. return $response
  383. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  384. ->withStatus($GLOBALS['responseCode']);
  385. });
  386. $app->post('/homepage/ombi/requests/{type}/{id}/approve', function ($request, $response, $args) {
  387. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  388. $Organizr->actionOmbiRequest($args['id'], $args['type'], 'approve');
  389. $response->getBody()->write(jsonE($GLOBALS['api']));
  390. return $response
  391. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  392. ->withStatus($GLOBALS['responseCode']);
  393. });
  394. $app->put('/homepage/ombi/requests/{type}/{id}/deny', function ($request, $response, $args) {
  395. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  396. $Organizr->actionOmbiRequest($args['id'], $args['type'], 'deny');
  397. $response->getBody()->write(jsonE($GLOBALS['api']));
  398. return $response
  399. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  400. ->withStatus($GLOBALS['responseCode']);
  401. });
  402. $app->delete('/homepage/ombi/requests/{type}/{id}', function ($request, $response, $args) {
  403. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  404. $Organizr->actionOmbiRequest($args['id'], $args['type'], 'delete');
  405. $response->getBody()->write(jsonE($GLOBALS['api']));
  406. return $response
  407. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  408. ->withStatus($GLOBALS['responseCode']);
  409. });
  410. $app->get('/homepage/youtube/{query}', function ($request, $response, $args) {
  411. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  412. $Organizr->youtubeSearch($args['query']);
  413. $response->getBody()->write(jsonE($GLOBALS['api']));
  414. return $response
  415. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  416. ->withStatus($GLOBALS['responseCode']);
  417. });
  418. $app->post('/homepage/scrape', function ($request, $response, $args) {
  419. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  420. $Organizr->scrapePage($Organizr->apiData($request));
  421. $response->getBody()->write(jsonE($GLOBALS['api']));
  422. return $response
  423. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  424. ->withStatus($GLOBALS['responseCode']);
  425. });
  426. $app->get('/homepage/jackett/{query}', function ($request, $response, $args) {
  427. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  428. $Organizr->searchJackettIndexers($args['query']);
  429. $response->getBody()->write(jsonE($GLOBALS['api']));
  430. return $response
  431. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  432. ->withStatus($GLOBALS['responseCode']);
  433. });
  434. $app->post('/homepage/jackett/download/', function ($request, $response, $args) {
  435. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  436. $postData = $request->getParsedBody();
  437. $Organizr->performJackettBackHoleDownload($postData['url']);
  438. $response->getBody()->write(jsonE($GLOBALS['api']));
  439. return $response
  440. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  441. ->withStatus($GLOBALS['responseCode']);
  442. });
  443. $app->get('/homepage/trakt/calendar', function ($request, $response, $args) {
  444. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  445. $Organizr->getTraktCalendar();
  446. $response->getBody()->write(jsonE($GLOBALS['api']));
  447. return $response
  448. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  449. ->withStatus($GLOBALS['responseCode']);
  450. });