homepage-functions.php 14 KB

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