diff options
Diffstat (limited to 'plugins/fortune.py')
-rw-r--r-- | plugins/fortune.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/fortune.py b/plugins/fortune.py new file mode 100644 index 0000000..562d653 --- /dev/null +++ b/plugins/fortune.py @@ -0,0 +1,37 @@ +import plugins +import requests +import time + + +FGA_DEFAULTS = { + 'uri': 'http://fucking-great-advice.ru/api/random', + 'freq': 120, 'retry': 3 +} + + +class PluginThread(plugins.PluginThreadCommon): + def __init__(self, config): + super(PluginThread, self).__init__(config, FGA_DEFAULTS) + self.retry = False + + def main(self): + try: + req = requests.get(self.conf['uri'], timeout=2) + advice = req.json()['text'] if req.status_code == 200 else 'N/A' + self.retry = False + except requests.exceptions.Timeout: + advice = 'N/A (timeout)' + self.retry = True + except requests.exceptions.ConnectionError: + advice = 'N/A (offline)' + self.retry = True + 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) |