fix cover issue on page torrents.php

This commit is contained in:
xiaomlove
2025-09-20 00:45:53 +07:00
parent 41ad91b183
commit ee4739fd8b
5 changed files with 41 additions and 15 deletions

View File

@@ -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';
}
}

View File

@@ -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('<td class="embedded" style="text-align: center;width: 46px;height: 46px"><img src="pic/misc/spinner.svg" data-src="%s" class="nexus-lazy-load" style="max-height: 46px;max-width: 46px" /></td>', $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 = '<img class="hitandrun" src="pic/trans.gif" alt="H&R" title="H&R" />';
}
do_log("searchBoxId: $searchBoxId, mode: $mode, result: $result");
return $result;
}

View File

@@ -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);
});

View File

@@ -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 '';
}
});
}
}

View File

@@ -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'])){