Files
@ 8fc5da221688
Branch filter:
Location: light9/bin/vidrefsetup - annotation
8fc5da221688
2.6 KiB
text/plain
checkpoint show data
087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 3c523c71da29 3c523c71da29 087f6cbe4b22 3c523c71da29 6fa4288da8a6 3c523c71da29 087f6cbe4b22 087f6cbe4b22 40cc863d2b63 087f6cbe4b22 7772cc48e016 087f6cbe4b22 7772cc48e016 087f6cbe4b22 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 087f6cbe4b22 7772cc48e016 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 7772cc48e016 7772cc48e016 087f6cbe4b22 7772cc48e016 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 7772cc48e016 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 7772cc48e016 087f6cbe4b22 087f6cbe4b22 7772cc48e016 7772cc48e016 7772cc48e016 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 a38955ba6f40 087f6cbe4b22 087f6cbe4b22 7772cc48e016 087f6cbe4b22 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 7772cc48e016 087f6cbe4b22 087f6cbe4b22 087f6cbe4b22 7772cc48e016 087f6cbe4b22 | #!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()
|