GithubHelp home page GithubHelp logo

saucellc / sauce4strava Goto Github PK

View Code? Open in Web Editor NEW
191.0 9.0 21.0 74.17 MB

Sauce for Strava™

License: MIT License

HTML 9.74% JavaScript 73.09% Makefile 0.13% Shell 0.18% SCSS 16.50% Swift 0.27% Python 0.04% CSS 0.06%
cycling running strava sauce firefox addon swimming watts cadence vam

sauce4strava's People

Contributors

alfred-zhong avatar gitter-badger avatar mayfield avatar phil-nelson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sauce4strava's Issues

segment rank percentage

For very populated segments users sometimes like to see their rank in percentile since 3251 out of 67483 would actually be in the top 5% which seems a LOT better than 3,251st place. :)

Peak Distances depending on activity

Peak Pace/HR/Power distances are currently shared among activities.

It would be more useful if they were split between e.g. swim/run/bike.

Specifically, I don't care about my mile time in the pool, but both 1500m and 1900m are relevant. On the other hand; don't care about those distances for any other sport.

sync manager dies following computer suspend that overlaps next sync time

setTimeout is not fired during computer suspend states so any sync wakeup calls that should trigger when the computer is sleeping will never run. So the sync engine just never runs again.

We need to install some sort of recovery mech with setInterval (will need to validate it still works after suspend).

Why is the initial Predicted Performance not the same as Original Performance?

If the rider weight and My Gear is correctly set in Strava, why does "Bike/Gear Weight" show a different value in Performance Predictor?

When the "Bike/Gear Weight" in Performance Predictor is reset to the same value as set in Strava, why is the "Predicted Performance" so far off from the "Original Performance"?

I would have expected the baseline to be the same.

enhancement request: weekly TSS in training log?

Just installed Sauce on Firefox, very nice job!!!!

One feature I've dreamed about: in the "Training Log" page, by default Strava shows Total Relative Effort for each week. Strava gives options to see other weekly totals, such as miles, but has no option to show weekly "Training Load" or (obviously) TSS.

It would be wonderful to see weekly TSS totals. Or even Strava's tss substitute of 'Training Load', if that is easier. For activities that do not have power data, I think it would be fine to count them as zero TSS.

Add info dialog button for segments

Feature request from patreon user... Support showing the info dialog used for the Peak Efforts tables in the segment listing.

  • Inject a button that's visible during row hover that will popup the dialog for that segment boundary.
  • Possibly make it opt-in at first, we'll see how invasive it is.

Context:
image

Chronological Feed Bug?

Hi, nice work on the plugin, but have you found any problems with the chronological feed? I'm seeing activities from yesterday mixed in between activities from today.

Is this down to upload dates possibly? (Obviously I'm posting an issue before bothering to look at the code, like the lazy sod I am!)

I'd also (guess) that this is probably quite a hard feature to achieve, as Strava's magic ordering dishes them out to the page in such a messy way (chronologically speaking) that it would be tough to perfectly apply chronological sorting retroactively?

Sync: delete of activity must cause invalidation of local-proc manifests

Currently if a user deletes an activity (because it was deleted from strava, or otherwise) it will delete the activity, stream and peaks data manually, but this is really an overly entrenched impl. We shouldn't have to know about the local processors data stores to delete activities. Worse, processors that are affected by rolling averages like ATL and CTL will not recompute the affected activity range because they are never notified of the affected activity.

Requirements:

  1. Activity deletion needs to be first class in the sync processor code.
  2. Processors should be able to detect that their invocation is either due to, or affected by a deleted activity.
  3. Pass a stub or ticket to the processors for activities that are being deleted (or where deleted) so they can perform their own evaluation of side effects, if any.

Coments problem.

Does not display "Event Discussion"
In both chrome and firefox.
Mentioning in comments using @ did not work

Allow manual entry of smoothing window size

The new smoothing feature is awesome but it's really hard (or impossible?) to get some specific smoothing window sizes. E.g. about 5 or 6 seconds is the sweet spot I'm looking for, but the slider seems to only allow certain values: 0, 2, 4, 7, 9, 12, ... s.

It would be great to be able to click the window size value and manually enter a value (e.g. 5 s); alternatively, allowing more values at the low end with the current slider would work for me as well (e.g. any integer value of seconds up to 15, then 5 second jumps after that).

Category estimations wildly inaccurate

Was scrolling through the rides uploaded by the guys who raced Strade Bianche today and noticed that Wout van Aert's winning effort was ranked as a 'Cat 2' and Alex Dowsett's (with power data and not using Strava's guesstimation) effort as a 'cat 4'. Both these category estimates don't feel right ;)
unknown 1

support swims

Context from reddit friendly...

so here are a few of my swims

https://www.strava.com/activities/3057093769 https://www.strava.com/activities/3017024020

my strokes/lap are recorded and sent to strava but i don't know if it is displayed anywhere

useful charts would * pace vs distance * hr vs distance (I guess, I donj't use the HR data but I have some sporadically) * cadence vs distance.. afaik I don't see this on strava but I know it's in my raw uploaded data

On one of those swims you will see I uploaded an image from my apple atch, it shows auto sets that I swam, and then average pace for the (minutes/100yd) as well as strokes (strokes/100yd). cadence (strokes per minute) is a function of the two, which is not displayed, but can be calculated given all the same data.

my particlar method for upload is to use native apple watc health app, then I have to use a third party app called 'run gap' which, according to rungap, uploads a .fit file to strava.

anyway, yea.. any graphs for pace or cadence would be useful. also the move time/rest time is hepful, as we rest at the walls between sets in fixed time periods (maybe do 100 then rest 15 seconds, etc..)

this shows up in plots of raw data more often than not. again, in the attached image to one of those workouts, it's shown on the apple watch breakdown which also breaks down the sets, as well as rest time per set.

Virtual rides are not hidden

Despite enabling the checkbox for 'Hide virtual activities (e.g. Zwift)', virtual rides of fellow cyclists are still polluting my Strava feed. Their rides are marked as virtual by Strava. Any idea what causes these rides still to appear?

FTP displayed on run segments is Cycling FTP

The display of NP / IF / TSS / FTP / Weight uses the cycling FTP (for the orange, adjustable display) even in run segments.

Changing the FTP there also changes the cycling FTP.

They should probably either not be displayed or split up between running/cycling.

Trigger sync when visiting performance page

We trigger a sync if we detect a new activity on the analysis page, but it would also be nice to check the last sync time in the performance page as well. No reason we couldn't reduce sync latency when we know the user is interacting.

We could probably relax the default resync timeout as well if this is implemented well enough. As the minor resyncs should be quick and lightweight.

Req 1: If the sync is triggered it needs to redraw the affected areas of the page. This should be done in such a way that it detects any sync updates in the background, not just ones triggered by the user interface itself. I.e. cases where a long running sync is active and we should be updating graphs with more inclusive datasets.

Incorrect Normalized Power, TSS, and Intensity calculated for a ride.

First of all, thank you for this plugin, it's super awesome! I use it daily and it's super useful.

Here is a ride that for some reason is getting it's Normalized Power, and thus Intensity, and TSS calculated incorrectly. https://www.strava.com/activities/492879155

The "correct" Normalized Power is 285, however Strava Sauce is calulating it as 260. This is the first time I've ever seen it get calculated incorrectly, and I've used it daily for a couple months now.

Here is a spreadsheet with the raw data for this ride, and you can see where I calculate the Normalized Power (with the formula from Training and Racing with a Power Meter) and get 285.
newman_hauser.xlsx

Also, here is the .gpx file exported from Strava (in a zip, since GitHub doesn't like .gpx), in case it helps you diagnose the problem better.
Newman and Hauser loop w- Craig, Luther, Jay and Edwin.zip

HR Zones are historicalish

Strangely HR zones are tied to activities and they are FOR-EV-AR. Updating your account settings with new zones only affects new activities. You can never change HR zones from the past. Well this is bad because if you accidentally have incorrect data in there you can't fix it in strava land (I just realized my zones were wrong for some unknown period of time).

We can improve this for Sauce users by importing and then overriding the HR zones based on our own HRZonesHistory data like FTP and weight.

For athletes we sync, we should also find a way to override the hr zones being used in an activity, at least for our own hr based calcs like tTSS.

In short,

  • Make hrzones historical.
  • Modify the HR zones processor to check the HR zones of activities on a periodic scale of some sort. Ie. Check one activity for every week/month to see if the zones have updated. This is for initial import only as we'll want to make our history data authoritative.

Show `min` for W'bal in analysis label

The max value is kinda meaningless, the min value is the most interesting datapoint in this case as it "drains" to a min value you want to know about.

NP only shows on full activity and not when only a portion is selected

In a ride analysis, the normalised power for the whole ride is shown as such:
image

However, if you select only a portion of the ride the np value disappears.

This could potentially be quite a quick fix, so I'm submitting an issue. If it's rather complex I am happy to take a look at your code and see if I can implement.

It's a ripper extension, thanks so much,

Tom

perf page reimport button on activity breaks sync button

We partially fixed this before but actually the sync button is not showing the sync state properly now. When you reimport the pageView is rerendered and a sync is started. The pageview is fine but the sync button is now showing the sync as being active.

We might actually be able to get away from using pageView.render() in this case since we now detect sync progress with #50

Exported TCX no longer compatible with Golden Cheetah

My rides automatically upload to Strava, and I use the 'Export TCX' feature from Sauce so I can then import them into Golden Cheetah. Prior to version 7.0.0 this seemed to work fine.

However, it seems like something about the exported TCX file makes it no longer compatible with Golden Cheetah. Upon import it says the ride has a duration of 1 second and a distance of 0. The TCX filesize looks right, and the TCX file appears to open fine in GPXSee, so perhaps this is an issue with GC, though it used to work fine.

If I go to the Analysis tab the TCX from there also doesn't work. The GPX export does work though, but it seems to lose cadence data.

Slightly off topic, but both the TCX and GPX files exported from Sauce lack lap data. I don't know about GPX, but I know TCX is capable of storing this.

Category Rank Not Working Properly

I've noticed just recently that the category rank (Ie: Cat 1, 2, 3, etc) seems to be a bit broken. The w/kg doesn't line up with the graph within Sauce that shows the where you measure up based on w/kg. It used to be correct but now it is off on all my activities. The picture I attached below is a ride I did the other day. For my 1 hour power I did 2.7 w/kg which would roughly be cat4/5 but Sauce is saying that it's actually Cat 3 which isn't correct.

Screen Shot 2021-04-19 at 10 34 27 AM

Use accurate weight

Strava stores weight with two digits precision e.g. 74.91, can this weight be presented and used to W/kg calculations?

Peak rank graph

Implement a peak rank graph for an activity and include past ranks when athlete is synced.

X axis: time period or distance
y axis: best rank for that period/distance.

Power dropouts in Critical Power calculations, but not in ride analysis

Today's ride on Strava has some really strange behavior going on, specifically the numbers used in the critical power calculations have power dropouts, that aren't actually in the real data, thus causing the number to be quite skewed.

image

Strava URL: http://www.strava.com/activities/498225031/overview

Raw Data in CSV format, from Cyclemeter: http://share.abvio.com/e950412ad87163a9/Cyclemeter-Cycle-20160220-1304.csv

Ride Data in FIT format, from Cyclemeter: http://share.abvio.com/e950412ad87163a9/Cyclemeter-Cycle-20160220-1304.fit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.