Just some lazy script I wrote based on html that shows number of posts, number of followers, number of accounts following and number of likes on last photo that was uploaded. It also shows this last photo. I’m pretty sure there is a better way of doing this but I’m just a beginner with JS so I’m still playing around.
// Gets page url
let url = "https://www.instagram.com/nkuutz/"
let req = new Request(url)
let html = await req.loadString()
// Starts table
let table = new UITable()
// Gets posts count
let postsStart = html.indexOf('"edge_owner_to_timeline_media":{"count":')
let postsEnd = html.indexOf(',"page_info":',postsStart+1)
let posts = html.substring(postsStart+40,postsEnd)
// Gets follower count
let followersStart = html.indexOf('"edge_followed_by":{"count":')
let followersEnd = html.indexOf('},"followed_by_viewer"',followersStart+1)
let followers = html.substring(followersStart+28,followersEnd)
// Gets following count
let followingStart = html.indexOf('"edge_follow":{"count":')
let followingEnd = html.indexOf('},"follows_viewer":',followingStart+1)
let following = html.substring(followingStart+23,followingEnd)
// Gets last post image
let imageStart = html.indexOf('"display_url":"')
let imageEnd = html.indexOf('","edge_liked_by":',imageStart+1)
let image = html.substring(imageStart+15,imageEnd)
// Gets last post likes
let likesStart = html.indexOf('"edge_liked_by":{"count":')
let likesEnd = html.indexOf('},"edge_media_preview_like"',likesStart+1)
let likes = html.substring(likesStart+25,likesEnd)
styleHTML ='<style>img {display: block;margin-left: auto;margin-right: auto;} td {font-size:55px; text-align:center; font-family:Helvetica; font-weight:300; } th {font-size:30px; font-family:Helvetica; font-weight:500}</style>'
statsHTML ='<table id="statsTable" style="width:75%" align="center"><tr><th>Posts</th><th>Followers</th><th>Following</th><th>Likes</th></tr><tr><td>'+posts+'</td><td>'+followers+'</td><td>'+following+'</td><td>'+likes+'</td></tr></table>'
imageHTML = '<img src="'+image+'" style="width:75%;" vspace="10"/>'
joinedHTML = styleHTML+statsHTML+imageHTML
if (config.runsWithSiri) {
Speech.speak("Your last photo got "+likes+" likes on Instagram.")
}
WebView.loadHTML(joinedHTML,null,new Size(100,450))
Edit: added some space between stats and image.
Edit 2: changed .load() to .loadString()