diff --git a/.env.example b/.env.example index d08c27b..1c82c7d 100644 --- a/.env.example +++ b/.env.example @@ -4,7 +4,7 @@ APP_KEY=SomeRandomStringThatIsLongEnough APP_TIMEZONE="UTC" APP_URL="http://airflix.local" -AIRFLIX_EXTENSIONS_VIDEO=m4v +AIRFLIX_EXTENSIONS_VIDEO="m4v, mp4" TMDB_API_KEY=ApplyForAnApiKey DB_HOST=localhost diff --git a/Airflix/Episode.php b/Airflix/Episode.php index 6015ffb..be64cc6 100644 --- a/Airflix/Episode.php +++ b/Airflix/Episode.php @@ -106,7 +106,7 @@ public function getFileNameAttribute() { return 'S'.sprintf('%02d', $this->season_number). 'E'.sprintf('%02d', $this->episode_number).'.'. - config('airflix.extensions.video'); + $this->getFileExtension(); } /** @@ -132,6 +132,27 @@ public function getHasFileAttribute() ->exists($this->file_path); } + /** + * Get the movie's file extension. + * + * @return string + */ + protected function getFileExtension() + { + $filePath = '/downloads/episodes/'. + $this->folder_name.'/'. + $this->folder_name.'.'; + + foreach(config('airflix.extensions.video') as $extension) + { + if(Storage::disk('public')->exists($filePath.$extension)) { + return $extension; + } + } + + return 'm4v'; + } + /** * Get the episode's still path. * diff --git a/Airflix/Movie.php b/Airflix/Movie.php index eb95f04..83e1f49 100644 --- a/Airflix/Movie.php +++ b/Airflix/Movie.php @@ -113,7 +113,7 @@ public function getBackdropUrlAttribute() public function getFileNameAttribute() { return $this->folder_name.'.'. - config('airflix.extensions.video'); + $this->getFileExtension(); } /** @@ -139,6 +139,27 @@ public function getHasFileAttribute() ->exists($this->file_path); } + /** + * Get the movie's file extension. + * + * @return string + */ + protected function getFileExtension() + { + $filePath = '/downloads/movies/'. + $this->folder_name.'/'. + $this->folder_name.'.'; + + foreach(config('airflix.extensions.video') as $extension) + { + if(Storage::disk('public')->exists($filePath.$extension)) { + return $extension; + } + } + + return 'm4v'; + } + /** * Get the movie's poster URl. * diff --git a/config/airflix.php b/config/airflix.php index c553eae..7d22d68 100644 --- a/config/airflix.php +++ b/config/airflix.php @@ -10,7 +10,12 @@ ], 'extensions' => [ - 'video' => env('AIRFLIX_EXTENSIONS_VIDEO', 'm4v'), + 'video' => array_map('trim', + array_filter( + explode(',', env('AIRFLIX_EXTENSIONS_VIDEO', 'm4v, mp4')), + 'strlen' + ) + ), ], 'per_page' => 100,