Mercurial > code > home > repos > light9
annotate bin/vidrefsetup @ 2112:0b80bcc82cb1
reformat
author | drewp@bigasterisk.com |
---|---|
date | Thu, 02 Jun 2022 18:52:24 +0000 |
parents | 3c523c71da29 |
children |
rev | line source |
---|---|
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
1 #!bin/python |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
2 """ this should be part of vidref, but I haven't worked out sharing |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
3 camera captures with a continuous camera capture yet """ |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
4 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
5 from run_local import log |
1866
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1861
diff
changeset
|
6 import optparse, logging |
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1861
diff
changeset
|
7 from twisted.internet import reactor |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
8 import cyclone.web, cyclone.httpclient, cyclone.websocket |
1866
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1861
diff
changeset
|
9 from rdflib import URIRef |
1692 | 10 from rdfdb.syncedgraph import SyncedGraph |
1866
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1861
diff
changeset
|
11 from light9.namespaces import L9 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
12 from light9 import networking, showconfig |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
13 |
1861 | 14 from cycloneerr import PrettyErrorHandler |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
15 |
1858 | 16 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
17 class RedirToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 18 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
19 def get(self): |
1858 | 20 return self.redirect( |
21 networking.picamserve.path('pic?' + self.request.query)) | |
22 | |
23 | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
24 class UrlToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 25 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
26 def get(self): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
27 self.set_header('Content-Type', 'text/plain') |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
28 self.write(networking.picamserve.path('pic')) |
1858 | 29 |
30 | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
31 class VidrefCamRequest(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 32 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
33 def get(self): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
34 graph = self.settings.graph |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
35 show = showconfig.showUri() |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
36 with graph.currentState(tripleFilter=(show, None, None)) as g: |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
37 ret = g.value(show, L9['vidrefCamRequest']) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
38 if ret is None: |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
39 self.send_error(404) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
40 self.redirect(ret) |
1858 | 41 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
42 def put(self): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
43 graph = self.settings.graph |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
44 show = showconfig.showUri() |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
45 graph.patchObject(context=URIRef(show + '/vidrefConfig'), |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
46 subject=show, |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
47 predicate=L9['vidrefCamRequest'], |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
48 newObject=URIRef(self.get_argument('uri'))) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
49 self.send_error(202) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
50 |
1858 | 51 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
52 def main(): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
53 parser = optparse.OptionParser() |
1858 | 54 parser.add_option("-v", |
55 "--verbose", | |
56 action="store_true", | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
57 help="logging.DEBUG") |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
58 (options, args) = parser.parse_args() |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
59 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
60 log.setLevel(logging.DEBUG if options.verbose else logging.INFO) |
1114
a38955ba6f40
rdfdb port is now in the config
Drew Perttula <drewp@bigasterisk.com>
parents:
1096
diff
changeset
|
61 graph = SyncedGraph(networking.rdfdb.url, "vidrefsetup") |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
62 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
63 # deliberately conflict with vidref since they can't talk at once to cam |
1858 | 64 port = networking.vidref.port |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
65 |
1858 | 66 reactor.listenTCP( |
67 port, | |
68 cyclone.web.Application(handlers=[ | |
69 (r'/pic', RedirToCamera), | |
70 (r'/picUrl', UrlToCamera), | |
71 (r'/vidrefCamRequest', VidrefCamRequest), | |
72 (r'/()', cyclone.web.StaticFileHandler, { | |
73 'path': 'light9/vidref/', | |
74 'default_filename': 'vidref.html' | |
75 }), | |
76 ], | |
77 debug=True, | |
78 graph=graph)) | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
79 log.info("serving on %s" % port) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
80 reactor.run() |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
81 |
1858 | 82 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
83 main() |