feat(VLR.gg): add activity - #11086
Merged
Merged
Conversation
Adds a PreMiD activity for vlr.gg (fixes PreMiD#5840), a Valorant esports news/match-tracking site. Unlike a typical DOM-scraping target, vlr.gg reuses the same `/{id}/{slug}` URL shape across matches, news articles, and forum threads (including Pick'em posts) - distinguished only by which header block is present on the page, not the URL itself. Covers: - Matches: teams, live score (live matches only - VLR only exposes the scheduled kickoff time, not when a match actually went live, so no elapsed timer is shown to avoid a wrong duration whenever a match starts late), Bo3/Bo5 format, event name and the event's own logo as cover art. Live/upcoming/finished are told apart by which class is present in the (oddly self-nested) `.match-header-vs-note` markup. - News articles and forum threads/Pick'em posts: headline, event or author context. Deliberately no lead image here, since VLR itself spoiler-hides recap article titles by default on its own homepage - pulling an inline image risks leaking a match result. - Event pages (including Pick'em brackets, which reuse the exact same markup): name, dates, prize pool, and the event's own logo. - Team and player pages: name, country, and their own logo/photo. - Generic labels for /matches, /rankings, /stats, /news, /forums, /events, /threads (no verified DOM structure for these to scrape further yet). Privacy Mode strips all identifying text and cover art everywhere. Show Cover Art is a separate setting so images can be turned off independent of privacy. The whole update path is wrapped so an unexpected DOM change logs an error instead of leaving Discord blank. No multiLanguage/lang setting: needs custom strings not in general.json, and CONTRIBUTING.md says new activities should stay hardcoded-English until 1000 users.
Contributor
🖼️ Activity asset previewI rummaged through the diff and found these. Finders keepers? No? Fine, they're yours. VLR.gg (
|
| Preview | Source | URL |
|---|---|---|
![]() |
logo | https://i.imgur.com/AHGI3y5.png |
![]() |
thumbnail | https://i.imgur.com/jVdJagm.png |
Beep boop — I refresh this comment on every push, so no need to scroll. 🤖
Contributor
Author
hashking710
marked this pull request as ready for review
August 5, 2026 17:01
theusaf
requested changes
Aug 11, 2026
Signed-off-by: Daniel Lau <32113157+theusaf@users.noreply.github.com>
theusaf
approved these changes
Aug 17, 2026
theusaf
enabled auto-merge (squash)
August 17, 2026 21:35
Bas950
approved these changes
Aug 21, 2026
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.












Description
Adds a PreMiD activity for VLR.gg, a Valorant esports news/match-tracking site. Closes #5840 (the earlier attempt, PR #5855, was abandoned after review feedback rather than rejected for any structural reason).
A quirk worth calling out for reviewers: VLR.gg reuses the exact same
/{id}/{slug}URL shape across matches, news articles, and forum threads (including Pick'em posts) — there's no way to tell them apart from the URL alone, only by which header block (.match-header,.article-header,.thread-header) is actually present on the page.Covers:
.match-header-vs-note(which oddly nests a same-named class on itself, so format text is read positionally-last rather than by fixed index). No elapsed timer on live matches — VLR only exposes the scheduled kickoff time, not when a match actually went live, and esports matches routinely start late, so anchoring an elapsed timer to the schedule would show a wrong duration./pickem/URL segment): name, dates, prize pool, event logo./matches,/rankings,/stats,/news,/forums,/events,/threads(no verified DOM structure for these yet, so no deeper scraping there for now).Privacy Mode strips all identifying text and cover art everywhere — including team/player/event logos, which are arguably more identifying than the text they'd otherwise accompany. Show Cover Art is a separate setting so images can be toggled off independent of privacy. The whole update path is wrapped in a try/catch that logs via
presence.errorinstead of silently leaving Discord blank if VLR ever changes its markup.No
lang/multiLanguagesetting: this activity needs custom strings not ingeneral.json, and CONTRIBUTING.md says new activities should stay hardcoded-English until they reach 1000 users.Acknowledgements
npm run lintScreenshots
Proof showing the creation/modification is working as expected
Screenshots are in a comment below.