From 241c58888f12240d5a16bd0ea7a26096a509f67d Mon Sep 17 00:00:00 2001 From: Chewbaka69 Date: Tue, 6 Nov 2018 20:26:33 +0100 Subject: [PATCH] Add trailer for movies --- fuel/app/classes/controller/movie.php | 3 ++ fuel/app/classes/model/movie.php | 47 ++++++++++++++++++++++++++- fuel/app/views/movie/index.php | 19 +++++++++-- 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/fuel/app/classes/controller/movie.php b/fuel/app/classes/controller/movie.php index 684a55a..4cda797 100644 --- a/fuel/app/classes/controller/movie.php +++ b/fuel/app/classes/controller/movie.php @@ -19,7 +19,10 @@ class Controller_Movie extends Controller_Home $movie->getMetaData(); + $movie->getTrailer(); + $body = View::forge('movie/index'); + $body->set('movie', $movie); $this->template->body = $body; diff --git a/fuel/app/classes/model/movie.php b/fuel/app/classes/model/movie.php index edb4739..5faf0bb 100644 --- a/fuel/app/classes/model/movie.php +++ b/fuel/app/classes/model/movie.php @@ -2,6 +2,7 @@ use Fuel\Core\Config; use Fuel\Core\DB; +use Fuel\Core\Format; use Fuel\Core\Request; use Fuel\Core\Cache; use Fuel\Core\CacheNotFoundException; @@ -43,6 +44,8 @@ class Model_Movie extends Model_Overwrite private $_library = null; private $_server = null; + public $trailer = null; + public function getSeason() { if(!$this->_season) @@ -372,7 +375,7 @@ class Model_Movie extends Model_Overwrite ->where('server.id', $server->id) ->and_where('movie.type', 'episode') ->order_by('movie.addedAt', 'DESC') - ->order_by(DB::expr('MAX(' . $conf['default']['table_prefix'] .'movie.addedAt)'), 'DESC')//'movie.addedAt', 'DESC') + ->order_by(DB::expr('MAX(' . $conf['default']['table_prefix'] .'movie.addedAt)'), 'DESC ')//'movie.addedAt', 'DESC') ->group_by('movie.season_id') ->limit(30) ; @@ -408,4 +411,46 @@ class Model_Movie extends Model_Overwrite ; }); } + + public function getTrailer() + { + if($this->type === 'movie') { + + $html = Request::forge('https://www.themoviedb.org/search/movie?query=' . urlencode($this->originalTitle ?: $this->title) . '+y%3A' . $this->year . '&language=us', 'curl'); + $html->execute(); + + if ($html->response()->status !== 200) + return false; + + $media = $html->response()->body; + + preg_match('//i', $media, $urls); + + if (!isset($urls[1])) + return false; + + $url = explode('?', $urls[1]); + + $html = Request::forge('https://www.themoviedb.org' . $url[0] . '/videos?active_nav_item=Trailers&video_language=en-US&language=en-US', 'curl'); + $html->set_options(array( + CURLOPT_FOLLOWLOCATION => true, + ) + ); + $html->execute(); + + if ($html->response()->status !== 200) + return false; + + $media = $html->response()->body; + + preg_match('/