def gather_locations(days):
    #print "GATHERDAYS"
    #print days
    res = {}
    for d in days.days:
        points = read_day_tracks(d.date)
        #print points
        if len(points):
            for s in d.entries:
                #print s.location
                a,b = s.start_gmt()
                if b==1:
                    a = a+60*24
                    cp = get_closest_points(points,well_formed_date(yesterday(d.date),a))
                elif b==2:
                    a = a-60*24
                    cp = get_closest_points(points,well_formed_date(tomorrow(d.date),a))
                else:
                    #print points
                    #print d.date, a
                    cp = get_closest_points(points,well_formed_date(d.date,a))
                if cp:
                    res[s.location] = res.get(s.location,[])+[cp]
                a,b = s.end_gmt()
                if b==1:
                    a = a+60*24
                    cp = get_closest_points(points,well_formed_date(yesterday(d.date),a))
                elif b==2:
                    a = a-60*24
                    cp = get_closest_points(points,well_formed_date(tomorrow(d.date),a))
                else:
                    cp = get_closest_points(points,well_formed_date(d.date,a))
                if cp:
                    res[s.location] = res.get(s.location,[])+[cp]
                from db_setup import insert_place_database
                try:

                    coords =  average_coords(res[s.location])
                    insert_place_database(s.location, coords)
                except KeyError:
                    insert_place_database(s.location, None)

    f=open("points.dat","w")
    cPickle.dump(days.days[-1].date,f)
    cPickle.dump(res,f)
    f.close()
    return res
def update_locations(days, last_data, last_date):
    #print days
    #print "Updating with latest date info..."
    res = last_data
    days.days.sort(lambda x,y: cmp(x.date,y.date))
    for d in days.days:
        #print "aqui", d.date
        #print "ali", last_date
        if datetime.datetime.strptime(d.date, '%Y_%m_%d')>datetime.datetime.strptime(last_date, '%Y_%m_%d'):
            #print d.date,
            points = read_day_tracks(d.date)
            if len(points):
                for s in d.entries:
                    #print s.location
                    a,b = s.start_gmt()
                    if b==1:
                        a = a+60*24
                        cp = get_closest_points(points,well_formed_date(yesterday(d.date),a))
                    elif b==2:
                        a = a-60*24
                        cp = get_closest_points(points,well_formed_date(tomorrow(d.date),a))
                    else:
                        cp = get_closest_points(points,well_formed_date(d.date,a))
                    if cp:
                        res[s.location] = res.get(s.location,[])+[cp]
                    a,b = s.end_gmt()
                    if b==1:
                        a = a+60*24
                        cp = get_closest_points(points,well_formed_date(yesterday(d.date),a))
                    elif b==2:
                        a = a-60*24
                        cp = get_closest_points(points,well_formed_date(tomorrow(d.date),a))
                    else:
                        cp = get_closest_points(points,well_formed_date(d.date,a))
                    if cp:
                        res[s.location] = res.get(s.location,[])+[cp]

                    from db_setup import insert_place_database
                    insert_place_database(s.location, average_coords(res[unicode(s.location)]))

    f=open("points.dat","w")
    cPickle.dump(days.days[-1].date,f)
    cPickle.dump(res,f)
    f.close()
    return res