# distributions may wish to edit the above to refer to a specific interpreter
# path, such as #!/usr/bin/python
-# Copyright (c) 2006-2012 Jeremy Stanley <fungi@yuggoth.org>. Permission to
+# Copyright (c) 2006-2024 Jeremy Stanley <fungi@yuggoth.org>. Permission to
# use, copy, modify, and distribute this software is granted under terms
# provided in the LICENSE file distributed with this software.
and selections.get_bool("cache_data")
),
cacheage=selections.getint("cacheage"),
- cachedir=selections.get("cachedir")
+ cachedir=selections.get("cachedir"),
+ delay=selections.getint("delay")
)
if partial:
alert_text += "***** %s *****\n%s\n" % (
quiet=False,
cache_data=False,
cacheage=900,
- cachedir="."
+ cachedir=".",
+ delay=1
):
"""Return alert notice for the specified URI."""
if not uri:
muted = False
expirycheck = re.search(r"Expires:([0-9]{12})", alert)
if expirycheck:
- # only report alerts and forecasts that expired less than
- # offset ago
+ # only report alerts and forecasts that expired less than delay
+ # hours ago
import datetime, zoneinfo
expiration = datetime.datetime.fromisoformat(
"%sT%sZ" % (expirycheck[1][:8], expirycheck[1][-4:]))
now = datetime.datetime.now(tz=zoneinfo.ZoneInfo("UTC"))
- # TODO: make this offset configurable
- if now - expiration > datetime.timedelta(hours=1):
+ if now - expiration > datetime.timedelta(hours=delay):
return ""
lines = alert.split("\n")
output = []
default=default_cachedir,
help="directory for storing cached searches and data")
+ # the --delay option
+ if config.has_option("default", "delay"):
+ default_delay = config.getint("default", "delay")
+ else: default_delay = 1
+ option_parser.add_option("--delay",
+ dest="delay",
+ default=default_delay,
+ help="hours to delay alert and forecast expiration")
+
# the -f/--forecast option
if config.has_option("default", "forecast"):
default_forecast = config.getboolean("default", "forecast")