diff options
author | Von Random <von@vdrandom.org> | 2018-11-09 14:43:38 +0300 |
---|---|---|
committer | Von Random <von@vdrandom.org> | 2018-11-09 14:43:38 +0300 |
commit | c6a995caee4c6daa76cd00c4b8a71cbfe719bf4f (patch) | |
tree | 4f46fe053a8d3a37269bfa805170441b38e35bfc | |
parent | 05f83d818b69531a810600d9e9cbe6799bdb96b9 (diff) |
retry for fga plugin
-rw-r--r-- | plugins/fga.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/plugins/fga.py b/plugins/fga.py index ccda9d5..9e41826 100644 --- a/plugins/fga.py +++ b/plugins/fga.py @@ -1,21 +1,36 @@ # TODO: tidy up the fucking code import plugins import requests +import time URI = 'http://fucking-great-advice.ru/api/random' class PluginThread(plugins.PluginThreadCommon): def __init__(self, config): - defaults = {'freq': 120} + defaults = {'freq': 120, 'retry': 3} super(PluginThread, self).__init__(config, defaults) + self.retry = False def main(self): try: req = requests.get(URI, timeout=2) advice = req.json()['text'] if req.status_code == 200 else 'N/A' + self.retry = True except requests.exceptions.Timeout: advice = 'N/A (timeout)' + self.retry = False except requests.exceptions.ConnectionError: advice = 'N/A (offline)' + self.retry = False self.status['full_text'] = advice + + + def run(self): + while True: + self.main() + if self.retry: + sleep_time = self.conf['retry'] + else: + sleep_time = self.conf['freq'] + time.sleep(sleep_time) |