def __init__(self, sbs1msg): logging.info("%s appeared" % sbs1msg["icao24"]) self.__icao24 = sbs1msg["icao24"] self.__loggedDate = datetime.utcnow() # sbs1msg["loggedDate"] self.__callsign = sbs1msg["callsign"] self.__altitude = sbs1msg["altitude"] self.__altitudeTime = datetime.utcnow() self.__groundSpeed = sbs1msg["groundSpeed"] self.__track = sbs1msg["track"] self.__lat = sbs1msg["lat"] self.__lon = sbs1msg["lon"] self.__latLonTime = datetime.utcnow() self.__verticalRate = sbs1msg["verticalRate"] self.__operator = None self.__registration = None self.__type = None self.__updated = True if args.pdb_host: plane = planedb.lookup_aircraft(self.__icao24) if plane: self.__registration = plane["registration"] self.__type = plane["manufacturer"] + " " + plane["model"] self.__operator = plane["operator"] self.__image_url = plane["image"] if self.__image_url is None: self.__image_url = utils.image_search(self.__icao24, self.__operator, self.__type, self.__registration) else: if not self.__planedb_nagged: self.__planedb_nagged = True logging.error("icao24 %s not found in the database" % (self.__icao24))
def post(self): #print '_______________', self.request.files body = self.request.files['recording'][0]['body'] query_type = self.get_argument("mode") filename = str(int(random.random()*1000000)) file = open('tempfiles/' + filename + '.wav', 'w') file.write(body) file.close() command = '/opt/sox-14.4.0/sox tempfiles/'+ filename + '.wav ' + 'tempfiles/' + filename + '.flac' # print 'command: ', command r = envoy.run(command) if r.status_code != 0: print 'bad status code ', r.status_code url = 'http://www.google.com/speech-api/v1/recognize?lang=en-us&client=chromium' headers={'Content-Type': 'audio/x-flac; rate=16000'} r = requests.post(url, files={'eiffel.flac' : open('tempfiles/' + filename + '.flac' , 'rb')}, headers=headers) #print r.json os.remove('tempfiles/' + filename + '.wav') os.remove('tempfiles/' + filename + '.flac') if r.status_code != 200 or r.json is None or not r.json['hypotheses']: self.write(json.dumps({'status': 'failed'})) return utterance = r.json['hypotheses'][0]['utterance'] print utterance keyword = NaiveWordSelector.topKeyword(utterance.split(' ')) print keyword query_types = ["Image","Web","Wikipedia","Analytical"] if query_type not in query_types: query_type = query_types[random.randint(0,len(query_types))] if query_type=="Image": background_size = "contain" image = image_search(keyword) self.write(loader.load("image.html").generate(image_url=image['url'],background_size=background_size,query_type=query_type)) elif query_type=="Web": url = lucky_search(keyword) self.write(loader.load("redirect.html").generate(url=url,query_type=query_type)) elif query_type=="Wikipedia": url = wikipedia_search(keyword) self.write(loader.load("redirect.html").generate(url=url,query_type=query_type)) elif query_type=="Analytical": results,image_url,desc = wolframalpha_search(keyword) self.write(loader.load("wolframalpha.html").generate(results=results,keyword=keyword,image_url=image_url,desc=desc,query_type=query_type))
def get(self): keyword = self.get_argument("keyword") image = image_search(keyword) background_size = "contain" self.write(loader.load("image.html").generate(image_url=image['url'],background_size=background_size,query_type=None))