homepage-functions.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. <?php
  2. //homepage order
  3. function homepageOrder(){
  4. $homepageOrder = array(
  5. "homepageOrdercustomhtml" => $GLOBALS['homepageOrdercustomhtml'],
  6. "homepageOrdernotice" => $GLOBALS['homepageOrdernotice'],
  7. "homepageOrderplexsearch" => $GLOBALS['homepageOrderplexsearch'],
  8. "homepageOrderspeedtest" => $GLOBALS['homepageOrderspeedtest'],
  9. "homepageOrdernzbget" => $GLOBALS['homepageOrdernzbget'],
  10. "homepageOrdersabnzbd" => $GLOBALS['homepageOrdersabnzbd'],
  11. "homepageOrderplexnowplaying" => $GLOBALS['homepageOrderplexnowplaying'],
  12. "homepageOrderplexrecent" => $GLOBALS['homepageOrderplexrecent'],
  13. "homepageOrderplexplaylist" => $GLOBALS['homepageOrderplexplaylist'],
  14. "homepageOrderembynowplaying" => $GLOBALS['homepageOrderembynowplaying'],
  15. "homepageOrderembyrecent" => $GLOBALS['homepageOrderembyrecent'],
  16. "homepageOrderombi" => $GLOBALS['homepageOrderombi'],
  17. "homepageOrdercalendar" => $GLOBALS['homepageOrdercalendar'],
  18. "homepageOrdernoticeguest" => $GLOBALS['homepageOrdernoticeguest'],
  19. "homepageOrdertransmission" => $GLOBALS['homepageOrdertransmission'],
  20. );
  21. asort($homepageOrder);
  22. return $homepageOrder;
  23. }
  24. function buildHomepage(){
  25. $homepageOrder = homepageOrder();
  26. $homepageBuilt = '';
  27. foreach ($homepageOrder as $key => $value) {
  28. $homepageBuilt .= buildHomepageItem($key);
  29. }
  30. return $homepageBuilt;
  31. }
  32. function buildHomepageItem($homepageItem){
  33. $item = '<div id="'.$homepageItem.'"></div>';
  34. switch ($homepageItem) {
  35. case 'homepageOrderplexsearch':
  36. break;
  37. case 'homepageOrdercustomhtml':
  38. break;
  39. case 'homepageOrdernotice':
  40. break;
  41. case 'homepageOrdernoticeguest':
  42. break;
  43. case 'homepageOrderspeedtest':
  44. break;
  45. case 'homepageOrdertransmission':
  46. if($GLOBALS['homepageTransmissionEnabled']){
  47. $item .= '
  48. <script>
  49. // Transmission
  50. homepageDownloader("transmission");
  51. setInterval(function() {
  52. homepageDownloader("transmission");
  53. }, '.$GLOBALS['homepageDownloadRefresh'].');
  54. // End Transmission
  55. </script>
  56. ';
  57. }
  58. break;
  59. case 'homepageOrdernzbget':
  60. if($GLOBALS['homepageNzbgetEnabled']){
  61. $item .= '
  62. <script>
  63. // NZBGet
  64. homepageDownloader("nzbget");
  65. setInterval(function() {
  66. homepageDownloader("nzbget");
  67. }, '.$GLOBALS['homepageDownloadRefresh'].');
  68. // End NZBGet
  69. </script>
  70. ';
  71. }
  72. break;
  73. case 'homepageOrdersabnzbd':
  74. if($GLOBALS['homepageSabnzbdEnabled']){
  75. $item .= '
  76. <script>
  77. // SabNZBd
  78. homepageDownloader("sabnzbd");
  79. setInterval(function() {
  80. homepageDownloader("sabnzbd");
  81. }, '.$GLOBALS['homepageDownloadRefresh'].');
  82. // End SabNZBd
  83. </script>
  84. ';
  85. }
  86. break;
  87. case 'homepageOrderplexnowplaying':
  88. if($GLOBALS['homepagePlexStreams']){
  89. $item .= '
  90. <script>
  91. // Plex Stream
  92. homepageStream("plex");
  93. setInterval(function() {
  94. homepageStream("plex");
  95. }, '.$GLOBALS['homepageStreamRefresh'].');
  96. // End Plex Stream
  97. </script>
  98. ';
  99. }
  100. break;
  101. case 'homepageOrderplexrecent':
  102. if($GLOBALS['homepagePlexRecent']){
  103. $item .= '
  104. <script>
  105. // Plex Recent
  106. homepageRecent("plex");
  107. setInterval(function() {
  108. homepageRecent("plex");
  109. }, '.$GLOBALS['homepageRecentRefresh'].');
  110. // End Plex Recent
  111. </script>
  112. ';
  113. }
  114. break;
  115. case 'homepageOrderplexplaylist':
  116. break;
  117. case 'homepageOrderembynowplaying':
  118. if($GLOBALS['homepageEmbyStreams']){
  119. $item .= '
  120. <script>
  121. // Emby Stream
  122. homepageStream("emby");
  123. setInterval(function() {
  124. homepageStream("emby");
  125. }, '.$GLOBALS['homepageStreamRefresh'].');
  126. // End Emby Stream
  127. </script>
  128. ';
  129. }
  130. break;
  131. case 'homepageOrderembyrecent':
  132. if($GLOBALS['homepageEmbyRecent']){
  133. $item .= '
  134. <script>
  135. // Emby Recent
  136. homepageRecent("emby");
  137. setInterval(function() {
  138. homepageRecent("emby");
  139. }, '.$GLOBALS['homepageRecentRefresh'].');
  140. // End Emby Recent
  141. </script>
  142. ';
  143. }
  144. break;
  145. case 'homepageOrderombi':
  146. break;
  147. case 'homepageOrdercalendar':
  148. break;
  149. default:
  150. # code...
  151. break;
  152. }
  153. return $item;
  154. }
  155. function getHomepageList(){
  156. $groups = groupSelect();
  157. $time = array(
  158. array(
  159. 'name' => '5',
  160. 'value' => '5000'
  161. ),
  162. array(
  163. 'name' => '10',
  164. 'value' => '10000'
  165. ),
  166. array(
  167. 'name' => '15',
  168. 'value' => '15000'
  169. ),
  170. array(
  171. 'name' => '30',
  172. 'value' => '30000'
  173. ),
  174. array(
  175. 'name' => '60 [1 Minute]',
  176. 'value' => '60000'
  177. ),
  178. array(
  179. 'name' => '300 [5 Minutes]',
  180. 'value' => '300000'
  181. ),
  182. array(
  183. 'name' => '900 [15 Minutes]',
  184. 'value' => '900000'
  185. ),
  186. array(
  187. 'name' => '1800 [30 Minutes]',
  188. 'value' => '1800000'
  189. ),
  190. array(
  191. 'name' => '3600 [1 Hour]',
  192. 'value' => '3600000'
  193. ),
  194. );
  195. return array(
  196. array(
  197. 'name' => 'Plex',
  198. 'enabled' => true,
  199. 'image' => 'plugins/images/tabs/plex.png',
  200. 'category' => 'Media Server',
  201. 'settings' => array(
  202. 'Enable' => array(
  203. array(
  204. 'type' => 'switch',
  205. 'name' => 'homepagePlexEnabled',
  206. 'label' => 'Enable',
  207. 'value' => $GLOBALS['homepagePlexEnabled']
  208. ),
  209. array(
  210. 'type' => 'select',
  211. 'name' => 'homepagePlexAuth',
  212. 'label' => 'Minimum Authentication',
  213. 'value' => $GLOBALS['homepagePlexAuth'],
  214. 'options' => $groups
  215. )
  216. ),
  217. 'Connection' => array(
  218. array(
  219. 'type' => 'input',
  220. 'name' => 'plexURL',
  221. 'label' => 'URL',
  222. 'value' => $GLOBALS['plexURL'],
  223. 'placeholder' => 'http(s)://hostname:port'
  224. ),
  225. array(
  226. 'type' => 'input',
  227. 'name' => 'plexToken',
  228. 'label' => 'Token',
  229. 'value' => $GLOBALS['plexToken']
  230. ),
  231. array(
  232. 'type' => 'input',
  233. 'name' => 'plexID',
  234. 'label' => 'Plex Machine',
  235. 'value' => $GLOBALS['plexID']
  236. )
  237. ),
  238. 'Active Streams' => array(
  239. array(
  240. 'type' => 'switch',
  241. 'name' => 'homepagePlexStreams',
  242. 'label' => 'Enable',
  243. 'value' => $GLOBALS['homepagePlexStreams']
  244. ),
  245. array(
  246. 'type' => 'select',
  247. 'name' => 'homepagePlexStreamsAuth',
  248. 'label' => 'Minimum Authorization',
  249. 'value' => $GLOBALS['homepagePlexStreamsAuth'],
  250. 'options' => $groups
  251. ),
  252. array(
  253. 'type' => 'switch',
  254. 'name' => 'homepageShowStreamNames',
  255. 'label' => 'User Information',
  256. 'value' => $GLOBALS['homepageShowStreamNames']
  257. ),
  258. array(
  259. 'type' => 'select',
  260. 'name' => 'homepageShowStreamNamesAuth',
  261. 'label' => 'Minimum Authorization',
  262. 'value' => $GLOBALS['homepageShowStreamNamesAuth'],
  263. 'options' => $groups
  264. ),
  265. array(
  266. 'type' => 'select',
  267. 'name' => 'homepageStreamRefresh',
  268. 'label' => 'Refresh Seconds',
  269. 'value' => $GLOBALS['homepageStreamRefresh'],
  270. 'options' => $time
  271. ),
  272. ),
  273. 'Recent Items' => array(
  274. array(
  275. 'type' => 'switch',
  276. 'name' => 'homepagePlexRecent',
  277. 'label' => 'Enable',
  278. 'value' => $GLOBALS['homepagePlexRecent']
  279. ),
  280. array(
  281. 'type' => 'select',
  282. 'name' => 'homepagePlexRecentAuth',
  283. 'label' => 'Minimum Authorization',
  284. 'value' => $GLOBALS['homepagePlexRecentAuth'],
  285. 'options' => $groups
  286. ),
  287. array(
  288. 'type' => 'select',
  289. 'name' => 'homepageRecentRefresh',
  290. 'label' => 'Refresh Seconds',
  291. 'value' => $GLOBALS['homepageRecentRefresh'],
  292. 'options' => $time
  293. ),
  294. ),
  295. 'Misc Options' => array(
  296. array(
  297. 'type' => 'input',
  298. 'name' => 'plexTabName',
  299. 'label' => 'Plex Tab Name',
  300. 'value' => $GLOBALS['plexTabName'],
  301. 'placeholder' => 'Only use if you have Plex in a reverse proxy'
  302. ),
  303. array(
  304. 'type' => 'input',
  305. 'name' => 'plexTabURL',
  306. 'label' => 'Plex Tab WAN URL',
  307. 'value' => $GLOBALS['plexTabURL'],
  308. 'placeholder' => 'http(s)://hostname:port'
  309. )
  310. )
  311. )
  312. ),
  313. array(
  314. 'name' => 'Emby',
  315. 'enabled' => true,
  316. 'image' => 'plugins/images/tabs/emby.png',
  317. 'category' => 'Media Server',
  318. 'settings' => array(
  319. 'Enable' => array(
  320. array(
  321. 'type' => 'switch',
  322. 'name' => 'homepageEmbyEnabled',
  323. 'label' => 'Enable',
  324. 'value' => $GLOBALS['homepageEmbyEnabled']
  325. ),
  326. array(
  327. 'type' => 'select',
  328. 'name' => 'homepageEmbyAuth',
  329. 'label' => 'Minimum Authentication',
  330. 'value' => $GLOBALS['homepageEmbyAuth'],
  331. 'options' => $groups
  332. )
  333. ),
  334. 'Connection' => array(
  335. array(
  336. 'type' => 'input',
  337. 'name' => 'embyURL',
  338. 'label' => 'URL',
  339. 'value' => $GLOBALS['embyURL'],
  340. 'placeholder' => 'http(s)://hostname:port'
  341. ),
  342. array(
  343. 'type' => 'input',
  344. 'name' => 'embyToken',
  345. 'label' => 'Token',
  346. 'value' => $GLOBALS['embyToken']
  347. )
  348. ),
  349. 'Active Streams' => array(
  350. array(
  351. 'type' => 'switch',
  352. 'name' => 'homepageEmbyStreams',
  353. 'label' => 'Enable',
  354. 'value' => $GLOBALS['homepageEmbyStreams']
  355. ),
  356. array(
  357. 'type' => 'select',
  358. 'name' => 'homepageEmbyStreamsAuth',
  359. 'label' => 'Minimum Authorization',
  360. 'value' => $GLOBALS['homepageEmbyStreamsAuth'],
  361. 'options' => $groups
  362. ),
  363. array(
  364. 'type' => 'switch',
  365. 'name' => 'homepageShowStreamNames',
  366. 'label' => 'User Information',
  367. 'value' => $GLOBALS['homepageShowStreamNames']
  368. ),
  369. array(
  370. 'type' => 'select',
  371. 'name' => 'homepageShowStreamNamesAuth',
  372. 'label' => 'Minimum Authorization',
  373. 'value' => $GLOBALS['homepageShowStreamNamesAuth'],
  374. 'options' => $groups
  375. ),
  376. array(
  377. 'type' => 'select',
  378. 'name' => 'homepageStreamRefresh',
  379. 'label' => 'Refresh Seconds',
  380. 'value' => $GLOBALS['homepageStreamRefresh'],
  381. 'options' => $time
  382. ),
  383. ),
  384. 'Recent Items' => array(
  385. array(
  386. 'type' => 'switch',
  387. 'name' => 'homepageEmbyRecent',
  388. 'label' => 'Enable',
  389. 'value' => $GLOBALS['homepageEmbyRecent']
  390. ),
  391. array(
  392. 'type' => 'select',
  393. 'name' => 'homepageEmbyRecentAuth',
  394. 'label' => 'Minimum Authorization',
  395. 'value' => $GLOBALS['homepageEmbyRecentAuth'],
  396. 'options' => $groups
  397. ),
  398. array(
  399. 'type' => 'select',
  400. 'name' => 'homepageRecentRefresh',
  401. 'label' => 'Refresh Seconds',
  402. 'value' => $GLOBALS['homepageRecentRefresh'],
  403. 'options' => $time
  404. ),
  405. ),
  406. 'Misc Options' => array(
  407. array(
  408. 'type' => 'input',
  409. 'name' => 'embyTabName',
  410. 'label' => 'Emby Tab Name',
  411. 'value' => $GLOBALS['embyTabName'],
  412. 'placeholder' => 'Only use if you have Plex in a reverse proxy'
  413. ),
  414. array(
  415. 'type' => 'input',
  416. 'name' => 'embyTabURL',
  417. 'label' => 'Emby Tab WAN URL',
  418. 'value' => $GLOBALS['embyTabURL'],
  419. 'placeholder' => 'http(s)://hostname:port'
  420. )
  421. )
  422. )
  423. ),
  424. array(
  425. 'name' => 'SabNZBD',
  426. 'enabled' => false,
  427. 'image' => 'plugins/images/tabs/sabnzbd.png',
  428. 'category' => 'Downloader',
  429. 'settings' => array(
  430. 'Enable' => array(
  431. array(
  432. 'type' => 'switch',
  433. 'name' => 'homepageSabnzbdEnabled',
  434. 'label' => 'Enable',
  435. 'value' => $GLOBALS['homepageSabnzbdEnabled']
  436. ),
  437. array(
  438. 'type' => 'select',
  439. 'name' => 'homepageSabnzbdAuth',
  440. 'label' => 'Minimum Authentication',
  441. 'value' => $GLOBALS['homepageSabnzbdAuth'],
  442. 'options' => $groups
  443. )
  444. ),
  445. 'Connection' => array(
  446. array(
  447. 'type' => 'input',
  448. 'name' => 'sabnzbdURL',
  449. 'label' => 'URL',
  450. 'value' => $GLOBALS['sabnzbdURL'],
  451. 'placeholder' => 'http(s)://hostname:port'
  452. ),
  453. array(
  454. 'type' => 'input',
  455. 'name' => 'sabnzbdToken',
  456. 'label' => 'Token',
  457. 'value' => $GLOBALS['sabnzbdToken']
  458. )
  459. ),
  460. 'Misc Options' => array(
  461. array(
  462. 'type' => 'select',
  463. 'name' => 'homepageDownloadRefresh',
  464. 'label' => 'Refresh Seconds',
  465. 'value' => $GLOBALS['homepageDownloadRefresh'],
  466. 'options' => $time
  467. )
  468. )
  469. )
  470. ),
  471. array(
  472. 'name' => 'NZBGet',
  473. 'enabled' => false,
  474. 'image' => 'plugins/images/tabs/nzbget.png',
  475. 'category' => 'Downloader',
  476. 'settings' => array(
  477. 'Enable' => array(
  478. array(
  479. 'type' => 'switch',
  480. 'name' => 'homepageNzbgetEnabled',
  481. 'label' => 'Enable',
  482. 'value' => $GLOBALS['homepageNzbgetEnabled']
  483. ),
  484. array(
  485. 'type' => 'select',
  486. 'name' => 'homepageNzbgetAuth',
  487. 'label' => 'Minimum Authentication',
  488. 'value' => $GLOBALS['homepageNzbgetAuth'],
  489. 'options' => $groups
  490. )
  491. ),
  492. 'Connection' => array(
  493. array(
  494. 'type' => 'input',
  495. 'name' => 'nzbgetURL',
  496. 'label' => 'URL',
  497. 'value' => $GLOBALS['nzbgetURL'],
  498. 'placeholder' => 'http(s)://hostname:port'
  499. ),
  500. array(
  501. 'type' => 'input',
  502. 'name' => 'nzbgetUsername',
  503. 'label' => 'Username',
  504. 'value' => $GLOBALS['nzbgetUsername']
  505. ),
  506. array(
  507. 'type' => 'password',
  508. 'name' => 'nzbgetPassword',
  509. 'label' => 'Password',
  510. 'value' => $GLOBALS['nzbgetPassword']
  511. )
  512. ),
  513. 'Misc Options' => array(
  514. array(
  515. 'type' => 'select',
  516. 'name' => 'homepageDownloadRefresh',
  517. 'label' => 'Refresh Seconds',
  518. 'value' => $GLOBALS['homepageDownloadRefresh'],
  519. 'options' => $time
  520. )
  521. )
  522. )
  523. ),
  524. array(
  525. 'name' => 'Transmission',
  526. 'enabled' => false,
  527. 'image' => 'plugins/images/tabs/transmission.png',
  528. 'category' => 'Downloader',
  529. 'settings' => array(
  530. 'Enable' => array(
  531. array(
  532. 'type' => 'switch',
  533. 'name' => 'homepageTransmissionEnabled',
  534. 'label' => 'Enable',
  535. 'value' => $GLOBALS['homepageTransmissionEnabled']
  536. ),
  537. array(
  538. 'type' => 'select',
  539. 'name' => 'homepageTransmissionAuth',
  540. 'label' => 'Minimum Authentication',
  541. 'value' => $GLOBALS['homepageTransmissionAuth'],
  542. 'options' => $groups
  543. )
  544. ),
  545. 'Connection' => array(
  546. array(
  547. 'type' => 'input',
  548. 'name' => 'transmissionURL',
  549. 'label' => 'URL',
  550. 'value' => $GLOBALS['transmissionURL'],
  551. 'placeholder' => 'http(s)://hostname:port'
  552. ),
  553. array(
  554. 'type' => 'input',
  555. 'name' => 'transmissionUsername',
  556. 'label' => 'Username',
  557. 'value' => $GLOBALS['transmissionUsername']
  558. ),
  559. array(
  560. 'type' => 'password',
  561. 'name' => 'transmissionPassword',
  562. 'label' => 'Password',
  563. 'value' => $GLOBALS['transmissionPassword']
  564. )
  565. ),
  566. 'Misc Options' => array(
  567. array(
  568. 'type' => 'switch',
  569. 'name' => 'transmissionHideSeeding',
  570. 'label' => 'Hide Seeding',
  571. 'value' => $GLOBALS['transmissionHideSeeding']
  572. ),array(
  573. 'type' => 'switch',
  574. 'name' => 'transmissionHideCompleted',
  575. 'label' => 'Hide Completed',
  576. 'value' => $GLOBALS['transmissionHideCompleted']
  577. ),
  578. array(
  579. 'type' => 'select',
  580. 'name' => 'homepageDownloadRefresh',
  581. 'label' => 'Refresh Seconds',
  582. 'value' => $GLOBALS['homepageDownloadRefresh'],
  583. 'options' => $time
  584. )
  585. )
  586. )
  587. )
  588. );
  589. }