homepage-functions.php 16 KB

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