Skip to content

Search Arctic Shift alongside PullPush for Reddit threads - #230

Merged
arishaig merged 8 commits into
mainfrom
feat/arctic-shift-reddit-source
Oct 28, 2026
Merged

arishaig merged 8 commits into
mainfrom
feat/arctic-shift-reddit-source

Conversation

@arishaig

Copy link
Copy Markdown
Owner

Summary

  • PullPush now 429s every request, so the Reddit provider found nothing. Arctic Shift is queried alongside it and results are merged by submission id, so either archive going dark no longer hides the other.
  • Arctic Shift lists each subreddit's posts around the air date (newest posts when the release date is unknown, e.g. prefetch) and matches titles locally, since keyword search requires a subreddit and times out on large ones. Comments come from /comments/tree, flattened, with the other archive as fallback.
  • {"data":null,"error":...} bodies (how Arctic Shift reports timeouts, with HTTP 200) count as failures, so they're cached for 60s rather than as a 24h confirmed miss.
  • Rate-limit backoff honors X-RateLimit-Reset; Love Is Blind is mapped to its Netflix subreddits; health check is green while either archive answers; episode titles match on whole words ("Episode 1" no longer matches "Episode 12").
  • Each archive can be disabled via Reddit:UsePullPush / Reddit:UseArcticShift (env/appsettings only, not in the settings UI).

Test plan

  • dotnet test Core and Api pass; Infrastructure passes except the opt-in LiveIntegrationTests Jellyfin test (no route to host)
  • Regression tests fail without their fixes (error-body caching, rate-limit reset, whole-word episode title)
  • Ran locally with manual watch state Love Is Blind S11E01 while PullPush returned 429: got the episode discussion thread with 250 comments; warm sync cycles emitted only 0% → 100%
  • Movie path on Arctic Shift has no tests or live run
  • Busy subreddits are capped at 3 pages (300 posts) per window; a debug log notes when the cap is hit

🤖 Generated with Claude Code

ilsteiner and others added 8 commits October 27, 2026 17:20
Arctic Shift and Reddit send seconds-until-reset in X-RateLimit-Reset
rather than Retry-After, so the suppression window fell back to a flat
60s regardless of what the server asked for.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PullPush now 429s every request, so the Reddit provider found nothing.
Both archives are now queried in parallel and merged by submission id,
so either one going dark no longer hides the other's results.

Arctic Shift requires a subreddit for keyword search and times out on
large ones, so it lists each subreddit's posts around the air date and
matches titles locally. Comments come from /comments/tree (flattened,
"more" stubs skipped) with PullPush as the fallback. Error bodies
({"data":null,"error":...}) count as failures, so a timeout is cached
briefly instead of as a confirmed miss. Each archive can be disabled
via Reddit:UsePullPush / Reddit:UseArcticShift.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The derived subreddit (r/loveisblind) is empty, so the show found no
threads. Its discussion lives in r/LoveIsBlindNetflix and r/LoveIsBlindOnNetflix.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The health check only probed PullPush, so the provider showed as down
even when Arctic Shift was serving results. It now probes every enabled
archive and names the ones that are failing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A generic episode title like "Episode 1" matched "Season 11 Episode 12
Discussion" as a substring, surfacing later-episode spoilers (and
"Pilot" would match "Copilot").

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Prefetch targets the next episode with no release date, which sent
Arctic Shift keyword searches that time out on large subreddits. The
newest posts are listed and matched locally instead.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@arishaig
arishaig merged commit a86a79f into main Oct 28, 2026
9 checks passed
@arishaig
arishaig deleted the feat/arctic-shift-reddit-source branch October 28, 2026 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants