Fix off-by-one errors
This commit is contained in:
parent
c424e3a65a
commit
e3e32b4408
@ -73,30 +73,26 @@ class AnimeHistoryTransformer {
|
|||||||
$count = count($singles);
|
$count = count($singles);
|
||||||
for ($i = 0; $i < $count; $i++)
|
for ($i = 0; $i < $count; $i++)
|
||||||
{
|
{
|
||||||
|
$entries = [];
|
||||||
$entry = $singles[$i];
|
$entry = $singles[$i];
|
||||||
$prevTitle = $entry['title'];
|
$prevTitle = $entry['title'];
|
||||||
$nextId = $i + 1;
|
$nextId = $i;
|
||||||
if ($nextId < $count)
|
$next = $singles[$nextId];
|
||||||
{
|
while (
|
||||||
$entries = [];
|
$next['kind'] === 'progressed' &&
|
||||||
$next = $singles[$nextId];
|
$next['title'] === $prevTitle
|
||||||
while (
|
) {
|
||||||
$next['kind'] === 'progressed' &&
|
$entries[] = $next;
|
||||||
$next['title'] === $prevTitle
|
$prevTitle = $next['title'];
|
||||||
) {
|
|
||||||
$entries[] = $next;
|
|
||||||
$prevTitle = $next['title'];
|
|
||||||
|
|
||||||
if ($nextId + 1 < $count)
|
if ($nextId + 1 < $count)
|
||||||
{
|
{
|
||||||
$nextId++;
|
$nextId++;
|
||||||
$next = $singles[$nextId];
|
$next = $singles[$nextId];
|
||||||
}
|
continue;
|
||||||
else
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($entries) > 1)
|
if (count($entries) > 1)
|
||||||
@ -112,9 +108,6 @@ class AnimeHistoryTransformer {
|
|||||||
|
|
||||||
$title = $entries[0]['title'];
|
$title = $entries[0]['title'];
|
||||||
|
|
||||||
// Get rid of the single entry added before aggregating
|
|
||||||
// array_pop($output);
|
|
||||||
|
|
||||||
$action = (count($entries) > 3)
|
$action = (count($entries) > 3)
|
||||||
? "Marathoned episodes {$firstEpisode}-{$lastEpisode} of {$title}"
|
? "Marathoned episodes {$firstEpisode}-{$lastEpisode} of {$title}"
|
||||||
: "Watched episodes {$firstEpisode}-{$lastEpisode} of {$title}";
|
: "Watched episodes {$firstEpisode}-{$lastEpisode} of {$title}";
|
||||||
@ -128,13 +121,11 @@ class AnimeHistoryTransformer {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Skip the rest of the aggregate in the main loop
|
// Skip the rest of the aggregate in the main loop
|
||||||
$i += count($entries);
|
$i += count($entries) - 1;
|
||||||
$prevTitle = $title;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$prevTitle = $entry['title'];
|
|
||||||
$output[] = $entry;
|
$output[] = $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user