Mercurial > code > home > repos > light9
annotate bin/vidrefsetup @ 1550:cbf4fc71d8d8
solve_test fixes
Ignore-this: be03d7b4d8601b5e65c1567e0345073d
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Fri, 19 May 2017 07:54:20 +0000 |
parents | 95dfce5c12ce |
children | 6fa4288da8a6 |
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 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
6 import sys, optparse, logging, json, subprocess, datetime |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
7 from dateutil.tz import tzlocal |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
8 from twisted.internet import reactor, defer |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
9 import cyclone.web, cyclone.httpclient, cyclone.websocket |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
10 from rdflib import RDF, URIRef, Literal |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
11 import pyjade.utils |
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.rdfdb.syncedgraph import SyncedGraph |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
13 from light9.rdfdb.patch import Patch |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
14 from light9.namespaces import L9, DCTERMS |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
15 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
|
16 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
17 from lib.cycloneerr import PrettyErrorHandler |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
18 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
19 class RedirToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
20 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
|
21 return self.redirect(networking.picamserve.path( |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
22 'pic?' + self.request.query)) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
23 |
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): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
25 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
|
26 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
|
27 self.write(networking.picamserve.path('pic')) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
28 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
29 class VidrefCamRequest(PrettyErrorHandler, cyclone.web.RequestHandler): |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
30 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
|
31 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
|
32 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
|
33 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
|
34 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
|
35 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
|
36 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
|
37 self.redirect(ret) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
38 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
48 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
|
49 parser = optparse.OptionParser() |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
50 parser.add_option("-v", "--verbose", action="store_true", |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
51 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
|
52 (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
|
53 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
54 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
|
55 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
|
56 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
57 # deliberately conflict with vidref since they can't talk at once to cam |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
58 port = networking.vidref.port |
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 reactor.listenTCP(port, cyclone.web.Application(handlers=[ |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
61 (r'/pic', RedirToCamera), |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
62 (r'/picUrl', UrlToCamera), |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
63 (r'/vidrefCamRequest', VidrefCamRequest), |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
64 (r'/()', cyclone.web.StaticFileHandler, {'path': 'light9/vidref/', 'default_filename': 'vidref.html'}), |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
65 ], debug=True, graph=graph)) |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
66 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
|
67 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
|
68 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
69 main() |