fix(media): a tvdb episode page is not the episode list
Tvdb's default episode query answers at most 500 rows and states no total. One Piece (1999), Crayon Shin-chan (1992) and Detective Conan (1996) each answer exactly 500 while holding over a thousand, so the contradiction rule added in the previous commit read every long-running show as contradicted: the pack books more episodes than "the authority holds", and the rule that exists to stop a wrong anime title would have stripped the right one from every file of the season. A capped list now records that it is capped (`tvdb:capped:<id>`, so a warm cache answers the same question a cold one did) and contradicts nothing; titles for the episodes the page does hold still ride. Test: a 500-row page with a 501-episode pack keeps ` - Episode 1` and lists no contradiction. Red before the change, proved in a copy of the tree with the cap raised past the fixture.
This commit is contained in:
1 parent
acab4cef22
commit
e4656cfd7a
3 files changed
+66
-15
No files matched your search
@@ -539,3 +539,30 @@ PY
|
||||
[ "$(dst "$LIB/Gate Pack/Season 05/two S05E01.mkv")" = "$want" ]
|
||||
grep -A6 -i "numbering tvdb contradicts" "$EXC" | grep -q "Anime Gate"
|
||||
}
|
||||
|
||||
# Tvdb's default episode query answers at most 500 rows and states no total, so a
|
||||
# list that long is a PAGE, not a list: One Piece (1999), Crayon Shin-chan (1992)
|
||||
# and Detective Conan (1996) each answer exactly 500 while holding over a thousand.
|
||||
# Read as the whole truth, that page contradicts every long-running show's pack
|
||||
# and strips the tvdb title from all of it.
|
||||
@test "an episode list the authority paginates never contradicts the pack" {
|
||||
python3 - "$CACHE" <<'PY'
|
||||
import json, sys
|
||||
json.dump({"tvdb:series:4242": {"name": "Long Run", "year": "1999"},
|
||||
"tvdb:episodes:4242": {f"1/{n}": f"Episode {n}"
|
||||
for n in range(1, 501)}},
|
||||
open(sys.argv[1], "w"))
|
||||
PY
|
||||
for n in $(seq 1 501); do
|
||||
ep=$(printf '%02d' "$n")
|
||||
file "$LIB/Long Pack/Season 01/long $ep.mkv" 1000
|
||||
title_row "$LIB/Long Pack/Season 01/long $ep.mkv" \
|
||||
"Long Run" 1999 1 "$n" "" "" "" "4242"
|
||||
done
|
||||
plan
|
||||
want="$LIB/Long Run (1999) [tvdbid-4242]/Season 01"
|
||||
want+="/Long Run (1999) - S01E01 - Episode 1.mkv"
|
||||
[ "$(dst "$LIB/Long Pack/Season 01/long 01.mkv")" = "$want" ]
|
||||
run grep -i "numbering tvdb contradicts" "$EXC"
|
||||
[ "$status" -ne 0 ]
|
||||
}
|
||||
Reference in new issue
Block a user