Skip to content

Validate and normalize tracker player input (Steam/BattleMetrics IDs + URLs)#17

Merged
FaiThiX merged 2 commits intomasterfrom
fix-tracker-input
Mar 10, 2026
Merged

Validate and normalize tracker player input (Steam/BattleMetrics IDs + URLs)#17
FaiThiX merged 2 commits intomasterfrom
fix-tracker-input

Conversation

@FaiThiX
Copy link
Copy Markdown
Owner

@FaiThiX FaiThiX commented Mar 10, 2026

Summary

This PR validates and normalizes tracker player input before saving it, so malformed values can no longer break tracker management.

Closes #14

Problem

Tracker player entries previously accepted arbitrary raw input.
That allowed invalid values to be stored, which could lead to:

  • broken tracker entries,
  • failed removals,
  • and in some cases tracker cleanup issues.

What changed

  • Added a dedicated tracker input parser used by both Add Player and Remove Player flows.
  • Supported/normalized input formats:
  • SteamID64 (7656119...)
  • BattleMetrics player ID (12345678)
  • Steam profile URL (https://steamcommunity.com/profiles/<steamid64>)
  • Steam vanity URL (https://steamcommunity.com/id/<name>) -> resolved to SteamID64
  • BattleMetrics player URL (https://www.battlemetrics.com/players/<id>)
  • Invalid or unsupported input now returns a clear user-facing error instead of being saved.
  • Remove flow now uses the same parsing logic and includes a fallback to remove legacy malformed raw entries.

Implementation details

  • Added: src/util/trackerInputParser.js
  • Updated: src/handlers/modalHandler.js
  • Updated: src/util/scrape.js (vanity -> SteamID64 resolver)
  • Updated: src/languages/en.json (new validation error message)

Validation

  • node --check src/handlers/modalHandler.js
  • node --check src/util/trackerInputParser.js
  • node --check src/util/scrape.js
  • npm test -- --pretty false

Impact

  • Tracker data is now stored in consistent internal formats.
  • Invalid tracker input is rejected early with clear feedback.
  • Improves tracker stability without changing existing tracker behavior for valid inputs.

@FaiThiX FaiThiX merged commit e93d587 into master Mar 10, 2026
@FaiThiX FaiThiX deleted the fix-tracker-input branch March 10, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate and parse tracker input

1 participant