fix: parse latest tournament from "recent-events" list on player page #24

Closed
opened 2026-06-01 08:41:06 +02:00 by shcizo · 0 comments
Owner

Beskrivning

PDGA har börjat låta den senaste tävlingen ligga kvar under "Recent Events" på spelarsidan en längre tid — troligen tills nästa tävling spelats — innan den flyttas in i den vanliga resultat-tabellen. Det gör att vår scraper missar den senaste tävlingens rounds när vi kör refresh-round-history, eftersom vi bara letar i table[id*="player-results"].

Förväntat beteende

När en spelare har en helt nyspelad tävling som ännu inte hamnat i player-results-tabellen ska den ändå plockas upp och dess round ratings ska räknas in i predicted rating.

Teknisk orsak

I src/scrapers/player-puppeteer.js:159-194 (getNewTournamentRounds) hämtas event-länkar enbart från:

const tables = document.querySelectorAll('table[id*="player-results"]');

Den senaste tävlingen ligger nu istället under en <li class="recent-events"> med en <a href> som länkar till eventet — den missas av nuvarande selector.

Förslag till lösning

I page.evaluate-blocket i getNewTournamentRounds, lägg till parsing av li.recent-events parallellt med befintlig table-parsing och pusha event-länken till samma urls-array. Då går resten av flödet (datumfilter mot afterDate, navigering till event-sidan, extrahering av round ratings via td.round-rating) igenom oförändrat.

Saker att tänka på:

  • Deduplicering: Om samma event senare också dyker upp i player-results-tabellen ska vi inte dubbelparsa. Enkel dedup på URL i urls-arrayen räcker.
  • Datumformat: Vi behöver kunna läsa ut datumet från recent-events-elementet för att kunna jämföra mot afterDate. Om det inte finns ett tydligt datumfält där kan vi falla tillbaka på att hämta datumet från event-sidan vi navigerar till.
  • Selector-robusthet: Om strukturen är <ul class="recent-events"><li><a>...</a></li></ul> snarare än <li class="recent-events">, justera selector därefter — verifiera mot live-HTML innan implementation.
## Beskrivning PDGA har börjat låta den senaste tävlingen ligga kvar under "Recent Events" på spelarsidan en längre tid — troligen tills nästa tävling spelats — innan den flyttas in i den vanliga resultat-tabellen. Det gör att vår scraper missar den senaste tävlingens rounds när vi kör `refresh-round-history`, eftersom vi bara letar i `table[id*="player-results"]`. ## Förväntat beteende När en spelare har en helt nyspelad tävling som ännu inte hamnat i player-results-tabellen ska den ändå plockas upp och dess round ratings ska räknas in i predicted rating. ## Teknisk orsak I `src/scrapers/player-puppeteer.js:159-194` (`getNewTournamentRounds`) hämtas event-länkar enbart från: ```javascript const tables = document.querySelectorAll('table[id*="player-results"]'); ``` Den senaste tävlingen ligger nu istället under en `<li class="recent-events">` med en `<a href>` som länkar till eventet — den missas av nuvarande selector. ## Förslag till lösning I `page.evaluate`-blocket i `getNewTournamentRounds`, lägg till parsing av `li.recent-events` parallellt med befintlig table-parsing och pusha event-länken till samma `urls`-array. Då går resten av flödet (datumfilter mot `afterDate`, navigering till event-sidan, extrahering av round ratings via `td.round-rating`) igenom oförändrat. Saker att tänka på: - **Deduplicering:** Om samma event senare också dyker upp i player-results-tabellen ska vi inte dubbelparsa. Enkel dedup på URL i `urls`-arrayen räcker. - **Datumformat:** Vi behöver kunna läsa ut datumet från recent-events-elementet för att kunna jämföra mot `afterDate`. Om det inte finns ett tydligt datumfält där kan vi falla tillbaka på att hämta datumet från event-sidan vi navigerar till. - **Selector-robusthet:** Om strukturen är `<ul class="recent-events"><li><a>...</a></li></ul>` snarare än `<li class="recent-events">`, justera selector därefter — verifiera mot live-HTML innan implementation.
shcizo added the bug label 2026-06-01 08:41:06 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shcizo/pdga-rating#24