homepage-functions.php 14 KB

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