fix: parse latest tournament from "recent-events" list on player page #24
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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 itable[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: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 igetNewTournamentRounds, lägg till parsing avli.recent-eventsparallellt med befintlig table-parsing och pusha event-länken till sammaurls-array. Då går resten av flödet (datumfilter motafterDate, navigering till event-sidan, extrahering av round ratings viatd.round-rating) igenom oförändrat.Saker att tänka på:
urls-arrayen räcker.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.<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.