Пример #1
0
def interlink_image(request):
    image_json = json.loads(request.POST.get('image_json'))
    print image_json['id']
    print image_json['name']
    print image_json['trackpoint']
    image = Image.get_image_by_uuid(image_json['uuid'])
    try:
        trackpoint = Trackpoint.get_trackpoint_by_uuid(image_json['trackpoint']['uuid'])
    except:
        trackpoint = None
    location = None
    if trackpoint:
        print trackpoint
        print image
        image.trackpoint = trackpoint.id
    #Get location for image.trackpoint
        location = Location(name = None, trackpoint_id = None, country_id = None)
        location.name = flickrtools.findplace(image.trackpoint_img_ref.latitude, image.trackpoint_img_ref.longitude, 11, image.author_img_ref)
        location.trackpoint_id = image.trackpoint_img_ref.id,
        location.country_id = flickrtools.get_country_by_lat_lon(image.trackpoint_img_ref.latitude, image.trackpoint_img_ref.longitude, image.author_img_ref).iso_numcode
    if not image.image_flickr_ref:
        print '\n\n\n\n\n\n\n'+str(image.id)
        print '\n\n\n\n\n\n\n'
        farm,server,photoid,secret,originalsecret,originalformat = flickrtools.uploadimage(image, image.author_img_ref, '')
        flickrimage = FlickrImage(image = image.id, farm = farm, server = server, photoid = photoid, secret = secret)
        DBSession.add(flickrimage)
    DBSession.add(image)
    if location: #TODO(Ugly?)
        DBSession.add(location)
    

    return Response(json.dumps({'link_status':'linked', 'item_uuid': image.uuid}))
Пример #2
0
def parse_trackpoints(trackpoints, gpx_ns):
    for trackpoint in trackpoints:
        lat = trackpoint.attrib['lat']
        lon = trackpoint.attrib['lon']
        elevation = trackpoint.find('{%s}ele' % gpx_ns).text
        time_str = trackpoint.find('{%s}time' % gpx_ns).text.replace('T',
                                                                     ' ')[:-1]
        time = datetime.datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
        trackpoint = Trackpoint(track_id=None,
                                latitude=lat,
                                longitude=lon,
                                altitude=None,
                                velocity=None,
                                temperature=None,
                                direction=None,
                                pressure=None,
                                timestamp=time)
        DBSession.add(trackpoint)
        DBSession.flush()
Пример #3
0
def tracksync(request):
    sync_status='sync_error'
    print request.POST.keys()
    track_json = json.loads(request.POST.get('track'))
    print track_json['distance']
    log_json = json.loads(request.POST.get('log_json'))
    print '\n'
    print track_json['author']

    author = Author.get_author(track_json['author'])


    track = Track.get_track_by_uuid(track_json['uuid']) #does track with this uuid(from json-info) already exist in our db
    if not track:
        print '\n\n\n'
        print 'Track not found by uuid %s!' %track_json['uuid']
        print '\n\n\n'
        track = Track(
                    reduced_trackpoints = json.loads(track_json['reduced_trackpoints']),
                    distance = track_json['distance'],
                    timespan = track_json['timespan'],
                    trackpoint_count = track_json['trackpoint_count'],
                    start_time = track_json['start_time'],
                    end_time = track_json['end_time'],
                    color = track_json['color'],
                    author = author.id,
                    etappe = None,
                    uuid = track_json['uuid']
                    )
        DBSession.add(track)
        DBSession.flush()
        for trackpoint_json in track_json['trackpoints']:
            trackpoint_in_db = Trackpoint.get_trackpoint_by_lat_lon_time(trackpoint_json['latitude'], \
                                        trackpoint_json['longitude'], trackpoint_json['timestamp'])
            if not trackpoint_in_db:
                print trackpoint_json
                trackpoint = Trackpoint(
                                    track_id = track.id,
                                    latitude = trackpoint_json['latitude'],
                                    longitude = trackpoint_json['longitude'],
                                    altitude = trackpoint_json['altitude'],
                                    velocity = trackpoint_json['velocity'],
                                    temperature = trackpoint_json['temperature'],
                                    direction = trackpoint_json['direction'],
                                    pressure = trackpoint_json['pressure'],
                                    timestamp = trackpoint_json['timestamp'],
                                    uuid = trackpoint_json['uuid']
                                    )
                DBSession.add(trackpoint)
                DBSession.flush()

        sync_status = 'is_synced'

    elif track:
        print 'was_synced'
        sync_status = 'was_synced'
    else:
        print 'sync_error'
        sync_status = 'sync_error'
    
    return Response(json.dumps({'log_id':log_json['id'], 'type':'track', 'item_uuid':track_json['uuid'], 'sync_status':sync_status}))