diff options
author | sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> | 2020-11-29 14:51:18 +0100 |
---|---|---|
committer | sternenseemann <git@lukasepple.de> | 2020-11-29 15:17:07 +0100 |
commit | 347afbd48cf17e6944b3183333c8500b96179cee (patch) | |
tree | 9427b70aecfdfaf810f6d502ceaea754221b68a9 | |
parent | 81b466cd24fee1a555527a3aebe465d9882abf22 (diff) |
refactor(anzeigetafel): use flipdot_gschichtler for API requests
-rwxr-xr-x | anzeigetafel/anzeigetafel.py | 49 | ||||
l--------- | anzeigetafel/flipdot_gschichtler | 1 | ||||
-rw-r--r-- | anzeigetafel/setup.py | 12 |
3 files changed, 32 insertions, 30 deletions
diff --git a/anzeigetafel/anzeigetafel.py b/anzeigetafel/anzeigetafel.py index 6205e4e..9b76aa8 100755 --- a/anzeigetafel/anzeigetafel.py +++ b/anzeigetafel/anzeigetafel.py @@ -1,8 +1,8 @@ #!/usr/bin/env python import os import sys -import requests from flipdots.scripts.scroll_text import scroll_text +from flipdot_gschichtler import FlipdotGschichtlerClient from time import sleep if len(sys.argv) == 2: @@ -11,45 +11,34 @@ else: print("Usage: {} TOKEN".format(sys.argv[0])) exit(1) -BASEURL = 'https://flipdot.openlab-augsburg.de/api/v2' +BASEURL = 'https://flipdot.openlab-augsburg.de' FLIPDOT_HOST = 'localhost' FLIPDOT_PORT = 2323 FONT = '/usr/share/fonts/truetype/unifont/unifont.ttf' -def get_queue(): - r = requests.get(BASEURL + '/queue') - return r.json()['queue'] - -def delete_queue_entry(id): - r = requests.delete(BASEURL + '/queue/{}'.format(id), data={'token' : TOKEN }) - if r.status_code == 204: - return (True, r.status_code) - else: - return (False, r.status_code) +api = FlipdotGschichtlerClient(BASEURL, api_token = TOKEN) while True: - queue = get_queue() - - while len(queue) < 1: - try: - queue = get_queue() - except: - pass - sleep(15) - - nextentry = queue[0] - id = nextentry['id'] - text = nextentry['text'] + try: + queue = api.queue() + except: + print("Retrieving queue failed") - print("Drawing string \"{}\" with id {}".format(text.encode("utf-8"), id)) + # select task + if len(queue) > 0: + target_text = queue[0]['text'] + target_id = queue[0]['id'] - scroll_text(FLIPDOT_HOST, FLIPDOT_PORT, FONT, text) + print("Drawing queue string \"{}\" with id {}".format(target_text.encode("utf-8"), target_id)) - (sucess, status) = delete_queue_entry(id) + scroll_text(FLIPDOT_HOST, FLIPDOT_PORT, FONT, target_text) - if sucess: - print("Deleted queue item {}".format(id)) + try: + api.delete(target_id) + print("Deleted queue item {}".format(target_id)) + except: + print("Could not delete item {}".format(target_id)) else: - print("Could not delete item {}: HTTP Error {}".format(id, status)) + sleep(15) diff --git a/anzeigetafel/flipdot_gschichtler b/anzeigetafel/flipdot_gschichtler new file mode 120000 index 0000000..2bac9a6 --- /dev/null +++ b/anzeigetafel/flipdot_gschichtler @@ -0,0 +1 @@ +../pylib/flipdot_gschichtler/ \ No newline at end of file diff --git a/anzeigetafel/setup.py b/anzeigetafel/setup.py new file mode 100644 index 0000000..0f2c598 --- /dev/null +++ b/anzeigetafel/setup.py @@ -0,0 +1,12 @@ +from setuptools import setup + +setup( + name = 'anzeigetafel', + version = '2.0.0', + py_modules = [ 'anzeigetafel' ], + entry_points = { + 'console_scripts' : { + 'anzeigetafel=anzeigetafel:main' + } + } +) |