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