source: subversion/applications/rendering/parking/osray/osray_server.py @ 21972

Revision 21972, 3.1 KB checked in by kdrangmeister, 4 years ago (diff)

osray: db interface

  • Property svn:mime-type set to text/plain
Line 
1# -*- coding: utf-8 -*-
2
3import string, cgi, time
4from os import curdir, sep
5from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
6import urlparse
7import osray
8
9options = {'height': 100, 'dsn': 'dbname=gis', 'width': 100, 'prefix': 'planet_osm', 'bbox': '9.94861 49.79293,9.96912 49.80629', 'quick': False}
10
11class osrayHandler(BaseHTTPRequestHandler):
12
13    def do_GET(self):
14        try:
15            theurl = self.path
16            if theurl == "/favicon.ico":
17                self.send_response(200)
18                self.end_headers()
19                self.wfile.write("")
20                return
21            urlcomponents = urlparse.urlparse(theurl)
22            print urlcomponents
23            baseurl = urlcomponents[2]
24            print "parse=",urlparse.urlparse(theurl)
25            print "base=",baseurl
26            urlqs = urlparse.urlparse(theurl)[4]
27            print "URL qs:", urlqs
28            queryparams = urlparse.parse_qs(urlqs)
29            print queryparams
30            if baseurl.endswith(".png"):
31                if queryparams.has_key('width'):
32                    options['width']=queryparams['width'][0]
33                if queryparams.has_key('height'):
34                    options['height']=queryparams['height'][0]
35                print "--- calling osray"
36                osray.main(options)
37                print "--- calling osray ends"
38                f = open(curdir + sep + 'scene-osray.png')
39                self.send_response(200)
40                self.send_header('Content-type','image/png')
41                self.end_headers()
42                self.wfile.write(f.read())
43                f.close()
44                return
45            print "URL was ", theurl
46            urlqs = urlparse.urlparse(theurl)[4]
47            print "URL qs:", urlqs
48            queryparams = urlparse.parse_qs(urlqs)
49            print queryparams
50            self.send_response(200)
51            self.send_header('Content-type', 'text/html')
52            self.end_headers()
53            self.wfile.write("hey, today is the" + str(time.localtime()[7]))
54            self.wfile.write(" day in the year " + str(time.localtime()[0]))
55            return
56        except IOError:
57            self.send_error(404, 'File Not Found: %s' % self.path)
58
59
60"""
61    def do_POST(self):
62        global rootnode
63        try:
64            ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
65            if ctype == 'multipart/form-data':
66                query = cgi.parse_multipart(self.rfile, pdict)
67            self.send_response(301)
68           
69            self.end_headers()
70            upfilecontent = query.get('upfile')
71            print "filecontent", upfilecontent[0]
72            self.wfile.write("<HTML>POST OK.<BR><BR>");
73            self.wfile.write(upfilecontent[0]);
74           
75        except :
76            pass
77"""
78
79def main():
80    try:
81        server = HTTPServer(('', 8087), osrayHandler)
82        print 'started osray server...'
83        server.serve_forever()
84    except KeyboardInterrupt:
85        print 'shutting down server'
86        server.socket.close()
87
88if __name__ == '__main__':
89    main()
Note: See TracBrowser for help on using the repository browser.