iOS widget powered by the Scriptable app that shows the current capacity of FitX Gyms
/** | |
* Script for scriptable to get the current capacity of FitX Gyms | |
*/ | |
let gymId = 19 | |
let param = args.widgetParameter | |
if (param != null && param.length > 0) { | |
gymId = param | |
} | |
const gymDetails = await fetchGymDetails(gymId) | |
const currentGymCapacity = gymDetails.workload.percentage | |
const gymName = gymDetails.name || 'Your FitX' | |
const widget = new ListWidget() | |
await createWidget() | |
if (!config.runsInWidget) { | |
await widget.presentSmall() | |
} | |
Script.setWidget(widget) | |
Script.complete() | |
//Create the widget | |
async function createWidget() { | |
const headlineText = widget.addText("🏋️ Capacity") | |
headlineText.font = Font.mediumRoundedSystemFont(19) | |
widget.addSpacer() | |
const widgetStack = widget.addStack() | |
widgetStack.layoutVertically() | |
widgetStack.bottomAlignContent() | |
const capacityText = widgetStack.addText(currentGymCapacity.toString() + "%") | |
capacityText.font = Font.mediumRoundedSystemFont(50) | |
if (currentGymCapacity < 20) { | |
capacityText.textColor = new Color("#33cc33") | |
} else if (currentGymCapacity < 30){ | |
capacityText.textColor = new Color("#ff9900") | |
}else{ | |
capacityText.textColor = new Color("#ff3300") | |
} | |
widgetStack.addSpacer(1) | |
const gymNameText = widgetStack.addText(gymName) | |
gymNameText.font = Font.regularSystemFont(12) | |
} | |
//Fetches the current capacity of the FitX gym | |
async function fetchGymDetails(id) { | |
const url = 'https://www.fitx.de/fitnessstudio/' + id + '/workload' | |
const req = new Request(url) | |
const result_json = await req.loadJSON() | |
return JSON.parse(result_json) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Fork of https://gist.github.com/masselmello/6d4f4c533b98b2550ee23a7a5e6c6cff
Made with help of @BitWire - Huge thanks
How to use: