diff --git a/app/Models/Setting.php b/app/Models/Setting.php index db955e00..92872f54 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -326,4 +326,9 @@ class Setting extends NexusModel { return self::get('system.is_record_seeding_bonus_log') == 'yes'; } + + public static function getIsImdbEnabled(): bool + { + return self::get('main.showimdbinfo') == 'yes'; + } } diff --git a/include/functions.php b/include/functions.php index 7778ee15..3f1aecd7 100644 --- a/include/functions.php +++ b/include/functions.php @@ -3620,19 +3620,17 @@ foreach ($rows as $row) //cover $coverSrc = $tdCover = ''; + if ($showCover) { - if ($imdb_id = parse_imdb_id($row["url"])) { - try { - if ($imdb->getCacheStatus($imdb_id) == 1) { - $coverSrc = $imdb->getMovie($imdb_id)->photo(false); - } - } catch (\Exception $exception) { - do_log("torrent: {$row['id']} get cover from imdb error: ".$exception->getMessage() . "\n[stacktrace]\n" . $exception->getTraceAsString(), 'error'); - } - } - if (empty($coverSrc) && !empty($row['cover'])) { + if (!empty($row['cover'])) { $coverSrc = $row['cover']; } + if (empty($coverSrc) && !empty($row['url'])) { + $imdb_id = parse_imdb_id($row["url"]); + if ($imdb_id) { + $coverSrc = $imdb->getMovieCover($imdb_id); + } + } $tdCover = sprintf('', $coverSrc); } @@ -4812,13 +4810,11 @@ function get_torrent_promotion_append_sub($promotion = 1,$forcemode = "",$showti function get_hr_img(array $torrent, $searchBoxId) { -// $mode = get_setting('hr.mode'); $mode = \App\Models\HitAndRun::getConfig('mode', $searchBoxId); $result = ''; if ($mode == \App\Models\HitAndRun::MODE_GLOBAL || ($mode == \App\Models\HitAndRun::MODE_MANUAL && isset($torrent['hr']) && $torrent['hr'] == \App\Models\Torrent::HR_YES)) { $result = 'H&R'; } - do_log("searchBoxId: $searchBoxId, mode: $mode, result: $result"); return $result; } diff --git a/include/globalfunctions.php b/include/globalfunctions.php index f21855a2..7fb9b3d8 100644 --- a/include/globalfunctions.php +++ b/include/globalfunctions.php @@ -4,7 +4,7 @@ function get_global_sp_state() { static $global_promotion_state; $cacheKey = \App\Models\Setting::TORRENT_GLOBAL_STATE_CACHE_KEY; - if (!$global_promotion_state) { + if (is_null($global_promotion_state)) { $row = \Nexus\Database\NexusDB::remember($cacheKey, 600, function () use ($cacheKey) { return \Nexus\Database\NexusDB::getOne('torrents_state', 1); }); diff --git a/nexus/Imdb/Imdb.php b/nexus/Imdb/Imdb.php index 4c5d8cd3..5511c6e7 100644 --- a/nexus/Imdb/Imdb.php +++ b/nexus/Imdb/Imdb.php @@ -2,8 +2,10 @@ namespace Nexus\Imdb; +use App\Models\Setting; use Imdb\Config; use Imdb\Title; +use Nexus\Database\NexusDB; use Nexus\PTGen\PTGen; class Imdb @@ -300,4 +302,27 @@ class Imdb } return $this->ptGen; } + + public function getMovieCover($imdbId): string + { + static $enabled; + if (is_null($enabled)) { + $enabled = Setting::getIsImdbEnabled(); + } + if (!$enabled) { + return ''; + } + return NexusDB::remember("imdb:cover:$imdbId", 3600, function() use($imdbId) { + if ($this->getCacheStatus($imdbId) != 1) { + return ''; + } + try { + return $this->getMovie($imdbId)->photo(false); + } catch (\Exception $exception) { + do_log($exception->getMessage() . $exception->getTraceAsString(), 'error'); + return ''; + } + }); + + } } diff --git a/public/torrents.php b/public/torrents.php index 162c0218..0c71c16f 100644 --- a/public/torrents.php +++ b/public/torrents.php @@ -943,7 +943,9 @@ if ($shouldUseMeili) { $resultFromSearchRep = $searchRep->search($searchParams, $CURUSER['id']); $count = $resultFromSearchRep['total']; } else { + do_log("[BEFORE_TORRENT_COUNT_SQL]", 'debug'); $res = sql_query($sql); + do_log("[AFTER_TORRENT_COUNT_SQL] $sql", 'debug'); $count = 0; while($row = mysql_fetch_array($res)) { $count += $row[0]; @@ -956,8 +958,6 @@ elseif ($torrentsperpage_main) $torrentsperpage = $torrentsperpage_main; else $torrentsperpage = 100; -do_log("[TORRENT_COUNT_SQL] $sql", 'debug'); - if ($count) { if (isset($searchstr) && (!isset($_GET['notnewword']) || !$_GET['notnewword'])){