Repository navigation
Conversation
Steam moved achievements to a React page at /achievements/<appid> with no .achieveRow, #personalAchieve or #tabs, so the old DOM scraping found nothing. Read the data from the page's valve-ssr-data (config, schema, unlocks) instead of scraping, and keep the existing rendering. Sorting by time now uses the unlock timestamps from that data instead of re-fetching the page in Finnish. Games that Steam already groups into sets are left alone. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
bengosney
approved these changes
Oct 29, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Makes the achievements enhancements work on Steam's new React achievements page (
/achievements/<appid>), which has no.achieveRow,#personalAchieveor#tabs, so the old DOM scraping found nothing.Source for the fixes
The fixes here come from #288. As an initial pass, this PR only draws on the fixes from that PR (reading Steam's embedded page data, the new URL patterns, and leaving games that Steam already groups into sets alone). It deliberately leaves out #288's UI additions (global stats toggle, state/set filters, restyled panels) so the diff stays small and existing behaviour is unchanged. Those can build on this separately.
Changes
valve-ssr-datainstead of scraping the DOM. Names, icons and global percentages still come fromGetGameAchievements, and the rendering code is unchanged.<title>format./id|profiles/*/achievements/*and/achievements/*.Not supported
isCompareViewbranches are still in the code, now fixed tofalse, to keep this diff small.Testing
npm test(eslint, stylelint, prettier, tsc) andweb-ext lintpass./stats/...URLs, which redirect to the new URL.GetAchievementsGroups) worked in Firefox (Terraria split into 5 groups, Payday 2 into 123). It is blocked for unpacked Chrome builds because the extension ID differs, so it wasn't tested there.Known rough edge: the wait for Steam's page uses a fixed 1.5s delay (marked with a
shortcut:comment), because there is no signal for when hydration finishes.🤖 Generated with Claude Code