From f09cb30772329d92629cdfef927b9e4442c4117e Mon Sep 17 00:00:00 2001 From: Klaus-Uwe Mitterer Date: Thu, 22 Jun 2017 17:16:13 +0200 Subject: [PATCH] Add SKS keyserver monitor --- skstools/__init__.py | 12 ++++++++++++ sksup.py | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 skstools/__init__.py create mode 100755 sksup.py diff --git a/skstools/__init__.py b/skstools/__init__.py new file mode 100644 index 0000000..2ff3309 --- /dev/null +++ b/skstools/__init__.py @@ -0,0 +1,12 @@ +import urllib.request, urllib.error + +def getStatus(server): + try: + source = str(urllib.request.urlopen("https://sks-keyservers.net/status/ks-status.php?server=%s" % server).read()) + if "No data found for keyserver" in source: + return False + if "Reason" in source: + return False + return True + except urllib.error.URLError: + return None diff --git a/sksup.py b/sksup.py new file mode 100755 index 0000000..b63b392 --- /dev/null +++ b/sksup.py @@ -0,0 +1,12 @@ +#!/usr/bin/python3 + +import time, setuptools, skstools, twitools + +def check(server, recipient, two = twitools.twObject()): + if skstools.getStatus(server) == False: + two.tweet("@%s Something seems to be wrong with the %s keyserver!" % (recipient, site)) + +if __name__ == "__main__": + servers = setuptools.getListSetting("SKS", "servers") + for s in servers: + check(s[0], s[1])