controller.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. class Controller {
  3. private $request = null;
  4. private $template = '';
  5. private $view = null;
  6. private $scraper = null;
  7. /**
  8. * Konstruktor, erstellet den Controller.
  9. *
  10. * @param Array $request Array aus $_GET & $_POST.
  11. */
  12. public function __construct($request) {
  13. $this->view = new View();
  14. $this->request = $request;
  15. $this->template = !empty($request['view']) ? $request['view'] : 'default';
  16. $GLOBALS['db'] = new Database($GLOBALS['conf']);
  17. if(!empty($request['action']) && $request['action'] === "scrape") {
  18. $source = $GLOBALS['db']->getAllAssoc("sources", "id", $request['sourceID']);
  19. if($source[0]['type'] == 0) { // Series
  20. $this->scraper = new SeriesScraper();
  21. $this->scraper->scrapeFolder($request['sourceID']);
  22. } else {
  23. $this->scraper = new MovieScraper();
  24. $this->scraper->scrapeFolder($request['sourceID']);
  25. }
  26. }
  27. if(!empty($request['action']) && $request['action'] === "scrapeSingleTV") {
  28. $this->scraper = new SeriesScraper();
  29. $this->scraper->downloadSeriesByID($request['moviedbID'], urldecode($request['path']), $request['sourceID']);
  30. }
  31. if(!empty($request['action']) && $request['action'] === "scrapeSingleMovie") {
  32. $this->scraper = new MovieScraper();
  33. $this->scraper->downloadMovieByID($request['moviedbID'], urldecode($request['path']), $request['sourceID']);
  34. }
  35. if(!empty($request['action']) && $request['action'] === "login") {
  36. User::login($request);
  37. }
  38. if(!empty($request['action']) && $request['action'] === "logout") {
  39. User::logout();
  40. }
  41. if(!empty($request['action']) && $request['action'] === "removeSeries") {
  42. SeriesScraper::remove($request['seriesID']);
  43. }
  44. if(!empty($request['action']) && $request['action'] === "updateSeries") {
  45. $this->scraper = new SeriesScraper();
  46. $this->scraper->update($request['seriesID']);
  47. }
  48. if(!empty($request['action']) && $request['action'] === "removeMovie") {
  49. MovieScraper::remove($request['movieID']);
  50. }
  51. if(!empty($request['action']) && $request['action'] === "updateMovie") {
  52. $this->scraper = new MovieScraper();
  53. $this->scraper->update($request['movieID']);
  54. }
  55. if(!empty($request['action']) && $request['action'] === "updateUserInfo") {
  56. User::update($request['newPassword'], $request['newPasswordConfirmation'], $request['newEmail'], $request['oldEmail']);
  57. }
  58. if(!empty($request['action']) && $request['action'] === "invite") {
  59. User::invite($request['inviteMail']);
  60. }
  61. if(!empty($_SESSION['user'])) {
  62. $GLOBALS['user'] = unserialize($_SESSION['user']);
  63. }
  64. if(empty($_SESSION['user']) && !empty($_SESSION['loggedIn']) && $_SESSION['loggedIn']) {
  65. $_SESSION['user'] = serialize(new User($_SESSION['mail']));
  66. }
  67. }
  68. /**
  69. * Methode zum anzeigen des Contents.
  70. *
  71. * @return String Content der Applikation.
  72. */
  73. public function display() {
  74. if(!empty($_SESSION['loggedIn']) && $_SESSION['loggedIn']) {
  75. $view = new View();
  76. $headerView = new View();
  77. $footerView = new View();
  78. switch($this->template) {
  79. case 'admin':
  80. if($GLOBALS['user']->getAdmin() == 0) {
  81. echo "neeeee";
  82. exit(1);
  83. }
  84. $view->setTemplate('admin');
  85. $view->assign('sources', $GLOBALS['db']->getAllAssoc("sources"));
  86. $view->assign('series', Model::getSeries());
  87. $view->assign('movies', Model::getMovies());
  88. break;
  89. case 'scrape':
  90. $view->setTemplate('scrape');
  91. $view->assign('scraper', $this->scraper);
  92. break;
  93. case 'seasons':
  94. $view->setTemplate('seasons');
  95. $view->assign('seasons', Model::getSeasonsBySeriesID($this->request['seriesID']));
  96. break;
  97. case 'season':
  98. $view->setTemplate('season');
  99. $view->assign('episodes', Model::getEpisodesBySeasonID($this->request['seasonID']));
  100. break;
  101. case 'episode':
  102. $view->setTemplate('episode');
  103. $view->assign('episode', Model::getEpisodeByID($this->request['episodeID']));
  104. $view->assign('videoFile', Model::getAbsouluteVideoPathByEpisodeID($this->request['episodeID']));
  105. break;
  106. case 'movie':
  107. $view->setTemplate('movie');
  108. $view->assign('movie', Model::getMovieByID($this->request['movieID']));
  109. $view->assign('videoFile', Model::getAbsouluteVideoPathByMovieID($this->request['movieID']));
  110. break;
  111. case 'user':
  112. $view->setTemplate('user');
  113. break;
  114. case 'default':
  115. default:
  116. $view->setTemplate('content');
  117. $view->assign('series', Model::getSeries());
  118. $view->assign('movies', Model::getMovies());
  119. }
  120. $this->view->setTemplate('matrix');
  121. $headerView->setTemplate('header');
  122. $footerView->setTemplate('footer');
  123. $this->view->assign('header', $headerView->loadTemplate());
  124. $this->view->assign('footer', $footerView->loadTemplate());
  125. $this->view->assign('content', $view->loadTemplate());
  126. return $this->view->loadTemplate();
  127. } else {
  128. $view = new View();
  129. $view->setTemplate('login');
  130. return $view->loadTemplate();
  131. }
  132. }
  133. }
  134. ?>