From a8ed74a90ed50711c507bd06393229ed7ee13b56 Mon Sep 17 00:00:00 2001 From: itismadness Date: Mon, 13 Oct 2025 02:47:19 +0000 Subject: [PATCH] Fix rescoring of orphaned torrents --- bin/rescore-logs | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/bin/rescore-logs b/bin/rescore-logs index a33e65622..8068c559b 100755 --- a/bin/rescore-logs +++ b/bin/rescore-logs @@ -2,9 +2,9 @@ ] [--offset ] + * Usage: rescore-logs [--dry-run] [--include-adjusted] [--limit ] [--offset ] */ namespace Gazelle; @@ -14,6 +14,7 @@ use OrpheusNET\Logchecker\Logchecker; require_once(__DIR__ . '/../lib/bootstrap.php'); $dryRun = in_array('--dry-run', $argv); +$includeAdjusted = in_array('--include-adjusted', $argv); $limitKey = array_find_key($argv, fn ($val) => $val === '--limit'); if ($limitKey !== null) { @@ -38,32 +39,48 @@ if ($offsetKey !== null) { $logcheckerVersion = Logchecker::getLogcheckerVersion(); [$major, $minor, $patch] = explode('.', $logcheckerVersion); +$extra = ''; +$args = [$major, $major, $minor, $major, $minor, $patch]; + $db = DB::DB(); +if (!$includeAdjusted) { + $extra = 'AND Adjusted = ?'; + $args[] = '0'; +} + +$args[] = $limit; +$args[] = $offset; + $db->prepared_query(" - SELECT TorrentID, LogID, Score - FROM torrents_logs + SELECT tl.TorrentID, tl.LogID, tl.Score + FROM torrents_logs AS tl + INNER JOIN torrents AS t ON (t.ID = tl.TorrentID) WHERE - LogcheckerVersion = '' - OR CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) < ? - OR ( - CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) = ? AND - CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(LogcheckerVersion, '.', 2), '.', -1) AS UNSIGNED) < ? - ) - OR ( - CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) = ? AND - CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(LogcheckerVersion, '.', 2), '.', -1) AS UNSIGNED) = ? AND - CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', -1) AS UNSIGNED) < ? + ( + LogcheckerVersion = '' + OR CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) < ? + OR ( + CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) = ? AND + CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(LogcheckerVersion, '.', 2), '.', -1) AS UNSIGNED) < ? + ) + OR ( + CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', 1) AS UNSIGNED) = ? AND + CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(LogcheckerVersion, '.', 2), '.', -1) AS UNSIGNED) = ? AND + CAST(SUBSTRING_INDEX(LogcheckerVersion, '.', -1) AS UNSIGNED) < ? + ) ) + {$extra} ORDER BY LogID, TorrentID LIMIT ? OFFSET ? -", $major, $major, $minor, $major, $minor, $patch, $limit, $offset); +", ...$args); $i = 0; /** @var Torrent|null */ $torrent = null; while (true) { + $db->set_query_id($queryId); $row = $db->next_row(MYSQLI_NUM); if (!$row) { if (!$dryRun) {