Skip to content

feat(VLR.gg): add activity - #11086

Merged
theusaf merged 2 commits into
PreMiD:mainfrom
hashking710:feat/vlr-gg-activity
Aug 21, 2026
Merged

feat(VLR.gg): add activity#11086
theusaf merged 2 commits into
PreMiD:mainfrom
hashking710:feat/vlr-gg-activity

Conversation

@hashking710

Copy link
Copy Markdown
Contributor

Status: Functionally complete and passing lint/typecheck/validate — screenshots still being gathered before this is fully ready for review. Will update this note once that's done.

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:

  • Matches: teams, live score, Bo3/Bo5 format, event name, and the event's own logo as cover art. Live/upcoming/finished states are told apart via .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.
  • News articles & forum threads/Pick'em posts: headline, event or author context. Deliberately no lead image here — VLR itself spoiler-hides recap article titles by default on its own homepage, so pulling an inline image risks leaking a match result.
  • Event pages (including Pick'em brackets, which reuse the exact same markup as a plain event page — distinguished only by a /pickem/ URL segment): name, dates, prize pool, event logo.
  • Team & player pages: name, country, their own logo/photo.
  • Generic labels for /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.error instead of silently leaving Discord blank if VLR ever changes its markup.

No lang/multiLanguage setting: this activity needs custom strings not in general.json, and CONTRIBUTING.md says new activities should stay hardcoded-English until they reach 1000 users.

Acknowledgements

Screenshots

Proof showing the creation/modification is working as expected

Screenshots are in a comment below.

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.
@dimerp

dimerp Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🖼️ Activity asset preview

I rummaged through the diff and found these. Finders keepers? No? Fine, they're yours.

VLR.gg (websites/V/VLR.gg) — creation

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. 🤖

@hashking710

Copy link
Copy Markdown
Contributor Author

Settings Panel:
settings

Live Match:
live match

Upcoming Match:
upcoming match

Finished Match:
completed match

News Article:
news article

Forum Thread/Pick'em Post:
forum thread

Specific Pick'em Entry:
pickems entry

Team Page:
team page

Player Page:
player page

Privacy Mode On:
privacy mode on

@hashking710
hashking710 marked this pull request as ready for review August 5, 2026 17:01
Comment thread websites/V/VLR.gg/metadata.json Outdated
Signed-off-by: Daniel Lau <32113157+theusaf@users.noreply.github.com>
@theusaf
theusaf requested review from a team and skullysmods August 17, 2026 21:35
@theusaf
theusaf enabled auto-merge (squash) August 17, 2026 21:35
@theusaf
theusaf merged commit 4502e8d into PreMiD:main Aug 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

feat(VLR.gg): add presence

3 participants