diff --git a/bin/effectsequencer b/bin/effectSequencer copy from bin/effectsequencer copy to bin/effectSequencer --- a/bin/effectsequencer +++ b/bin/effectSequencer @@ -1,84 +1,5 @@ -#!bin/python -""" -plays back effect notes from the timeline -""" - -from run_local import log -from twisted.internet import reactor -from light9.metrics import metrics, metricsRoute -from rdfdb.syncedgraph import SyncedGraph -from light9 import networking, showconfig -import optparse, sys, logging -import cyclone.web -from rdflib import URIRef -from light9.effect.sequencer import Sequencer, Updates -from light9.collector.collector_client import sendToCollector - -from light9 import clientsession - - -class App(object): - - def __init__(self, show, session): - self.show = show - self.session = session - - self.graph = SyncedGraph(networking.rdfdb.url, "effectSequencer") - self.graph.initiallySynced.addCallback(self.launch) - - def launch(self, *args): - self.seq = Sequencer( - self.graph, - lambda settings: sendToCollector( - 'effectSequencer', - self.session, - settings, - # This seems to be safe here (and lets us get from - # 20fpx to 40fpx), even though it leads to big stalls - # if I use it on KC. - useZmq=True)) +#!/bin/sh +pnpx vite -c light9/effect/sequencer/web/vite.config.ts & +pdm run uvicorn light9.effect.sequencer.service:app --host 0.0.0.0 --port 8213 --no-access-log +wait - self.cycloneApp = cyclone.web.Application(handlers=[ - (r'/()', cyclone.web.StaticFileHandler, { - "path": "light9/effect/", - "default_filename": "sequencer.html" - }), - (r'/updates', Updates), - metricsRoute(), - ], - debug=True, - seq=self.seq, - graph=self.graph, - # stats=self.stats - ) - reactor.listenTCP(networking.effectSequencer.port, self.cycloneApp) - log.info("listening on %s" % networking.effectSequencer.port) - - -if __name__ == "__main__": - parser = optparse.OptionParser() - parser.add_option( - '--show', - help='show URI, like http://light9.bigasterisk.com/show/dance2008', - default=showconfig.showUri()) - parser.add_option("-v", - "--verbose", - action="store_true", - help="logging.DEBUG") - parser.add_option("--twistedlog", - action="store_true", - help="twisted logging") - clientsession.add_option(parser) - (options, args) = parser.parse_args() - log.setLevel(logging.DEBUG if options.verbose else logging.INFO) - - if not options.show: - raise ValueError("missing --show http://...") - - session = clientsession.getUri('effectSequencer', options) - - app = App(URIRef(options.show), session) - if options.twistedlog: - from twisted.python import log as twlog - twlog.startLogging(sys.stderr) - reactor.run()