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)
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'])
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'])
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"])