Skip to content

feat: enriched speedtest details with latency, ISP, and Ookla link#315

Merged
itsDNNS merged 6 commits intomainfrom
feat/enriched-speedtest-details
Apr 3, 2026
Merged

feat: enriched speedtest details with latency, ISP, and Ookla link#315
itsDNNS merged 6 commits intomainfrom
feat/enriched-speedtest-details

Conversation

@itsDNNS
Copy link
Copy Markdown
Owner

@itsDNNS itsDNNS commented Apr 3, 2026

Summary

  • Enrich speedtest results with 18 additional fields from SpeedTest-Tracker API: ISP, server location/host/IP, ping range, download/upload latency (IQM/jitter), transfer bytes/duration, external IP, VPN status, and Ookla sharing URL
  • Schema migration adds nullable columns via ALTER TABLE (SQLite compatible, zero downtime)
  • Upsert on save (ON CONFLICT DO UPDATE) so clearing the speedtest cache and re-syncing populates enriched fields for historical results
  • Lazy-load enriched details on row expand via /api/speedtest/<id> (no bulk payload increase)
  • Display in a new section below the existing signal data: Connection, Server, Latency Details, Transfer, and clickable Ookla link
  • i18n labels for all 4 languages (EN/DE/FR/ES)
  • URL sanitization: only https:// Ookla URLs are rendered as links

Test plan

  • Expand a speedtest row - verify enriched section appears with ISP, server, latency, transfer data
  • Verify Ookla link opens speedtest.net in new tab
  • Clear speedtest cache in Settings, wait for re-sync, verify enriched fields populate for historical results
  • Check with demo mode - enriched section should not render (all fields NULL)
  • Verify bulk /api/speedtest response has no new fields (stays lean)
  • Verify /api/speedtest/<id> response includes all 18 enriched fields
  • 1949 tests pass, i18n validation passes

itsDNNS added 6 commits April 3, 2026 18:01
Adds schema migration for isp, server_host, server_location, server_country,
server_ip, ping_low/high, dl/ul latency iqm+jitter, dl/ul bytes+elapsed_ms,
external_ip, is_vpn, and result_url columns to speedtest_results. Changes
INSERT OR IGNORE to INSERT ... ON CONFLICT DO UPDATE so enriched fields are
populated when a result is re-fetched with detail data. get_speedtest_by_id
now returns all 18 new fields.
…ests

Add ISP, server details, ping low/high, download/upload latency IQM+jitter,
byte counts, elapsed times, external IP, VPN flag, and result URL extraction.
Two new tests cover full field extraction with rounding and missing-data fallback.
Adds _renderEnrichedDetail() to display ISP, server, latency breakdown,
transfer stats and Ookla result link when a speedtest row is expanded.
Follows the same lazy-load + cache pattern as the existing signal detail.
@itsDNNS itsDNNS merged commit 735eda6 into main Apr 3, 2026
8 checks passed
@itsDNNS itsDNNS deleted the feat/enriched-speedtest-details branch April 3, 2026 16:33
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.

1 participant