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