fix(playback): isolate curriculum keys and prevent non-uploaded lessons from falling back to previous video

This commit is contained in:
Hamza-Ayed
2026-09-09 01:33:56 +03:00
parent a4d6e34a40
commit 78ad245ee5
4 changed files with 196 additions and 77 deletions
+17 -6
View File
@@ -224,12 +224,23 @@ class CurriculumService
$dbTitle = (string)($dbl['title'] ?? '');
$matched = false;
if ($currKey !== '' && ($currKey === $lessonFile || $currKeyNoExt === $lessonFileNoExt)) {
$matched = true;
} elseif ($currKeyNoExt !== '' && str_ends_with($currKeyNoExt, $lessonId)) {
$matched = true;
} elseif ($dbTitle !== '' && ($dbTitle === $lessonTitle || str_contains($lessonTitle, $dbTitle) || str_contains($dbTitle, $lessonTitle))) {
$matched = true;
if ($currKeyNoExt !== '' && $lessonFileNoExt !== '') {
if ($currKeyNoExt === $lessonFileNoExt) {
$matched = true;
} elseif (str_contains($currKeyNoExt, '/') && (
str_ends_with($lessonFileNoExt, '/' . ltrim($currKeyNoExt, '/')) ||
str_ends_with($currKeyNoExt, '/' . ltrim($lessonFileNoExt, '/'))
)) {
$matched = true;
}
}
if (!$matched && $dbTitle !== '' && $lessonTitle !== '') {
$normDb = preg_replace('/[\s\p{P}]+/u', '', mb_strtolower($dbTitle));
$normLes = preg_replace('/[\s\p{P}]+/u', '', mb_strtolower($lessonTitle));
if ($normDb === $normLes && mb_strlen($normDb) > 8) {
$matched = true;
}
}
if ($matched) {