summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2020-11-29 14:51:18 +0100
committersternenseemann <git@lukasepple.de>2020-11-29 15:17:07 +0100
commit347afbd48cf17e6944b3183333c8500b96179cee (patch)
tree9427b70aecfdfaf810f6d502ceaea754221b68a9
parent81b466cd24fee1a555527a3aebe465d9882abf22 (diff)
refactor(anzeigetafel): use flipdot_gschichtler for API requests
-rwxr-xr-xanzeigetafel/anzeigetafel.py49
l---------anzeigetafel/flipdot_gschichtler1
-rw-r--r--anzeigetafel/setup.py12
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'
+        }
+    }
+)