Last active 1471468053

instagram-cloudbot.py Raw
1from util import hook,http,web
2from json import loads
3from urllib2 import HTTPError
4
5oldplugin = """@hook.regex(r'instagram.com/p/(.+?)/')
6def ig_regex(match, bot=None):
7 "Returns info for instagram urls "
8 token = bot.config.get("api_keys", {}).get("instagram", None)
9 try:
10 data = http.get_json("https://api.instagram.com/v1/media/shortcode/{}?access_token={}".format(match.group(1), token))["data"]
11 return u"{caption[from][full_name]}: \"{caption[text]}\" ({likes[count]} likes)".format(**dict(emoji=u"\u1F5BC" if data["type"] == "image" else u"\u1F4FC", **data))
12 except (ValueError, HTTPError, KeyError) as e:
13 raise
14"""
15
16@hook.regex(r'instagram.com/p/(.+?)/')
17def ig_regex(match):
18 "Now with more scraping because of stupid api use cases"
19 page = http.get("https://instagram.com/p/{}/".format(match.group(1)), user_agent=http.ua_chrome)
20 data = loads(page.split('<script type="text/javascript">window._sharedData = ')[1].split(";</script>")[0])["entry_data"]["PostPage"][0]["media"]
21 return u'{owner[full_name]} ({owner[username]}): "{caption}" ({likes[count]} likes)'.format(**data)