Skip to content

2.0.10

Choose a tag to compare

@ernestdefoe ernestdefoe released this 16 May 18:20
Switch to On3 rankings page for headshots (one request per year)

The per-player search approach was broken because On3's search page
returns featured/popular players regardless of the query — actual
results require client-side JavaScript.

New approach: fetch /rivals/rankings/player/football/{year}/ once.
This page is fully server-rendered, contains 150+ players with both
profile hrefs (/rivals/{slug}-{id}/) and on3static.com image URLs
in the same HTML.  One HTTP request per year, cached 24 hours.

buildOn3ImageMap() fetches the rankings page.
parseOn3Rankings() extracts a nameSlug → imageUrl map by finding
the on3static image closest (≤5000 chars) to each profile href.
enrichWithPhotos() looks up each CFBD recruit by normalised name slug.

Also removes all Guzzle Pool / concurrent per-player scraping code —
no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>