we MOVED
[saartuer.git] / spaceapi.py
diff --git a/spaceapi.py b/spaceapi.py
deleted file mode 100644 (file)
index 181981a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-from threading import Lock
-from libtuer import ThreadFunction, logger
-import urllib.request, time
-
-from config import spaceApiKey
-
-RETRY_TIME = 60
-HEARTBEAT_TIME = 10*60
-
-class SpaceApi:
-       def __init__ (self, waker):
-               self._local_state = None
-               self._remote_state = None
-               self._last_set_at = 0
-               self._running = True
-               self._fail_count = 0 # number of consecutive fails
-               self.set_state = ThreadFunction(self._set_state, "Space API")
-               waker.register(self.set_state, RETRY_TIME)
-       
-       def stop (self):
-               self.set_state.stop()
-       
-       def _do_request(self, state):
-               state_val = 1 if state else 0
-               try:
-                       logger.info("Setting SpaceAPI to %d" % state_val)
-                       url = "https://spaceapi.hacksaar.de/status.php?action=update&key=%s&status=%d" % (spaceApiKey, state_val)
-                       response = urllib.request.urlopen(url, timeout=5.0)
-                       responseText = response.read().decode('utf-8').strip()
-                       if response.getcode() == 200 and responseText == "UpdateSuccessful": return True
-                       logger.error("SpaceAPI returned unexpected code %d, content %s" % (response.getcode(), responseText))
-                       return False
-               except urllib.request.URLError as e:
-                       logger.error("SpaceAPI update returned error: %s" % str(e))
-                       return False
-       
-       # set_state is the asynchronous version of _set_state (see __init__)
-       def _set_state (self, state = None):
-               '''Sets the state, if None: leave state unchanged and re-try if previous attempts failed'''
-               if state is not None:
-                       self._local_state = state
-               # check if there's something we need to do: There's a valid state, and either the state has changed or
-               # we need to refresh our heartbeta)
-               now = time.time()
-               if self._local_state is not None and (self._local_state != self._remote_state or now > self._last_set_at+HEARTBEAT_TIME):
-                       # take action!
-                       success = self._do_request(self._local_state)
-                       if success:
-                               self._remote_state = self._local_state
-                               self._last_set_at = now
-                               self._fail_count = 0
-                       else:
-                               self._fail_count += 1
-                               if self._fail_count in (5, 100):
-                                       logger.critical("Updating the SpaceAPI failed %d times in a row" % self._fail_count)