diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-10-29 09:30:21 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-10-29 09:30:21 +0000 |
| commit | 5a9b1db3c647fa4a2be8a852fff23f0ec7047121 (patch) | |
| tree | eb00338a591b0b76f3ad0fa3e2a360a97a6f8de7 | |
| parent | 7f61aa9fe4b1b0f2f46138bc09c0c88aa67b4b5d (diff) | |
Recognise the episodes whose answer checks itself first
Recognition was working strictly newest-first, so the seventeen episodes holding
the publisher's ad-free master sat behind 259 that do not. Those seventeen are
the only ones where the result validates itself: subtracting the master found
4:20 of the 4:15 the lengths imply on Darknet Diaries and 3:32 of 3:29 on
Heavyweight.
Everything else falls back to reading the ad copy, which across the first
nineteen real episodes found 0%, 0%, 15% and 29% of what the lengths say is
there -- and on a show that bakes its sponsor reads in, found 2:13 where the
lengths can see nothing at all. Useful as a hint, not as a measurement.
So the budget goes where the result can be trusted first, and stays newest-first
within each group.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
| -rw-r--r-- | server/cmd/listend/main.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/server/cmd/listend/main.go b/server/cmd/listend/main.go index c21d65a..6dd3c65 100644 --- a/server/cmd/listend/main.go +++ b/server/cmd/listend/main.go @@ -598,7 +598,19 @@ func adAccounting(e *store.Episode, found []transcript.Candidate) string { } } -// pendingRecognition is every mirrored episode still without words, newest first. +/* +pendingRecognition is every mirrored episode still without words, best first. + +An episode holding the publisher's ad-free master comes first, whatever its date. Recognising +one of those produces an answer that checks itself: subtraction found 4:20 of the 4:15 the +lengths imply on Darknet Diaries and 3:32 of 3:29 on Heavyweight. Recognising anything else +leaves the ad copy to be read, which across the first nineteen real episodes found 0%, 0%, 15% +and 29% of what the lengths say is there. Spending the budget where the result can be trusted +first is worth more than spending it in date order. + +Newest first within each group, because an episode about to be played is worth having words for +before one from the back of a catalogue. +*/ func (w *worker) pendingRecognition() []*store.Episode { var pending []*store.Episode for _, show := range w.state.Shows() { @@ -608,8 +620,12 @@ func (w *worker) pendingRecognition() []*store.Episode { } } } - sort.Slice(pending, func(i, j int) bool { - return pending[i].PublishedUnix > pending[j].PublishedUnix + sort.SliceStable(pending, func(i, j int) bool { + left, right := pending[i], pending[j] + if (left.MasterCues > 0) != (right.MasterCues > 0) { + return left.MasterCues > 0 + } + return left.PublishedUnix > right.PublishedUnix }) return pending } |
