Skip to content

adamroyle/wodify-shortcuts

Repository files navigation

Sign into CrossFit (Wodify) using Siri

"Hands? Where we're going, we don't need hands!" – Adam Royle, allegedly

siri.mp4

Wait!? How does that work?

It uses Shortcuts to imitate the actions you'd normally take on Wodify's mobile app. You can trigger these shortcuts with your voice, your phone's location, or even your finger if you prefer!

OK, that's very cool, will they work for me?

Of course! Tap these icons to save them to your Shortcuts app.

Sign me in to CrossFit     What's today's workout?     What's tomorrow's workout?

On setup you will be prompted to enter your Wodify login details (email and password) and some optional configuration.

They will now appear in your list of shortcuts and can then be added to your homescreen if you like.

When you first run each shortcut, you will need to allow connections to adam.royle.dev.

Privacy Considerations

Unfortunately Wodify doesn't let us take actions on your behalf without knowing your login details.

However, we take security and privacy seriously and we've taken these steps to protect your personal information.

  1. All data is encrypted using SSL while transmitted.
  2. No personal information or security tokens are stored or logged in our system.
  3. A truncated hash of your email is logged on each request (it looks something like e42dc77f). This allows tracking the number of unique users without saving your email address.

Disclaimer: Use these shortcuts at your own risk. No responsibility will be taken if your Wodify account is compromised or login details exposed.

Questions (and answers!)

Sign in when you arrive at the gym (using Location Services)

You can create a personal automation that will sign you into the next class when you arrive at the gym. A story in pictures!

Got a question?

Start a discussion or send an email.

It's not working!

If you get an error, try again! Sometimes Wodify is slow to respond. If it's still broken the following day, open an issue or send an email.

Thank you, can I buy you a coffee?

Why certainly! Buy me a coffee online or at the gym if you know me in person.


API documentation

For those who want to customise their shortcuts for a specific reason.

Get the workout for a specific date

POST https://adam.royle.dev/wodify/workout

Params

Name Required
email Yes The email used to login to Wodify.
password Yes The password used to login to Wodify.
date Yes The date in ISO 8601 format.
include_warmup No Set to "1" to include warmup sections. Default is "0".
include_extras No Set to "1" to include extras sections. Default is "0".
include_scaled No Set to "1" to include scaled workouts. Default is "0".

Example

curl https://adam.royle.dev/wodify/workout \
  --data [email protected] \
  --data password=YourPassword1 \
  --data date=2022-09-27 \
  --data include_warmup=1 \
  --data include_extras=1

Get all workouts for a date range

POST https://adam.royle.dev/wodify/all-workouts

Params

Name Required
email Yes The email used to login to Wodify.
password Yes The password used to login to Wodify.
dateStart Yes The date in ISO 8601 format.
dateEnd Yes The date in ISO 8601 format. (inclusive)

Example

curl https://adam.royle.dev/wodify/all-workouts \
  --data [email protected] \
  --data password=YourPassword1 \
  --data dateStart=2022-09-27 \
  --data dateEnd=2022-10-01

Sign in to the next available class on a specific date

POST https://adam.royle.dev/wodify/signin

Params

Name Required
email Yes The email used to login to Wodify.
password Yes The password used to login to Wodify.
date Yes The date in ISO 8601 format.
include_class No Exclude classes without a matching title. Case-insensitive. Allows partial matches. Multiple supported with duplicate param or separated by a newline.
exclude_class No Exclude classes with a matching title. Case-insensitive. Allows partial matches. Multiple supported with duplicate param or separated by a newline.

Example

curl https://adam.royle.dev/wodify/signin \
  --data [email protected] \
  --data password=YourPassword1 \
  --data date=2022-09-27 \
  --data include_class=crossfit

For Developers

Running scripts locally

As this projects uses TypeScript and ESM, you need to use tsm instead of node directly. It will generate some warnings but these can be ignored.

tsm scripts/login.ts [email protected] YourPassword1 2022-08-23

Deploy to your own AWS account

This project uses the serverless framework to deploy AWS Lambda functions.

Assuming you have installed awscli and are logged in, you should be able to deploy these functions to your AWS account.

git clone https://github.com/adamroyle/wodify-shortcuts
cd wodify-shortcuts
yarn
yarn sls deploy

About

Ask Siri to sign you into CrossFit. Look ma, no hands!

Resources

Stars

Watchers

Forks