# HG changeset patch # User Dennis Fink # Date 2014-09-15 18:47:13 # Node ID ca7125207eae46539517994d1a303fe34381b037 # Parent e79e027d98ec57c0b09acb8b33782e261001720b Fixed mail sending when tor status is offline diff --git a/ennstatus/api/functions.py b/ennstatus/api/functions.py --- a/ennstatus/api/functions.py +++ b/ennstatus/api/functions.py @@ -25,7 +25,7 @@ DATE_FORMAT = '%d-%m-%Y %H:%M:%S' gi4 = pygeoip.GeoIP('/usr/share/GeoIP/GeoIP.dat', pygeoip.MEMORY_CACHE) -mail_cache = {} +mail_cache = dict() def check_bridge(key, server): @@ -72,6 +72,13 @@ def check_json_format(server): return True +def _send_offline_mail(server_name, last_updated): + + subject = '[Ennstatus] %s Tor status went offline' + _send_mail(server_name, last_updated, subject) + mail_cache[server_name] = datetime.utcnow() + + def update_server(server, ip): server['last_updated'] = datetime.utcnow().strftime(DATE_FORMAT) @@ -98,18 +105,18 @@ def update_server(server, ip): return e if server['tor_status'] == 'Offline': - subject = '[Ennstatus] %s Tor status went offline' if server_name in mail_cache: send_date = mail_cache[server_name] now = datetime.utcnow() delta = now - send_date - if not delta.seconds >= 7200: + if delta.seconds <= 7200: return server - - _send_mail(server_name, server['last_updated'], subject) - mail_cache[server_name] = datetime.utcnow() + else: + _send_offline_mail(server_name, server['last_updated']) + else: + _send_offline_mail(server_name, server['last_updated']) elif server_name in mail_cache: del mail_cache[server_name]