def get(self): obj = {'notes':'Returns info about the sunrise/sunset for a location. All values are in UTC hours', 'credits':'Uses the Python port of sunsetrise.c: https://github.com/mabroor/suncal Host set up by Jeff Easter (http://feesta.com)'} arguments = self.request.arguments if 'lat' in arguments and 'lon' in arguments: lat = float(self.get_argument('lat')) lon = float(self.get_argument('lon')) obj["lat"] = lat obj["lon"] = lon extended = True if 'extended' in arguments else False obj["extended"] = extended now = datetime.datetime.now() year = int(self.get_argument('year')) if 'year' in arguments else now.year month = int(self.get_argument('month')) if 'month' in arguments else now.month day = int(self.get_argument('day')) if 'day' in arguments else now.day obj["year"] = year obj["month"] = month obj["day"] = day dt = datetime.datetime(year, month, day) day_seconds = time.mktime(dt.timetuple()) obj["day_seconds"] = day_seconds obj["sunrise"], obj["sunset"] = Sun.sunRiseSet(year, month, day, lon, lat) obj["sunrise_seconds"] = int(obj["sunrise"] * HOUR + day_seconds) obj["sunRiseSet"] = Sun.sunRiseSet(year, month, day, lon, lat) obj["sunset_seconds"] = int(obj["sunset"] * HOUR + day_seconds) obj["dayLength"] = Sun.dayLength(year, month, day, lon, lat) obj["dayLength_seconds"] = int(obj["dayLength"] * HOUR) if extended is True: obj["aviationTime"] = Sun.aviationTime(year, month, day, lon, lat) obj["civilTwilight"] = Sun.civilTwilight(year, month, day, lon, lat) obj["dayCivilTwilightLength"] = Sun.dayCivilTwilightLength(year, month, day, lon, lat) obj["nauticalTwilight"] = Sun.nauticalTwilight(year, month, day, lon, lat) obj["dayNauticalTwilightLength"] = Sun.dayNauticalTwilightLength(year, month, day, lon, lat) obj["astronomicalTwilight"] = Sun.astronomicalTwilight(year, month, day, lon, lat) obj["dayAstronomicalTwilightLength"] = Sun.dayAstronomicalTwilightLength(year, month, day, lon, lat) self.write(json.dumps(obj)) else: obj['status'] = 'error' obj['message'] = 'missing lat or lon' obj['arguments required'] = 'lat, lon' obj['arguments optional'] = 'extended, year, month, day' self.write(json.dumps(obj))