diff --git a/composer.lock b/composer.lock index d5d614d..a3469aa 100755 --- a/composer.lock +++ b/composer.lock @@ -8,28 +8,31 @@ "packages": [ { "name": "composer/installers", - "version": "v1.7.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "141b272484481432cda342727a427dc1e206bfa0" + "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/141b272484481432cda342727a427dc1e206bfa0", - "reference": "141b272484481432cda342727a427dc1e206bfa0", + "url": "https://api.github.com/repos/composer/installers/zipball/b93bcf0fa1fccb0b7d176b0967d969691cd74cca", + "reference": "b93bcf0fa1fccb0b7d176b0967d969691cd74cca", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0" + "composer-plugin-api": "^1.0 || ^2.0" }, "replace": { "roundcube/plugin-installer": "*", "shama/baton": "*" }, "require-dev": { - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "^4.8.36" + "composer/composer": "1.6.* || 2.0.*@dev", + "composer/semver": "1.0.* || 2.0.*@dev", + "phpunit/phpunit": "^4.8.36", + "sebastian/comparator": "^1.2.4", + "symfony/process": "^2.3" }, "type": "composer-plugin", "extra": { @@ -65,6 +68,7 @@ "Kanboard", "Lan Management System", "MODX Evo", + "MantisBT", "Mautic", "Maya", "OXID", @@ -119,6 +123,7 @@ "shopware", "silverstripe", "sydes", + "sylius", "symfony", "typo3", "wordpress", @@ -126,7 +131,7 @@ "zend", "zikula" ], - "time": "2019-08-12T15:00:31+00:00" + "time": "2020-04-07T06:57:05+00:00" }, { "name": "fuel/auth", @@ -166,12 +171,12 @@ "source": { "type": "git", "url": "https://github.com/fuel/core.git", - "reference": "639d766486ed90bcb6fd1e737a9374ee7345daa9" + "reference": "f6bb6bb682805d12bd985a28153e7f7a1e1b1ea9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fuel/core/zipball/639d766486ed90bcb6fd1e737a9374ee7345daa9", - "reference": "639d766486ed90bcb6fd1e737a9374ee7345daa9", + "url": "https://api.github.com/repos/fuel/core/zipball/f6bb6bb682805d12bd985a28153e7f7a1e1b1ea9", + "reference": "f6bb6bb682805d12bd985a28153e7f7a1e1b1ea9", "shasum": "" }, "require": { @@ -194,7 +199,7 @@ ], "description": "FuelPHP 1.x Core", "homepage": "https://github.com/fuel/core", - "time": "2019-08-29T21:10:06+00:00" + "time": "2019-10-25T14:09:36+00:00" }, { "name": "fuel/email", @@ -427,16 +432,16 @@ }, { "name": "monolog/monolog", - "version": "1.24.0", + "version": "1.25.3", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", + "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", "shasum": "" }, "require": { @@ -501,7 +506,7 @@ "logging", "psr-3" ], - "time": "2018-11-05T09:00:11+00:00" + "time": "2019-12-20T14:15:16+00:00" }, { "name": "paragonie/random_compat", @@ -550,16 +555,16 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.10.1", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "5115fa44886d1c2785d2f135ef4626db868eac4b" + "reference": "bbade402cbe84c69b718120911506a3aa2bae653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/5115fa44886d1c2785d2f135ef4626db868eac4b", - "reference": "5115fa44886d1c2785d2f135ef4626db868eac4b", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bbade402cbe84c69b718120911506a3aa2bae653", + "reference": "bbade402cbe84c69b718120911506a3aa2bae653", "shasum": "" }, "require": { @@ -567,7 +572,7 @@ "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" }, "require-dev": { - "phpunit/phpunit": "^3|^4|^5" + "phpunit/phpunit": "^3|^4|^5|^6|^7" }, "suggest": { "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", @@ -628,7 +633,7 @@ "secret-key cryptography", "side-channel resistant" ], - "time": "2019-07-12T16:36:59+00:00" + "time": "2020-03-20T21:48:09+00:00" }, { "name": "phpseclib/phpseclib", @@ -720,16 +725,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -738,7 +743,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -763,7 +768,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2020-03-23T09:12:05+00:00" } ], "packages-dev": [ diff --git a/fuel/app/classes/controller/home.php b/fuel/app/classes/controller/home.php index a1385f7..19cc34f 100755 --- a/fuel/app/classes/controller/home.php +++ b/fuel/app/classes/controller/home.php @@ -11,6 +11,8 @@ class Controller_Home extends Controller_Template { public $template = 'layout/index'; + private $_user; + public function before() { parent::before(); @@ -21,21 +23,19 @@ class Controller_Home extends Controller_Template if(null === $user) Response::redirect('/login'); - $server = $sessionServer ? Model_Server::find_by_pk($sessionServer->id) : (Model_Server::find_one_by('user_id', $user->id) ?: Model_Server::find_one_by([ + $this->_user = $user; + + $server = $sessionServer ? Model_Server::find_by_pk($sessionServer->id) : Model_Server::find_one_by([ ['online', '=', 1], ['disable', '=', 0], - ], null, null)[0] - ); - - if(!$server) - Response::redirect('/login'); + ], null, null); Lang::load('menu'); Lang::load('settings'); $this->template->title = 'Home'; - $libraries = $server->getLibraries(); + $libraries = $server? $server->getLibraries() : null; $this->template->servers = Model_Server::find([ 'where' => [ @@ -69,12 +69,18 @@ class Controller_Home extends Controller_Template Session::delete('server'); Session::set('server', $this->template->MenuServer); - $this->template->MenuLibraries = $this->template->MenuServer->getLibraries(); + $this->template->MenuLibraries = $this->template->MenuServer ? $this->template->MenuServer->getLibraries() : null; + + $watching_movies = Model_User_Watching::find_by([ + ['user_id', '=', $this->_user->id], + ['isFinish', '=', 0] + ]); - $episodes = $this->template->MenuServer->getThirtyLastedTvShows(); + $episodes = $this->template->MenuServer ? $this->template->MenuServer->getThirtyLastedTvShows() : null; - $movies = $this->template->MenuServer->getThirtyLastedMovies(); + $movies = $this->template->MenuServer ? $this->template->MenuServer->getThirtyLastedMovies() : null; + $body->set('watching_movies', $watching_movies); $body->set('episodes', $episodes); $body->set('movies', $movies); diff --git a/fuel/app/classes/controller/rest/movie.php b/fuel/app/classes/controller/rest/movie.php index 22f99f0..b8cf7f1 100644 --- a/fuel/app/classes/controller/rest/movie.php +++ b/fuel/app/classes/controller/rest/movie.php @@ -43,4 +43,35 @@ class Controller_Rest_Movie extends Controller_Rest return $this->response($exception->getMessage(), 500); } } + + public function post_watching() + { + try { + $user = Session::get('user'); + $movie_id = Input::post('movie_id'); + $totaltime = Input::post('totaltime'); + $timeplay = Input::post('timeplay'); + $isFinish = Input::post('isFinish'); + + $watching = Model_User_Watching::find_one_by([ + ['movie_id', '=', $movie_id], + ['user_id', '=', $user->id] + ]) ?: new Model_User_Watching(); + + $watching->set([ + 'user_id' => $user->id, + 'movie_id' => $movie_id, + 'ended_time' => $totaltime, + 'watching_time' => $timeplay, + 'isFinish' => ($isFinish === 'true' ? true : false) + ]); + + $watching->save(); + + return $this->response('OK', 200); + + } catch (Exception $exception) { + return $this->response($exception->getMessage(), 500); + } + } } \ No newline at end of file diff --git a/fuel/app/classes/model/library/permission.php b/fuel/app/classes/model/library/permission.php index 5f73454..cc1c986 100644 --- a/fuel/app/classes/model/library/permission.php +++ b/fuel/app/classes/model/library/permission.php @@ -13,5 +13,4 @@ class Model_Library_Permission extends Model_Overwrite 'value', 'disable' ); - } diff --git a/fuel/app/classes/model/permission.php b/fuel/app/classes/model/permission.php index d359786..48f2412 100644 --- a/fuel/app/classes/model/permission.php +++ b/fuel/app/classes/model/permission.php @@ -1,5 +1,7 @@ getLibrary(); + $user = Session::get('user'); if ($library === null) return false; @@ -37,7 +36,7 @@ class Model_Permission extends Model_Overwrite $permission = Model_Permission::find_one_by('name', $permission); if ($permission === null) - return true; + return false; $library_permission = Model_Library_Permission::find_one_by([ ['library_id', '=', $library->id], @@ -45,17 +44,30 @@ class Model_Permission extends Model_Overwrite ['disable', '=', 0] ]); - if ($library_permission === null) - return true; - - if ($permission->name === 'RIGHT_WATCH_DISABLED') - return false; + if ($permission->name === 'RIGHT_WATCH_DISABLED') { + if($library_permission !== null && $library_permission->value === 1) + return false; + else if($library_permission !== null && $library_permission->value === 0) + return true; + else if($library_permission === null) + return true; + else + return false; + } - if ($permission->name === 'RIGHT_DOWNLOAD_DISABLED') - return false; + if ($permission->name === 'RIGHT_DOWNLOAD_DISABLED') { + if($library_permission !== null && $library_permission->value === 1) + return false; + else if($library_permission !== null && $library_permission->value === 0) + return true; + else if($library_permission === null) + return true; + else + return false; + } if ($permission->name === 'RIGHT_MAX_DOWNLOAD') { - /** @TODO IF (NUMBER_DOWNLOAD <= MAX_DOWNLOAD) + /** @TODO IF (NUMBER_DOWNLOAD <= MAX_DOWNLOAD) // in last 24h * RETURN TRUE * ELSE * RETURN FALSE @@ -64,7 +76,7 @@ class Model_Permission extends Model_Overwrite } if ($permission->name === 'RIGHT_MAX_WATCH') { - /** @TODO IF (NUMBER_WATCH <= MAX_WATCH) + /** @TODO IF (NUMBER_WATCH <= MAX_WATCH) // in last 24h * RETURN TRUE * ELSE * RETURN FALSE @@ -82,12 +94,14 @@ class Model_Permission extends Model_Overwrite } if ($permission->name === 'RIGHT_MAX_CONCURRENT_STREAM') { - /** @TODO IF (VIDEO SETTINGS QUALITY <= MAX_QUALITY) + /** @TODO IF (CURRENT STREAMING <= MAX_CONCURRENT_STREAM) * RETURN TRUE * ELSE * RETURN FALSE */ return true; } + + return false; } } \ No newline at end of file diff --git a/fuel/app/classes/model/server.php b/fuel/app/classes/model/server.php index 2ac82cc..00ebd50 100755 --- a/fuel/app/classes/model/server.php +++ b/fuel/app/classes/model/server.php @@ -153,14 +153,14 @@ class Model_Server extends Model_Overwrite foreach ($datas as $tvshow) { if($tvshow->type === 'season') { - $tvshows[] = Model_Season::find_one_by('plex_key', $tvshow->ratingKey) ?: new Model_Season(); + $tvshows[] = Model_Season::find_one_by('plex_key', $tvshow->ratingKey) ?: Model_Season::forge(['plex_key' => $tvshow->ratingKey]); } else if($tvshow->type === 'episode') { - $tvshows[] = Model_Movie::find_one_by('plex_key', $tvshow->key) ?: new Model_Movie(); + $tvshows[] = Model_Movie::find_one_by('plex_key', $tvshow->key) ?: Model_Movie::forge(['plex_key' => $tvshow->key]); } } - Cache::set($this->id . '.getThirtyLastedTvShows', $tvshows, 6 * 60); + Cache::set($this->id . '.getThirtyLastedTvShows', $tvshows, 4 * 60); return $tvshows; @@ -228,7 +228,8 @@ class Model_Server extends Model_Overwrite $movies = []; foreach ($datas as $movie) { - $movies[] = Model_Movie::find_one_by('plex_key', $movie->key) ?: new Model_Movie(); + $tmp_movie = Model_Movie::find_one_by('plex_key', $movie->key); + $movies[] = $tmp_movie !== null ? $tmp_movie : Model_Movie::forge(['plex_key' => $movie->key]); } Cache::set($this->id . '.getThirtyLastedMovies', $movies, 6 * 60); diff --git a/fuel/app/classes/model/user/watching.php b/fuel/app/classes/model/user/watching.php index 1b1b1ce..3df552f 100644 --- a/fuel/app/classes/model/user/watching.php +++ b/fuel/app/classes/model/user/watching.php @@ -15,4 +15,13 @@ class Model_User_Watching extends Model_Overwrite 'isFinish' ); + private $_movie = null; + + public function getMovie() + { + if(!$this->_movie && $this->movie_id !== null) + $this->_movie = Model_Movie::find_by_pk($this->movie_id); + + return $this->_movie; + } } diff --git a/fuel/app/views/home/index.php b/fuel/app/views/home/index.php index 87ed8e1..e15216b 100755 --- a/fuel/app/views/home/index.php +++ b/fuel/app/views/home/index.php @@ -11,13 +11,114 @@
+ +
+
+
CONTINUER À REGARDERHack-Free
+
+
+
+
+
+ +
+
+ +
+
+
+ getMovie()->type === 'movie') + $title = $watching_movie->getMovie()->title; + else + $title = $watching_movie->getMovie()->getTvShow()->title + ?> + + + + ended_time - $watching_movie->watching_time) / 60); ?> min restantes + +
+ + getMovie()->type === 'movie') : ?> + + getMovie()->year; ?> + + + + + SgetMovie()->getSeason()->number; ?> + + · + + EgetMovie()->number; ?> + + + + + getMovie()->title; ?> + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
- +
@@ -37,11 +138,13 @@
-
+
id)) + continue; ?>
@@ -161,6 +264,8 @@ id)) + continue; ?>
@@ -242,12 +347,15 @@ }); }); /** LOADING PICTURE **/ - $('.PosterCardImg-imageContainer-1Ar4M[data-movie-id], .PosterCardImg-imageContainer-1Ar4M[data-season-id]').each(function (index, element) { + $('.PosterCardImg-imageContainer-1Ar4M[data-watching-movie-id], .PosterCardImg-imageContainer-1Ar4M[data-movie-id], .PosterCardImg-imageContainer-1Ar4M[data-season-id]').each(function (index, element) { + let watching_movie_id = $(element).data('watching-movie-id'); + watching_movie_id ? $('[data-watching-movie-id="' + watching_movie_id + '"] > div').css('background-image', 'url("/cover/movie?movie_id=' + watching_movie_id + '&width=' + 375 + '&height=' + 211 + '&art=true")') : null; + let movie_id = $(element).data('movie-id'); movie_id ? $('[data-movie-id="' + movie_id + '"] > div').css('background-image', 'url("/cover/movie?movie_id=' + movie_id + '&width=' + 175 + '&height=' + 263 + '")') : null; let season_id = $(element).data('season-id'); - season_id ? $('[data-season-id="' + season_id + '"] > div').css('background-image', 'url("/cover/season?season_id='+ season_id +'&width='+ 175 +'&height='+ 263 +'")') : null; + season_id ? $('[data-season-id="' + season_id + '"] > div').css('background-image', 'url("/cover/season?season_id='+ season_id +'&width=' + 175 + '&height=' + 263 + '")') : null; }); /** SCROLL LIST TV SHOWS AND MOVIES **/ $('.HubCell-hubActions-28w1- button').on('click', function () { @@ -255,31 +363,33 @@ var select = $(parent).data('qa-id'); var previous = $(parent).find('button[data-hubcell-action="previous"]'); var next = $(parent).find('button[data-hubcell-action="next"]'); + var list = $('#' + select + '_list'); + console.log(list.scrollLeft(), list.width()); if ($(this).data('hubcell-action') === 'previous') { - $('#' + select + '_list').animate({scrollLeft: $('#' + select + '_list').scrollLeft() - 152 * 2}, 200); + list.animate({scrollLeft: list.scrollLeft() - list.width()}, 200); setTimeout(function () { - if ($('#' + select + '_list').scrollLeft() <= (150 * 19)) { + if (list.scrollLeft() <= (150 * 19)) { $(next).removeClass('isDisabled'); } - if ($('#' + select + '_list').scrollLeft() === 0) { + if (list.scrollLeft() === 0) { $(previous).addClass('isDisabled'); } }, 100); } if ($(this).data('hubcell-action') === 'next') { - $('#' + select + '_list').animate({scrollLeft: $('#' + select + '_list').scrollLeft() + 152 * 2}, 300); + list.animate({scrollLeft: list.scrollLeft() + list.width()}, 300); setTimeout(function () { - if ($('#' + select + '_list').scrollLeft() > 0) { + if (list.scrollLeft() > 0) { $(previous).removeClass('isDisabled'); } - if ($('#' + select + '_list').scrollLeft() >= (150 * 19)) { + if (list.scrollLeft() >= (150 * 19)) { $(next).addClass('isDisabled'); } - if ($('#' + select + '_list').scrollLeft() === 0) { + if (list.scrollLeft() === 0) { $(next).addClass('isDisabled'); } }, 100); diff --git a/fuel/app/views/layout/body.php b/fuel/app/views/layout/body.php index 01f3e7e..c0ea1a8 100644 --- a/fuel/app/views/layout/body.php +++ b/fuel/app/views/layout/body.php @@ -25,10 +25,10 @@
+ 0) : ?>