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);