def test_tuit_inside_jail(self):
        status_id = 431779534288199680
        poly = [(-77.019896,-12.17337), (-77.019171,-12.172693), (-77.018152,-12.173726), (-77.018903,-12.174392)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, True)

        status_id = 431779534288199680
        poly = [(-77.035468,-12.057237),(-77.034532,-12.05715),(-77.034435,-12.058),(-77.035369,-12.058097),(-77.035393,-12.05796),(-77.035393,-12.05796),(-77.035304,-12.057386),(-77.035449,-12.057381)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, False)

        status_id = 433371957300428801
        poly = [(-77.035468,-12.057237),(-77.034532,-12.05715),(-77.034435,-12.058),(-77.035369,-12.058097),(-77.035393,-12.05796),(-77.035393,-12.05796),(-77.035304,-12.057386),(-77.035449,-12.057381)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, True)
Example #2
0
def find_and_retuit():
    """
    For each jail, find tweets inside and retweet
    """
    import codecs
    import requests
    import config
    import os.path
    import dataset
    import lib
    import api
    
    oauth = api.get_oauth()
    
    db = dataset.connect("sqlite:///" + os.path.join(config.local_folder, "tuits.db"))
    
    f = codecs.open(os.path.join(config.local_folder, "carceles_limites.csv"))
    data = f.readlines()
    f.close()
    
    retuits = []
    for i in data:
        i = i.strip()
        if i.startswith("Carcel,"):
            continue
        else:
            i = i.split(",")
            penal = i[0]
    
            poly = []
            for j in i[1:]:
                j = j.split(" ")
                coord = (float(j[0]), float(j[1]))
                poly.append(coord)
    
            # get tweet ids
            res = db.query("select * from tuits where carcel='" + penal +"' and retuited='no'")
            for i in res:
                if lib.tuit_inside_jail(i['status_id'], poly) == True:
                    url = "https://api.twitter.com/1.1/statuses/retweet/"
                    url += str(i['status_id']) + ".json"
                    try:
                        r = requests.post(url=url, auth=oauth)
                        print "Retuited %i" % i['status_id']
                        retuits.append(i['status_id'])
                    except:
                        print "Error", r.text

    
    table = db['tuits']
    for i in retuits:
        data = dict(status_id=i, retuited="yes", in_jail="yes")
        print data
        table.update(data, ['status_id'])
Example #3
0
    def test_tuit_inside_jail(self):
        status_id = 431779534288199680
        poly = [(-77.019896, -12.17337), (-77.019171, -12.172693),
                (-77.018152, -12.173726), (-77.018903, -12.174392)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, True)

        status_id = 431779534288199680
        poly = [(-77.035468, -12.057237), (-77.034532, -12.05715),
                (-77.034435, -12.058), (-77.035369, -12.058097),
                (-77.035393, -12.05796), (-77.035393, -12.05796),
                (-77.035304, -12.057386), (-77.035449, -12.057381)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, False)

        status_id = 433371957300428801
        poly = [(-77.035468, -12.057237), (-77.034532, -12.05715),
                (-77.034435, -12.058), (-77.035369, -12.058097),
                (-77.035393, -12.05796), (-77.035393, -12.05796),
                (-77.035304, -12.057386), (-77.035449, -12.057381)]
        result = lib.tuit_inside_jail(status_id, poly)
        self.assertEqual(result, True)
    if i.startswith("Carcel,"):
        continue
    else:
        i = i.split(",")
        penal = i[0]

        poly = []
        for j in i[1:]:
            j = j.split(" ")
            coord = (float(j[0]), float(j[1]))
            poly.append(coord)

        # get tweet ids
        res = db.query("select * from tuits where carcel='" + penal +"' and retuited='no'")
        for i in res:
            if lib.tuit_inside_jail(i['status_id'], poly) == True:
                url = "https://api.twitter.com/1.1/statuses/retweet/"
                url += str(i['status_id']) + ".json"
                try:
                    r = requests.post(url=url, auth=oauth)
                    print "Retuited %i" % i['status_id']
                    retuits.append(i['status_id'])
                except:
                    print "Error", r.text

table = db['tuits']
for i in retuits:
    data = dict(status_id=i, retuited="yes")
    print data
    table.update(data, ['status_id'])
Example #5
0
        continue
    else:
        i = i.split(",")
        penal = i[0]

        poly = []
        for j in i[1:]:
            j = j.split(" ")
            coord = (float(j[0]), float(j[1]))
            poly.append(coord)

        # get tweet ids
        res = db.query("select * from tuits where carcel='" + penal +
                       "' and retuited='no'")
        for i in res:
            if lib.tuit_inside_jail(i['status_id'], poly) == True:
                url = "https://api.twitter.com/1.1/statuses/retweet/"
                url += str(i['status_id']) + ".json"
                try:
                    r = requests.post(url=url, auth=oauth)
                    print "Retuited %i" % i['status_id']
                    retuits.append(i['status_id'])
                except:
                    print "Error", r.text

table = db['tuits']
for i in retuits:
    data = dict(status_id=i, retuited="yes")
    print data
    table.update(data, ['status_id'])
    i = i.strip()
    if i.startswith("Carcel,"):
        continue
    else:
        i = i.split(",")
        penal = i[0]

        poly = []
        for j in i[1:]:
            j = j.split(" ")
            coord = (float(j[0]), float(j[1]))
            poly.append(coord)

        res = db.query("select * from tuits where carcel='" + penal + "'")
        table = db["tuits"]
        for i in res:
            if lib.tuit_inside_jail(i["status_id"], poly) == True:
                dic = {"id": i["id"], "in_jail": "yes"}
                tuits_to_update.append(dic)
            else:
                dic = {"id": i["id"], "in_jail": "no"}
                tuits_to_update.append(dic)


for i in tuits_to_update:
    j = {}
    j["in_jail"] = i["in_jail"]
    j["id"] = i["id"]
    print j
    table.upsert(j, ["id"])