From 9846837a5ef3a41bf3cf91ddd445b9dcd742ea19 Mon Sep 17 00:00:00 2001 From: Fossil Date: Tue, 4 Apr 2023 12:20:21 +0200 Subject: [PATCH] Fallback to Fanart.tv poster if none was provided by TVDB Also choose the poster with the highest number of likes. --- Blacklight/processing/tv/TVDB.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Blacklight/processing/tv/TVDB.php b/Blacklight/processing/tv/TVDB.php index 0ff35d865..2112024a7 100755 --- a/Blacklight/processing/tv/TVDB.php +++ b/Blacklight/processing/tv/TVDB.php @@ -3,6 +3,7 @@ namespace Blacklight\processing\tv; use Blacklight\ReleaseImage; +use Blacklight\libraries\FanartTV; use CanIHaveSomeCoffee\TheTVDbAPI\Exception\ParseException; use CanIHaveSomeCoffee\TheTVDbAPI\Exception\ResourceNotFoundException; use CanIHaveSomeCoffee\TheTVDbAPI\Exception\UnauthorizedException; @@ -32,6 +33,10 @@ class TVDB extends TV * @bool Do a local lookup only if server is down */ private bool $local; + + private FanartTV $fanart; + + private mixed $fanartapikey; /** * TVDB constructor. @@ -57,6 +62,11 @@ class TVDB extends TV if ($this->token !== '') { $this->client->setToken($this->token); } + + $this->fanartapikey = config('nntmux_api.fanarttv_api_key'); + if ($this->fanartapikey !== null) { + $this->fanart = new FanartTV($this->fanartapikey); + } } /** @@ -131,7 +141,11 @@ class TVDB extends TV } if ((int) $videoId > 0 && (int) $tvDbId > 0) { - if (! empty($tvdbShow['poster'])) { + if (! empty($tvdbShow['poster'])) { // Use TVDB poster if available + $this->getPoster($videoId); + } else { // Check Fanart.tv for poster + $poster = $this->fanart->getTVFanart($tvDbId); + $this->posterUrl = collect($poster['tvposter'])->sortByDesc('likes')[0]['url']; $this->getPoster($videoId); }