def post_condition(self, request):
     app_config = appconfig.load_settings()
     config = app_config["locations"][request.location]
     c = condition.Condition(location=request.location, station=request.station, json=request.json)
     if c:
         memcache.set(key=c.location, value=c, namespace="conditions")
         # if it's raining, update the last rain datetime in the cache
         if c.is_raining:
             wxutils.update_last_rain(c.location, c.date)
         wxutils.update_high_low_averages(condition=c)
         # self.store_condition(request)
         if config and "wunderground" in config:
             wu_config = config["wunderground"]
             if "conditions" in wu_config and wu_config["conditions"]:
                 wu.post(condition=c, station=wu_config["station"], password=wu_config["password"])
     return message_types.VoidMessage()
Example #2
0
  def upload_archive(self, request):
#    logging.info(request.json)
    app_config = appconfig.load_settings()
    config = app_config['locations'][request.location]
    logging.info('archive record date: ' + str(parser.parse(request.date)))
    #archive.DbArchive(location=request.location, 
    #                  date=parser.parse(request.date), json=request.json, station=request.station).put()
    archive_record = json_to_dbarchive(request.location, request.date, request.station, request.json)
    # check for dups (location + date)?
    # populate all fields
    # store the record
    if archive_record:
      archive.ArchiveFactory.put(archive_record)
      # update last rain
      if archive_record.rainfall > 0: wxutils.update_last_rain(archive_record.location, archive_record.date)
      if config and 'wunderground' in config:
        wu_config = config['wunderground']
        if 'archives' in wu_config and wu_config['archives']:
          wu.post(archive=archive_record, station=wu_config['station'], password=wu_config['password'])

      wxutils.update_high_low_averages(archive=archive_record)

    return message_types.VoidMessage()