diff --git a/backend/internal/latest/sites.go b/backend/internal/latest/sites.go index b23d1b1..5289346 100644 --- a/backend/internal/latest/sites.go +++ b/backend/internal/latest/sites.go @@ -437,10 +437,10 @@ func novelfullCompleted(_, body string) bool { // whole body is scanned and the comment marker is not required, unlike // lnwLatestChapter: the status block sits ahead of the visitor-writable // thread, and hiatus maps to a distinct PotentialActionStatus value. -var lnwCompletedRe = regexp.MustCompile(`"creativeWorkStatus"\s*:\s*"https://schema\.org/CompletedActionStatus"`) +var lnwStatusRe = regexp.MustCompile(`"creativeWorkStatus"\s*:\s*"https://schema\.org/CompletedActionStatus"`) func lnwCompleted(_, body string) bool { - return lnwCompletedRe.MatchString(body) + return lnwStatusRe.MatchString(body) } // siteCompletedFrom reports whether the Site calls this work completed, via diff --git a/backend/internal/latest/sites_test.go b/backend/internal/latest/sites_test.go index 833f82a..40d3926 100644 --- a/backend/internal/latest/sites_test.go +++ b/backend/internal/latest/sites_test.go @@ -193,21 +193,22 @@ const lnwSeriesFixture = ` // from the consts and must answer false. // Trimmed from https://asurascans.com/comics/solo-leveling (301 to -// /comics/solo-leveling-b60d532c) fetched 2026-08-22. The astro-island props -// are HTML-escaped in the served document, so the quotes arrive as ". +// /comics/solo-leveling-b60d532c) fetched 2026-08-22 by a curl probe from +// this machine. The astro-island props are HTML-escaped in the served +// document, so the quotes arrive as ". const asuraCompletedFixture = ` "bookmarkCount":[0,39128],"status":[0,"completed"],"type":[0,"manhwa"] ` // Trimmed from https://asurascans.com/comics/chronicles-of-the-demon-faction-f886a8af -// fetched 2026-08-22. +// fetched 2026-08-22 by a curl probe. const asuraOngoingFixture = ` "bookmarkCount":[0,54027],"status":[0,"ongoing"],"type":[0,"manhwa"] ` // Trimmed from https://demonicscans.org/manga/Solo-Leveling fetched -// 2026-08-22. The info block is sloppy: bare