Read the statement by Michael Teeuw here.
MMM-Strava
-
@ianperrin Here is the log after installing --production.
0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', '--production' ] 2 info using npm@5.6.0 3 info using node@v9.11.2 4 verbose npm-session 72bb8575f86ed6c8 5 silly install runPreinstallTopLevelLifecycles 6 silly preinstall MMM-Strava@2.0.0-BETA 7 info lifecycle MMM-Strava@2.0.0-BETA~preinstall: MMM-Strava@2.0.0-BETA 8 silly install loadCurrentTree 9 silly install readLocalPackageData 10 silly install loadIdealTree 11 silly install cloneCurrentTreeToIdealTree 12 silly install loadShrinkwrap 13 silly saveTree MMM-Strava@2.0.0-BETA 14 verbose stack SyntaxError: Unexpected token < in JSON at position 9216 14 verbose stack at JSON.parse (<anonymous>) 14 verbose stack at module.exports (/usr/lib/node_modules/npm/lib/utils/parse-json.js:3:15) 14 verbose stack at BB.join (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:31:20) 14 verbose stack at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23) 14 verbose stack at Holder$3._callFunction (eval at generateHolderClass (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:92:16), <anonymous>:14:44) 14 verbose stack at Holder$3.checkFulfillment (eval at generateHolderClass (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:92:16), <anonymous>:29:30) 14 verbose stack at Promise.eval (eval at thenCallback (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/join.js:14:16), <anonymous>:6:20) 14 verbose stack at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:566:21) 14 verbose stack at Promise._settlePromise0 (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10) 14 verbose stack at Promise._settlePromises (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18) 14 verbose stack at Promise._fulfill (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18) 14 verbose stack at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:582:21) 14 verbose stack at Promise._settlePromise0 (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10) 14 verbose stack at Promise._settlePromises (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18) 14 verbose stack at Promise._fulfill (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18) 14 verbose stack at /usr/lib/node_modules/npm/node_modules/bluebird/js/release/nodeback.js:42:21 15 verbose cwd /home/pi/MagicMirror/modules/mmm-strava 16 verbose Linux 4.9.80-v7+ 17 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "--production" 18 verbose node v9.11.2 19 verbose npm v5.6.0 20 error Unexpected token < in JSON at position 9216 21 verbose exit [ 1, true ]
-
@hattlegr Note the error on line 20 related to a token which could be a possible reason MM does not remember the authorization.
-
@hattlegr it sounds like you’ve got at least a couple of issues here. One relating to the install of the module and another related to the authorisation process. Let’s take them one at a time.
What command are you running to install the module and which directory are you in at the time?
-
@ianperrin I went right back to the beginning and started the installation again to ensure I save each step.
During the process I picked up on an error I did not follow up on. After installing --production I had to run ‘npm audit fix’After running this I tried the authentication again. This time the process did add the token.js file to the MMM=Strava module.
I believe it is working now. I have logged off and rebooted to confirm and the Strava module was working correctly.
pi@raspberrypi:~/MagicMirror/modules/MMM-Strava $ git checkout develop && git pull Branch develop set up to track remote branch develop from origin. Switched to a new branch 'develop' Already up-to-date. pi@raspberrypi:~/MagicMirror/modules/MMM-Strava $ npm install --production npm WARN conflict A git conflict was detected in package-lock.json. Attempting to auto-resolve. npm WARN conflict To make this happen automatically on git rebase/merge, consider using the npm-merge-driver: npm WARN conflict $ npx npm-merge-driver install -g npm WARN deprecated nomnom@1.8.1: Package no longer supported. Contact support@npmjs.com for more info. added 55 packages from 67 contributors and audited 3075 packages in 32.396s found 1 moderate severity vulnerability run `npm audit fix` to fix them, or `npm audit` for details // Was important to run this command to make authentication process work correctly pi@raspberrypi:~/MagicMirror/modules/MMM-Strava $ npm audit fix npm WARN deprecated nomnom@1.8.1: Package no longer supported. Contact support@npmjs.com for more info. added 537 packages from 583 contributors in 92.726s fixed 1 of 1 vulnerability in 3075 scanned packages pi@raspberrypi:~/MagicMirror/modules/MMM-Strava $ npm audit === npm audit security report === found 0 vulnerabilities in 3075 scanned packages pi@raspberrypi:~/MagicMirror/modules/MMM-Strava $ // Config { module: "MMM-Strava", position: "center", config: { client_id: "3---6", client_secret: "f22b--------------------0d9f7", mode: "chart", auto_rotate: "true", units: "imperial" }
-
@ianperrin said in MMM-Strava:
@zerodegree79 , @Val07300, @ctatos (and others I may have missed).
A new (beta) version of the module with support for Strava’s new authentication flow is available.
Just wanted to report that the module is working fine until now using the development branch.
What I would like to implement is some kind of a record panel showing the fastest 1k, 5k, 10k for running 20k, 40k, for cycling etc.
I can’t see this in the API. Does anyone know a way to extract these values? -
When i use the new development branch the api for profile switcher isn’t working anymore. (the notification from MMM-Remote to be exact)
-
Hi all, Hi @ianperrin
I love hunting for segments and for that I would like to include some kind of “crown board” calculating golden, silver and bronze crowns for first, second and third places in segments.
At a later stage I can imagine including more information, e.g. some kind of notification if you lose a first pace to someone else.
However, it’s not easy to get these numbers via the API.So, to summarise: I need the count of podium places for segments in running and cycling. These can change over time! So need to be checked and counted regularly.
For these I need all segments the athlete has competed in.
My approach would be:
Go through ALL activities, pick segment ID’s, combine these and search through each segment leaderboard for the athlete’s name.
However, this would be a LOT of API calls. And these are limited to 600 in 15 min. With a few hundred activities these can be exceed easily.
So the call would somehow need to be stretched and used not with every other call.Any other ideas or input for this idea?
Thanks for every input, as always!
-
Hi all, hi @ianperrin ,it’s me again.
I’m coding a lot with this module trying to build a bigger version of it, and stumbled upon some odd thing. I have included some console logs and found that for some reason the socket notification “SET_CONFIG” is received twice when the module starts, leading to two api calls directly after another. I can only see one send in the browser console from MMM-Strava.js, but two notification receives in the npm logs. Can someone duplicate our even explain this odd behavior?
Thanks! -
Don’t forget that Strava is switching to using refresh tokens from 15th October 2019 and won’t be supporting forever tokens anymore. I started writing a little Strava api library in js, currently with only 2 endpoints and going to add up more ofc.
-
@dnovacik Well this module uses the strava-v3 nodejs library by unboundev.
github link.
I guess that is where the new token procedure should be implemented isn’t it?
Care to take a look?