Mercurial > code > home > repos > light9
annotate bin/vidrefsetup @ 1864:375f48d1518a
mypy, flake8 setups
Ignore-this: 159ab09780ff33dec508d2d25c1628bf
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Sat, 25 May 2019 12:03:26 +0000 |
parents | 40cc863d2b63 |
children | 3c523c71da29 |
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 |
1692 | 12 from rdfdb.syncedgraph import SyncedGraph |
13 from rdfdb.patch import Patch | |
1096
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 |
1861 | 17 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
|
18 |
1858 | 19 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
20 class RedirToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 21 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
22 def get(self): |
1858 | 23 return self.redirect( |
24 networking.picamserve.path('pic?' + self.request.query)) | |
25 | |
26 | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
27 class UrlToCamera(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 28 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
29 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
|
30 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
|
31 self.write(networking.picamserve.path('pic')) |
1858 | 32 |
33 | |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
34 class VidrefCamRequest(PrettyErrorHandler, cyclone.web.RequestHandler): |
1858 | 35 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
36 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
|
37 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
|
38 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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 self.redirect(ret) |
1858 | 44 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
45 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
|
46 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
|
47 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
|
48 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
|
49 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
|
50 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
|
51 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
|
52 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
|
53 |
1858 | 54 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
55 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
|
56 parser = optparse.OptionParser() |
1858 | 57 parser.add_option("-v", |
58 "--verbose", | |
59 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
|
60 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
|
61 (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
|
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 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
|
64 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
|
65 |
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
66 # deliberately conflict with vidref since they can't talk at once to cam |
1858 | 67 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
|
68 |
1858 | 69 reactor.listenTCP( |
70 port, | |
71 cyclone.web.Application(handlers=[ | |
72 (r'/pic', RedirToCamera), | |
73 (r'/picUrl', UrlToCamera), | |
74 (r'/vidrefCamRequest', VidrefCamRequest), | |
75 (r'/()', cyclone.web.StaticFileHandler, { | |
76 'path': 'light9/vidref/', | |
77 'default_filename': 'vidref.html' | |
78 }), | |
79 ], | |
80 debug=True, | |
81 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
|
82 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
|
83 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
|
84 |
1858 | 85 |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
diff
changeset
|
86 main() |