X-Git-Url: https://yuggoth.org/gitweb?a=blobdiff_plain;f=weather.py;h=8187fb69ead8e236946fe98b07d52bfea1688a24;hb=04e5caae2dc50252c2a4f3a433639de3474e453e;hp=cc632e1cc4413522792066ad85e142f475800d67;hpb=757b9658f985fb0ad05613bee174c3570cdcf9bd;p=weather.git diff --git a/weather.py b/weather.py index cc632e1..8187fb6 100644 --- a/weather.py +++ b/weather.py @@ -1,7 +1,7 @@ """Contains various object definitions needed by the weather utility.""" weather_copyright = """\ -# Copyright (c) 2006-2023 Jeremy Stanley . Permission to +# Copyright (c) 2006-2024 Jeremy Stanley . Permission to # use, copy, modify, and distribute this software is granted under terms # provided in the LICENSE file distributed with this software. #""" @@ -342,7 +342,19 @@ def get_alert( muted = True lines = alert.split("\n") import time - valid_time = time.strftime("%Y%m%d%H%M") + # TODO: make this offset configurable + # TODO: adjust offset relative to the difference between the user's + # local time and the zone's local time (will need to extend + # the schema in the zones file to store each tz + offset = 86400 # one day + + # report alerts and forecasts that expired less than offset ago; + # this is a cheap hack since expiration times seem to be relative + # to the zone's local timezone, and converting from the user's + # would get complicated, but also there can sometimes be a lag + # between expiration and the next update + valid_time = time.strftime( + "%Y%m%d%H%M", time.localtime(time.time() - offset)) output = [] for line in lines: if line.startswith("Expires:") \ @@ -747,7 +759,7 @@ def guess( if pyversion("3"): stations.read_string( gzip.open(datafile).read().decode("utf-8") ) - else: stations.readfp( gzip.open(datafile) ) + else: stations.read_file( gzip.open(datafile) ) else: if pyversion("3"): stations.read(datafile, encoding="utf-8") @@ -768,7 +780,7 @@ def guess( import gzip if pyversion("3"): zones.read_string( gzip.open(datafile).read().decode("utf-8") ) - else: zones.readfp( gzip.open(datafile) ) + else: zones.read_file( gzip.open(datafile) ) else: if pyversion("3"): zones.read(datafile, encoding="utf-8") @@ -798,7 +810,7 @@ def guess( if pyversion("3"): airports.read_string( gzip.open(datafile).read().decode("utf-8") ) - else: airports.readfp( gzip.open(datafile) ) + else: airports.read_file( gzip.open(datafile) ) else: if pyversion("3"): airports.read(datafile, encoding="utf-8") @@ -890,7 +902,7 @@ def guess( if pyversion("3"): zctas.read_string( gzip.open(datafile).read().decode("utf-8") ) - else: zctas.readfp( gzip.open(datafile) ) + else: zctas.read_file( gzip.open(datafile) ) else: if pyversion("3"): zctas.read(datafile, encoding="utf-8") @@ -951,7 +963,7 @@ def guess( if pyversion("3"): places.read_string( gzip.open(datafile).read().decode("utf-8") ) - else: places.readfp( gzip.open(datafile) ) + else: places.read_file( gzip.open(datafile) ) else: if pyversion("3"): places.read(datafile, encoding="utf-8") @@ -1605,7 +1617,7 @@ def correlate(): removed = 0 changed = 0 overrides = configparser.ConfigParser() - overrides.readfp( codecs.open(overrides_fn, "r", "utf8") ) + overrides.read_file( codecs.open(overrides_fn, "r", "utf8") ) overrideslog = [] for section in overrides.sections(): addopt = 0