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('
';
}
- 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'])){