def geocode(rawLocation): """ :rtype : Location """ url = "https://maps.googleapis.com/maps/api/geocode/json?address=%s" % rawLocation.replace(" ","+") response = urllib2.urlopen(url) geocode = json.load(response) #debug pprint.pprint(geocode) location = Location() location.status = geocode["status"].encode('utf_8').decode('utf_8') if location.status == "OK": location.address = geocode["results"][0]["formatted_address"].encode('utf_8').decode('utf_8') location.latlng = ndb.GeoPt(geocode["results"][0]["geometry"]["location"]["lat"], geocode["results"][0]["geometry"]["location"]["lng"]) else: location.address = None location.latlng = None # Debugs print "in geocode" print (location.status.encode('utf_8') if location.status else None) print type(location.status) print (location.address.encode('utf_8') if location.address else None) print type(location.address) return location
def post(self): messageid = self.request.get("messageid") if messageid == "": rawCharacter = cgi.escape(self.request.get("character"), quote = True) rawLocation = cgi.escape(self.request.get("address"), quote = True) # Validate character (character, charError) = map.validateCharacter(rawCharacter) # Validate location location = map.validateLocation(rawLocation) error, msgError = "", "" # Check validation errors and format error message if character == None: msgChar = rawCharacter else: msgChar = str(character.name) if charError != "": error = charError msgError = error if location.status != "OK": error = (error + " " + location.status.encode('utf_8')).decode('utf_8') msgError = error if (charError == "") and (location.status == "OK"): error = ("Move %s to %s. Got it!" % (msgChar, location.address.encode('utf_8'))).decode('utf_8') msgError = "" print datetime.datetime.utcnow() print "error: " + error.encode('utf_8') print type(error) print "msgError: " + msgError.encode('utf_8') print type(msgError) # Store in Message store if recordMessage("WebForm", None, self.request.remote_addr, msgChar, location, rawCharacter+" "+rawLocation, msgError): print "IN APP:" top_msgs(True) self.writeHTML(error=error, character=character, location=location) else: error = "App Error: Failed to insert message." self.writeHTML(error=error, character=character, location=location) else: # Validate messageid and get message messagekey = ndb.Key(urlsafe=messageid) message = Message() message = messagekey.get() character = Character.query(Character.name == message.character).get() location = Location() location.address = message.address location.latlng = message.latlng # If message found if not message: error = "App Error: Cannot get message." self.writeHTML(error=error, character=None, location=None) # If message not found else: # Write self.writeHTML(error="", character=character, location=location)
def get(self): character = Character(name="") location = Location() location.latlng=ndb.GeoPt(37.7749295, -122.4194155) # Write self.writeHTML(error="", character=character, location=location)