changeset 2181:8cab6a80215a

asco cleanup, including a bugfix (rdflib dropped graph.label?)
author drewp@bigasterisk.com
date Fri, 19 May 2023 16:59:45 -0700
parents c921e1cae0af
children 5db8e7698d6a
files bin/ascoltami light9/ascoltami/musictime_client.py light9/ascoltami/webapp.py light9/ascoltami/webapp_test.py
diffstat 4 files changed, 18 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/bin/ascoltami	Fri May 19 16:11:10 2023 -0700
+++ b/bin/ascoltami	Fri May 19 16:59:45 2023 -0700
@@ -1,4 +1,4 @@
 #!/bin/zsh
 pnpm exec vite -c light9/ascoltami/vite.config.ts &
-PYTHONPATH=`pwd` pdm run python light9/ascoltami/main.py
+pdm run python light9/ascoltami/main.py
 wait
--- a/light9/ascoltami/musictime_client.py	Fri May 19 16:11:10 2023 -0700
+++ b/light9/ascoltami/musictime_client.py	Fri May 19 16:59:45 2023 -0700
@@ -1,5 +1,6 @@
 import time, json, logging
-from typing import Dict
+from typing import Dict, cast
+from twisted.internet.interfaces import IReactorTime
 
 from twisted.internet import reactor
 from twisted.internet.defer import inlineCallbacks
@@ -80,11 +81,11 @@
             self.position = position
             self.onChange(position)
 
-            reactor.callLater(self.period, self.pollMusicTime)
+            cast(IReactorTime, reactor).callLater(self.period, self.pollMusicTime)
 
         def eb(err):
             log.warn("talking to ascoltami: %s", err.getErrorMessage())
-            reactor.callLater(2, self.pollMusicTime)
+            cast(IReactorTime, reactor).callLater(2, self.pollMusicTime)
 
         d = treq.get(networking.musicPlayer.path("time").toPython())
         d.addCallback(cb)
--- a/light9/ascoltami/webapp.py	Fri May 19 16:11:10 2023 -0700
+++ b/light9/ascoltami/webapp.py	Fri May 19 16:59:45 2023 -0700
@@ -11,7 +11,7 @@
 from light9.metrics import metricsRoute
 from light9.namespaces import L9
 from light9.showconfig import getSongsFromShow, showUri, songOnDisk
-from rdflib import URIRef
+from rdflib import RDFS, Graph, URIRef
 from twisted.internet import reactor
 from twisted.internet.interfaces import IReactorTime
 
@@ -124,12 +124,20 @@
 class songs(PrettyErrorHandler, cyclone.web.RequestHandler):
 
     def get(self):
-        graph = self.settings.app.graph
+        graph = cast(Graph, self.settings.app.graph)
 
         songs = getSongsFromShow(graph, self.settings.app.show)
 
         self.set_header("Content-Type", "application/json")
-        self.write(json.dumps({"songs": [{"uri": s, "path": graph.value(s, L9['showPath']), "label": graph.label(s)} for s in songs]}))
+        self.write(json.dumps({
+            "songs": [
+                {  #
+                    "uri": s,
+                    "path": graph.value(s, L9['songFilename']),
+                    "label": graph.value(s, RDFS.label)
+                } for s in songs
+            ]
+        }))
 
 
 class songResource(PrettyErrorHandler, cyclone.web.RequestHandler):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/light9/ascoltami/webapp_test.py	Fri May 19 16:59:45 2023 -0700
@@ -0,0 +1,2 @@
+# todo
+# test that GET /songs doesn't break, etc