Ejemplo n.º 1
0
def main(): ## called via instagram_grabber.py
    try:
        response = requests.get("https://api.instagram.com/v1/tags/%s/media/recent?client_id=%s" % (settings['hashtag'], settings['client_id']))
        photos = response.json()['data']
    except Exception as e:
        log.error(log.exc(e))
    for photo in photos:
        image_id = None
        try:
            username = photo['user']['username']
            if username not in ACCOUNTS:
                log.info("Skipping photo by %s" % username)
                continue
            data = {}
            data['Url'] = photo['link']
            dup = db.features.find_one({'properties.FeatureType': 'instagram', 'properties.Url': data['Url']})
            if dup is not None:
                log.info("--> skipping duplicate")
                continue
            data['Member'] = MEMBERS[ACCOUNTS.index(username)]
            data['Caption'] = photo['caption']['text']               
            data['Tags'] = photo['tags']
            data['Filter'] = photo['filter']
            data['t_utc'] = int(photo['created_time'])
            data['InstagramPhotoURL'] = photo['images']['standard_resolution']['url']
            try:
                path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "uploads", "%s_%s.jpg" % (util.timestamp(), data['Url'].split("/")[-2])))
                net.grab(data['InstagramPhotoURL'], path)
                image_data = process_image(path, data['Member'], data['t_utc'])
                if image_data is None:
                    log.info("--> no image data")
                else:
                    success, image_id = ingest_data("image", image_data.copy())   # make a second request for the image featuretype
                    if not success:
                        log.error(image_id)
                    image_data['ImageUrl'] = image_data['Url']
                    del image_data['Url']
                    data.update(image_data)
            except Exception as e:
                log.error(log.exc(e))
        except Exception as e:
            log.error(log.exc(e))
            return
        success, post_id = ingest_data("instagram", data)
        if not success:
            log.error("--> failed: %s" % post_id)
        else:
            log.info("--> %s" % post_id)
        try:
            db.features.update({'_id': image_id}, {'$set': {'properties.InstagramID': post_id}})
        except Exception as e:
            log.error(log.exc(e))
Ejemplo n.º 2
0
def get_map(city, bounds):

    CLOUDMADE_KEY = "9e44428bdd434d7697b10be5f975b849"
    STYLE_ID = 63595
    ZOOM = 12

    params = {  #'center': "%s,%s" % (city.centroid.lat, city.centroid.lon),
                #'zoom': ZOOM,    
                'bbox': "%s,%s,%s,%s" % (bounds[0].lat, bounds[0].lon, bounds[1].lat, bounds[1].lon),
                'size': "%sx%s" % (SIZE[0], SIZE[1]),
                'format': "png",
                'styleid': STYLE_ID,
                'marker': "size:big|url:%s|opacity:1.0|%s,%s|%s,%s" % ("http://brianhouse.net/download/quotidio_marker.png", bounds[0].lat, bounds[0].lon, bounds[1].lat, bounds[1].lon),
                }
    urlstring = "http://staticmaps.cloudmade.com/%s/staticmap" % CLOUDMADE_KEY
        
    print
    urlstring = "%s?%s" % (urlstring, net.urlencode(params))
    print urlstring
    
    try:    
        net.grab(urlstring, "screenshots/%s_geograph_%s,%s_map.png" % (int(time.time()), city.centroid.lat, city.centroid.lon))
    except Exception as e:
        log.error(log.exc(e))
Ejemplo n.º 3
0
STYLE_ID = 63595
WIDTH = 640
HEIGHT = 480
ZOOM = 12

cities = [  (39.7119386606,-104.950620722),
            (40.7241002316,-73.9162034413),
            (41.7252473831,-74.0063800812),
            (44.9335235581,-93.219538549),
            (38.9482655525,-77.0590810776)
            ]


for city in cities:
        
    params = {  'center': "%s,%s" % (city[0], city[1]),
                'zoom': ZOOM,    
                'size': "%sx%s" % (WIDTH, HEIGHT),
                'format': "png",
                'styleid': STYLE_ID
                # 'marker': "size:big|url:%s|opacity:1.0|%s, %s" % ("http://brianhouse.net/download/marker.png", city[0], city[1]),
                }
    urlstring = "http://staticmaps.cloudmade.com/%s/staticmap" % CLOUDMADE_KEY
        
    urlstring = "%s?%s" % (urlstring, net.urlencode(params))
    print urlstring
        
    net.grab(urlstring, "screenshots/maps/map_%s,%s.png" % (city[0], city[1]))
    print "%s,%s" % (city[0], city[1])

Ejemplo n.º 4
0
TODO: make bucket


"""

import time, os
from housepy import config, log, net, s3

ENDPOINT = "http://appservices.citibikenyc.com/data2/stations.php"

filename = "%s.txt" % str(time.time()).split('.')[0]

log.info("----- grab attempt")

try:
    net.grab(ENDPOINT, filename)
except Exception as e:
    log.error(log.exc(e))
    exit()

log.info("got %s, pushing..." % filename)    

try:
    s3.upload(filename)
except Exception as e:
    log.error(log.exc(e))
    exit()

log.info("upload complete")

os.remove(filename)