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}))
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()
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}))