Skip to content

Instantly share code, notes, and snippets.

@jasonrastovski
Last active January 29, 2021 01:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasonrastovski/b77a77a34e846fea0ea6c66e5e922479 to your computer and use it in GitHub Desktop.
Save jasonrastovski/b77a77a34e846fea0ea6c66e5e922479 to your computer and use it in GitHub Desktop.
function extractData() {
console.log("starting up...");
if (window.location.hostname !== "www.myfitnesspal.com") {
alert(
"You be logged into www.myfitnesspal.com and have the page open to export your information"
);
return;
}
if ($("#csv").length == 0) {
if ($("#main").length == 1){
$("#main").prepend("<p id='csv'/>");
}
else {
$(".contents").prepend("<p id='csv'/>");
}
}
console.log("running...");
var csv = $("#csv");
csv.html("Loading weight and calories...");
csv.show("highlight", { color: "#f00" }, "slow");
var calorieResponse = $.get(
"https://www.myfitnesspal.com/reports/results/nutrition/calories/31.json"
);
var proteinResponse = $.get(
"https://www.myfitnesspal.com/reports/results/nutrition/protein/31.json"
);
var fiberResponse = $.get(
"https://www.myfitnesspal.com/reports/results/nutrition/fiber/31.json"
);
$.when(calorieResponse, proteinResponse, fiberResponse).done(function () {
updateCsv(
csv,
JSON.parse(calorieResponse.responseText),
JSON.parse(proteinResponse.responseText),
JSON.parse(fiberResponse.responseText)
);
});
}
function updateCsv(csv, calorieResponse, proteinResponse, fiberResponse) {
console.log("creating csv...");
var output = "Date,Calories,Protein,Fiber\n";
var caloriesArray = calorieResponse.data;
var proteinArray = proteinResponse.data;
var fiberArray = fiberResponse.data;
var currentYear = new Date().getFullYear() - 1;
for (var i = 0; i < caloriesArray.length; i++) {
var c = caloriesArray[i];
var p = proteinArray[i];
var f = fiberArray[i];
if (c.date == "1/01") currentYear++;
output +=
currentYear +
"/" +
c.date +
"," +
c.total +
"," +
p.total +
"," +
f.total +
"\n";
}
csv.html(
'Paste this into your spreadsheet: <textarea id="csvTextArea" cols="50" rows="50">' +
output +
"</textarea>"
);
csv.show("highlight", { color: "#f00" }, "slow");
$("#csvTextArea").click(function () {
$(this).select();
});
console.log("all done...");
}
extractData();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment