Skip to content

dantleech/strava-rs

Repository files navigation

Strava TUI

Strava TUI written in Rust! This is an experimental TUI for Strava.

Features:

  • List activities in a comparable way
  • Filter activites by with expressions
  • Sort listed activities
  • Display the route
  • Show laps
  • Race predictions
  • Filter by route similarity ("anchoring")

Screenshots

List activities

image

Acivity View

image

Key Map

  • q: Quit: quit!
  • k: Up - select previous activity
  • j: Down - select next activity
  • K: PageUp - select previous activity (shift-K to move 10 down)
  • J: PageDown - select next activity (shift-J to move 10 up)
  • n: Next - (in activity view) next split
  • p: Previous - (in activity view) previous split
  • o: ToggleSortOrder - switch between ascending and descending order
  • u: ToggleUnitSystem - switch between imperial and metric units
  • s: Sort - show sort dialog
  • S: Rank - choose ranking
  • f: Filter - filter (see filter section below)
  • r: Refresh - reload activities
  • a: Anchor - show activities with similar routes
  • +: IncreaseTolerance - incease the anchor tolerance
  • -: DecreaseTolerance - descrease the ancor tolerance
  • 0: ToggleLogView - toggle log view

Filter

Press f on the activity list view to open the filter input.

Examples

Show all runs that are of a half marathon distance or more:

type = "Run" and distance > 21000

Show all runs with "Park" in the title:

type = "Run" and title ~ "Park"

Fields

  • distance: Distance (in meters)
  • type: Run, Ride etc.
  • heartrate: Heart rate in BPM.
  • title: Activity title
  • elevation: Elevation (in meters)
  • time: Time (in seconds, 3600 = 1 hour)
  • date: Date (YYYY-MM-DD)
  • speed: Speed (meters per hour, 1000 = 1kmph)

Values

  • kmph, k: Kilometers per hour e.g. speed > 10kmph, distance > 10k
  • mph, mi: Miles per hour e.g. speed > 10mph, distance > 10mi
  • m, meters: Meters per hour e.g. elevation > 500m
  • f, foot: Foot per hour e.g. elevation > 1000ft

Operators

  • >, <: Greater than, Less than (e.g. distance > 21000)
  • and, or: Logical operators (e.g. type = "Run" and time > 0)
  • =: Equal to
  • ~: String contains
  • !=: Not equal to (e.g. type != "Run")
  • !~: String does not contain (e.g. title ~ "Parkrun")