Skip to content

Instantly share code, notes, and snippets.

@jorgeuriarte
Last active January 16, 2017 12:54
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 jorgeuriarte/b824269b444519bbc741fb45f5c32d00 to your computer and use it in GitHub Desktop.
Save jorgeuriarte/b824269b444519bbc741fb45f5c32d00 to your computer and use it in GitHub Desktop.
def profileInfo(username) {
final String TOK1 = 'window._sharedData = '
final String TOK2 = ';</script>'
def insta = "https://instagram.com/${username}".toURL().text
def text = insta.split(TOK1)[1].split(TOK2)[0]
def json = new groovy.json.JsonSlurper().parseText(text)
[username: username,
followers: json.entry_data.ProfilePage[0].user.followed_by.count,
media: json.entry_data.ProfilePage[0].user.media.nodes.collect( { item -> item.subMap(['code', 'date', 'caption', 'likes', 'comments']) } )
]
}
def mediaInfo(code) {
final String TOK1 = 'window._sharedData = '
final String TOK2 = ';</script>'
def insta = "https://instagram.com/p/${code}".toURL().text
def text = insta.split(TOK1)[1].split(TOK2)[0]
def json = new groovy.json.JsonSlurper().parseText(text)
def media = json.entry_data.PostPage[0].media
media.subMap(['code', 'caption', 'display_src', 'comments', 'likes'])
}
def findPost(username, cadena, since=null) {
def media = profileInfo(username).media
media.findAll { it-> it.date > since && it.caption?.toUpperCase()?.contains(cadena.toUpperCase()) }
}
println findPost('jorge.uriarte.aretxaga', 'marmita')
println mediaInfo('BOsm0AlAcPL')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment