JSFiddle - React, Tailwind, and code Playground
by Vladimir
JavaScript
var user = _sharedData.entry_data.ProfilePage[0].graphql.user;
var oldestActivity = 0;
var sumLikes = 0;
var sumComments = 0;
var followers = user.edge_followed_by.count;
var photos = user.edge_owner_to_timeline_media.edges;
var output = 'Followers: ' + followers + '\n';
output += 'Checked posts: ' + photos.length + '\n';
var middleData = '';
for(var i =0; i < photos.length; i++) {
var postLikes = +photos[i].node.edge_liked_by.count;
sumLikes += postLikes;
var postComments = +photos[i].node.edge_media_to_comment.count;
sumComments += postComments;
var tmestamp = +photos[i].node.taken_at_timestamp;
var diff = ((new Date()).valueOf()/1000 - tmestamp)/86400;
oldestActivity = Math.ceil(diff);
if(diff < 1) {
diff = Math.round(diff * 24) + 'h ';
} else {
diff = diff.toFixed(2) + 'd ';
}
middleData += 'Post #' + (i+1) + ' ('+diff+' ago) -> Likes: ' + postLikes + ', comments: ' + postComments + ', total: ' + (postLikes + postComments) + '\n';
}
var activityMonth = Math.round(30 * photos.length/oldestActivity);
output += 'Author activity: ' + photos.length + ' posts per ' + oldestActivity + ' days or AVG ' + activityMonth + ' posts per month\n' +
'________________\n' + middleData + '________________\n';
var totalReactions = sumLikes + sumComments;
var avgReactions = totalReactions/photos.length;
var engagementRate = 100*avgReactions/followers;
output += 'Total reactions: ' + totalReactions + '; reactions per post: ' + avgReactions.toFixed(3) + '\n';
output += 'Engagement rate: ' + engagementRate.toFixed(2) + '%';
alert(output);