Mercurial > code > home > repos > light9
view bin/vidrefsetup @ 1898:d3091e6dd1a0
more initial data for 2019 show
Ignore-this: 1bf5c652531d8653ae74528414b772ef
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Thu, 30 May 2019 17:14:11 +0000 |
parents | 3c523c71da29 |
children |
line wrap: on
line source
#!bin/python """ this should be part of vidref, but I haven't worked out sharing camera captures with a continuous camera capture yet """ from run_local import log import optparse, logging from twisted.internet import reactor import cyclone.web, cyclone.httpclient, cyclone.websocket from rdflib import URIRef from rdfdb.syncedgraph import SyncedGraph from light9.namespaces import L9 from light9 import networking, showconfig from cycloneerr import PrettyErrorHandler class RedirToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): def get(self): return self.redirect( networking.picamserve.path('pic?' + self.request.query)) class UrlToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): def get(self): self.set_header('Content-Type', 'text/plain') self.write(networking.picamserve.path('pic')) class VidrefCamRequest(PrettyErrorHandler, cyclone.web.RequestHandler): def get(self): graph = self.settings.graph show = showconfig.showUri() with graph.currentState(tripleFilter=(show, None, None)) as g: ret = g.value(show, L9['vidrefCamRequest']) if ret is None: self.send_error(404) self.redirect(ret) def put(self): graph = self.settings.graph show = showconfig.showUri() graph.patchObject(context=URIRef(show + '/vidrefConfig'), subject=show, predicate=L9['vidrefCamRequest'], newObject=URIRef(self.get_argument('uri'))) self.send_error(202) def main(): parser = optparse.OptionParser() parser.add_option("-v", "--verbose", action="store_true", help="logging.DEBUG") (options, args) = parser.parse_args() log.setLevel(logging.DEBUG if options.verbose else logging.INFO) graph = SyncedGraph(networking.rdfdb.url, "vidrefsetup") # deliberately conflict with vidref since they can't talk at once to cam port = networking.vidref.port reactor.listenTCP( port, cyclone.web.Application(handlers=[ (r'/pic', RedirToCamera), (r'/picUrl', UrlToCamera), (r'/vidrefCamRequest', VidrefCamRequest), (r'/()', cyclone.web.StaticFileHandler, { 'path': 'light9/vidref/', 'default_filename': 'vidref.html' }), ], debug=True, graph=graph)) log.info("serving on %s" % port) reactor.run() main()