Commits

Cédric Bonhomme committed c704978

Added default .htaccess

Comments (0)

Files changed (3)

+Options +ExecCGI
+DirectoryIndex index.py
+AddHandler cgi-script .py

index.cgi

-#! /usr/bin/env python3.1
-#-*- coding: utf-8 -*-
-
-# OsmOpenPhoto - Your photos displayed on an OpenStreetMap map.
-# Copyright (C) 2012-2013  Cédric Bonhomme - http://cedricbonhomme.org/
-#
-# For more information : https://bitbucket.org/cedricbonhomme/osmopenphoto/
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>
-
-__author__ = "Cedric Bonhomme"
-__version__ = "$Revision: 0.4 $"
-__date__ = "$Date: 2012/07/13 $"
-__revision__ = "$Date: 2013/01/28 $"
-__copyright__ = "Copyright (c) Cedric Bonhomme"
-__license__ = "GPLv3"
-
-import cgi
-import json
-import urllib.request, urllib.parse, urllib.error
-
-form = cgi.FieldStorage()
-address = form.getvalue("address", "photos.cedricbonhomme.org")
-latitude = form.getvalue("latitude", "")
-longitude = form.getvalue("longitude", "")
-zoom = form.getvalue("zoom", "10")
-
-html = '<!DOCTYPE html>\n<html>\n' + \
-        '<head>\n\t<meta charset="utf-8" />\n\t<title>Photos</title>\n\t' + \
-        '<style>html, head, body { width: 100%; height: 100% }</style>\n\t' + \
-        '<link rel="stylesheet" href="./style.css" />\n'
-
-resp = None
-try:
-    request = urllib.request.urlopen("http://"+address+"/photos/list.json?pageSize=1000")
-    text = request.read().decode("utf-8")
-    resp = json.loads(text)
-except:
-    html += '</head>\n'
-    html += '<body>\n'
-    html += '<p>Unable to contact the Web Service. Check the URL.</p>\n'
-    html += '</body>\n'
-    html += '</html>\n'
-
-
-if resp != None:
-    if resp["code"] != 200:
-        html += '</head>\n'
-        html += '<body>\n'
-        html += '<p>There was a problem. The response from the Web Service is:<br />\n' + resp["message"] + '</p>\n'
-        html += '</body>\n'
-        html += '</html>\n'
-
-    else:
-        photos = resp["result"]
-        geolocated_photos = [photo for photo in photos if photo["latitude"] != None]
-
-        if len(geolocated_photos) == 0:
-            html += '</head>\n'
-            html += '<body>\n'
-            html += '<p>There are no geolocalized photos for ' + address  +  '.</p>\n'
-            html += '</body>\n'
-            html += '</html>\n'
-
-        else:
-
-            html += '<script src="http://openlayers.org/api/OpenLayers.js"></script>\n' + \
-                    '<script src="./scripts.js"></script>\n'
-            html += """<script>
-                    var photos_location;
-                    function init(position) {
-                        var size = new OpenLayers.Size(21,25);
-                        var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
-                        var popupClass, popupContentHTML;
-                        var zoom=%s;
-                        AutoSizeAnchoredMinSize = OpenLayers.Class(OpenLayers.Popup.Anchored, {
-                        'autoSize': true,
-                        'minSize': new OpenLayers.Size(10,10)
-                        });
-                        map = new OpenLayers.Map("mapdiv" , {
-                            controls:[
-                                new OpenLayers.Control.Navigation(),
-                                new OpenLayers.Control.PanZoomBar(),
-                                new OpenLayers.Control.LayerSwitcher(),
-                                new OpenLayers.Control.Attribution()]});
-                        photos_location = new OpenLayers.Layer.Markers("Photos");
-                        map.addLayer(photos_location);
-                        map.addLayer(new OpenLayers.Layer.OSM());\n""" % (zoom,)
-            if "" in (latitude, longitude):
-                html += """var lonLatCenter = new OpenLayers.LonLat(position.coords.longitude, position.coords.latitude).transform(
-                                               new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject() )
-                   map.setCenter (lonLatCenter, %s);\n""" % (zoom,)
-            else:
-                html += """var lonLatCenter = new OpenLayers.LonLat(%s, %s).transform(
-                                               new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject() )
-                   map.setCenter (lonLatCenter, %s);\n""" % (longitude, latitude, zoom)
-
-
-            for idx, photo in enumerate(geolocated_photos):
-                try:
-                    float(photo["longitude"])
-                except:
-                    continue
-                html += """
-                        var photo%s = new OpenLayers.LonLat(%s, %s).transform(
-                            new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
-                            popupClass = AutoSizeAnchoredMinSize;""" % \
-                                (idx, photo["longitude"], photo["latitude"])
-                        
-                html += """
-                            popupContentHTML = '<a href="%s"><img src="%s" witdth="50%%" height="50%%" /></a><br />Date: %s-%s-%s<br />License: %s';""" % \
-                                (photo["url"], photo["pathBase"], photo["dateTakenYear"], photo["dateTakenMonth"], photo["dateTakenDay"], \
-                                photo["license"])
-
-                html += """
-                            addMarker(photo%s, popupClass, popupContentHTML, true);""" % \
-                                (idx,)
-
-            html += "}\n</script>\n</head>\n"
-            html += '<body onload="getLocation();">\n'
-            html += """<h1>Geolocated photos for <a href="http://%s">%s</a></h1>\n""" % (address, address)
-            html += '<div id="mapdiv" style="width:100%;height:100%;"></div>\n'
-            html += "<br />\n"
-            html += "</body>\n</html>"
-
-# Finally print the web page.
-print("Content-type:text/html; Accept-Charset: utf-8")
-print("")
-print(html)
+#! /usr/bin/env python3.1
+#-*- coding: utf-8 -*-
+
+# OsmOpenPhoto - Your photos displayed on an OpenStreetMap map.
+# Copyright (C) 2012-2013  Cédric Bonhomme - http://cedricbonhomme.org/
+#
+# For more information : https://bitbucket.org/cedricbonhomme/osmopenphoto/
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>
+
+__author__ = "Cedric Bonhomme"
+__version__ = "$Revision: 0.4 $"
+__date__ = "$Date: 2012/07/13 $"
+__revision__ = "$Date: 2013/01/28 $"
+__copyright__ = "Copyright (c) Cedric Bonhomme"
+__license__ = "GPLv3"
+
+import cgi
+import json
+import urllib.request, urllib.parse, urllib.error
+
+form = cgi.FieldStorage()
+address = form.getvalue("address", "photos.cedricbonhomme.org")
+latitude = form.getvalue("latitude", "")
+longitude = form.getvalue("longitude", "")
+zoom = form.getvalue("zoom", "10")
+
+html = '<!DOCTYPE html>\n<html>\n' + \
+        '<head>\n\t<meta charset="utf-8" />\n\t<title>Photos</title>\n\t' + \
+        '<style>html, head, body { width: 100%; height: 100% }</style>\n\t' + \
+        '<link rel="stylesheet" href="./style.css" />\n'
+
+resp = None
+try:
+    request = urllib.request.urlopen("http://"+address+"/photos/list.json?pageSize=1000")
+    text = request.read().decode("utf-8")
+    resp = json.loads(text)
+except:
+    html += '</head>\n'
+    html += '<body>\n'
+    html += '<p>Unable to contact the Web Service. Check the URL.</p>\n'
+    html += '</body>\n'
+    html += '</html>\n'
+
+
+if resp != None:
+    if resp["code"] != 200:
+        html += '</head>\n'
+        html += '<body>\n'
+        html += '<p>There was a problem. The response from the Web Service is:<br />\n' + resp["message"] + '</p>\n'
+        html += '</body>\n'
+        html += '</html>\n'
+
+    else:
+        photos = resp["result"]
+        geolocated_photos = [photo for photo in photos if photo["latitude"] != None]
+
+        if len(geolocated_photos) == 0:
+            html += '</head>\n'
+            html += '<body>\n'
+            html += '<p>There are no geolocalized photos for ' + address  +  '.</p>\n'
+            html += '</body>\n'
+            html += '</html>\n'
+
+        else:
+
+            html += '<script src="http://openlayers.org/api/OpenLayers.js"></script>\n' + \
+                    '<script src="./scripts.js"></script>\n'
+            html += """<script>
+                    var photos_location;
+                    function init(position) {
+                        var size = new OpenLayers.Size(21,25);
+                        var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
+                        var popupClass, popupContentHTML;
+                        var zoom=%s;
+                        AutoSizeAnchoredMinSize = OpenLayers.Class(OpenLayers.Popup.Anchored, {
+                        'autoSize': true,
+                        'minSize': new OpenLayers.Size(10,10)
+                        });
+                        map = new OpenLayers.Map("mapdiv" , {
+                            controls:[
+                                new OpenLayers.Control.Navigation(),
+                                new OpenLayers.Control.PanZoomBar(),
+                                new OpenLayers.Control.LayerSwitcher(),
+                                new OpenLayers.Control.Attribution()]});
+                        photos_location = new OpenLayers.Layer.Markers("Photos");
+                        map.addLayer(photos_location);
+                        map.addLayer(new OpenLayers.Layer.OSM());\n""" % (zoom,)
+            if "" in (latitude, longitude):
+                html += """var lonLatCenter = new OpenLayers.LonLat(position.coords.longitude, position.coords.latitude).transform(
+                                               new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject() )
+                   map.setCenter (lonLatCenter, %s);\n""" % (zoom,)
+            else:
+                html += """var lonLatCenter = new OpenLayers.LonLat(%s, %s).transform(
+                                               new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject() )
+                   map.setCenter (lonLatCenter, %s);\n""" % (longitude, latitude, zoom)
+
+
+            for idx, photo in enumerate(geolocated_photos):
+                try:
+                    float(photo["longitude"])
+                except:
+                    continue
+                html += """
+                        var photo%s = new OpenLayers.LonLat(%s, %s).transform(
+                            new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
+                            popupClass = AutoSizeAnchoredMinSize;""" % \
+                                (idx, photo["longitude"], photo["latitude"])
+                        
+                html += """
+                            popupContentHTML = '<a href="%s"><img src="%s" witdth="50%%" height="50%%" /></a><br />Date: %s-%s-%s<br />License: %s';""" % \
+                                (photo["url"], photo["pathBase"], photo["dateTakenYear"], photo["dateTakenMonth"], photo["dateTakenDay"], \
+                                photo["license"])
+
+                html += """
+                            addMarker(photo%s, popupClass, popupContentHTML, true);""" % \
+                                (idx,)
+
+            html += "}\n</script>\n</head>\n"
+            html += '<body onload="getLocation();">\n'
+            html += """<h1>Geolocated photos for <a href="http://%s">%s</a></h1>\n""" % (address, address)
+            html += '<div id="mapdiv" style="width:100%;height:100%;"></div>\n'
+            html += "<br />\n"
+            html += "</body>\n</html>"
+
+# Finally print the web page.
+print("Content-type:text/html; Accept-Charset: utf-8")
+print("")
+print(html)