]> git.openstreetmap.org Git - chef.git/blob - cookbooks/planet/files/default/cgi/HEADER.cgi
Add content text to link
[chef.git] / cookbooks / planet / files / default / cgi / HEADER.cgi
1 #!/usr/bin/python3
2
3 from time import time
4 from os import stat, environ
5 from re import search
6
7 def nice_size(file):
8     size = stat(file).st_size
9     KB = 1024.
10     MB = 1024. * KB
11     GB = 1024. * MB
12     TB = 1024. * GB
13
14     if size < KB:
15         size, suffix = size, ''
16     elif size < MB:
17         size, suffix = size/KB, 'KB'
18     elif size < GB:
19         size, suffix = size/MB, 'MB'
20     elif size < TB:
21         size, suffix = size/GB, 'GB'
22     else:
23         size, suffix = size/TB, 'TB'
24
25     if size < 10:
26         return '%.1f %s' % (round(size,1), suffix)
27     else:
28         return '%d %s' % (round(size), suffix)
29
30 def nice_time(time):
31     if time < 15:
32         return 'moments'
33     if time < 90:
34         return '%d seconds' % time
35     if time < 60 * 60 * 1.5:
36         return '%d minutes' % (time / 60.)
37     if time < 24 * 60 * 60 * 1.5:
38         return '%d hours' % (time / 3600.)
39     if time < 7 * 24 * 60 * 60 * 1.5:
40         return '%d days' % (time / 86400.)
41     if time < 30 * 24 * 60 * 60 * 1.5:
42         return '%d weeks' % (time / 604800.)
43
44     return '%d months' % (time / 2592000.)
45
46 def file_info(file, rss_file, name):
47     torrent_file = file + '.torrent'
48     size = nice_size(file)
49     hash = search(r'\w{32}', open(file+'.md5', 'r').read()).group(0)
50     date = nice_time(time() - stat(file).st_mtime)
51
52     return '<b><a href="%(file)s">%(name)s</a> (<a href="%(torrent_file)s">torrent</a>) (<a href="%(rss_file)s">RSS</a>)</b><br><b>%(size)s</b>, created %(date)s ago.<br><small>md5: %(hash)s</small>.' % locals()
53
54 planet_link = file_info('planet/planet-latest.osm.bz2', 'planet/planet-bz2-rss.xml', 'Latest Weekly Planet XML File')
55 changesets_link = file_info('planet/changesets-latest.osm.bz2', 'planet/changesets-bz2-rss.xml', 'Latest Weekly Changesets')
56 planet_pbf_link = file_info('pbf/planet-latest.osm.pbf', 'pbf/planet-pbf-rss.xml', 'Latest Weekly Planet PBF File')
57
58 print("""
59 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
60 <html>
61  <head>
62   <title>Index of /</title>
63   <link href="https://planet.openstreetmap.org/style.css" rel="stylesheet" type="text/css">
64  </head>
65  <body>
66 <img id="logo" src="https://planet.openstreetmap.org/logo.png" alt="OSM logo" width="128" height="128">
67 <h1>Planet OSM</h1>
68
69 <p>
70 The files found here are regularly-updated, complete copies of the OpenStreetMap.org
71 database, and those published before the 12 September 2012 are distributed under a Creative Commons Attribution-ShareAlike 2.0 license, those published after are  Open Data Commons Open Database License 1.0 licensed. For more information, <a href="https://wiki.openstreetmap.org/wiki/Planet.osm">see the project wiki</a>.
72 </p>
73 <table id="about">
74   <tr>
75     <th>
76         <h2>Complete OSM Data</h2>
77     </th>
78     <th>
79         <h2>Using The Data</h2>
80     </th>
81     <th>
82         <h2>Extracts &amp; Mirrors</h2>
83     </th>
84   </tr>
85   <tr>
86     <td>
87         <p>%(planet_link)s</p>
88         <p>%(changesets_link)s</p>
89         <p>%(planet_pbf_link)s</p>
90         <p>
91         Each week, a new and complete copy of all data in OpenStreetMap is made
92         available as both a compressed XML file and a custom PBF format file.
93         Also available is the <a href="planet/full-history">'history'</a> file
94         which contains not only up-to-date data but also older versions of data
95         and deleted data items.
96         <p>
97         </p>
98         A smaller file with complete metadata for all changes ('changesets') in
99         XML format is also available.
100         </p>
101     </td>
102     <td>
103         <p>
104         You are granted permission to use OpenStreetMap data by
105         <a href="https://osm.org/copyright">the OpenStreetMap License</a>, which also describes
106         your obligations.
107         </p>
108         <p>
109         You can <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#Processing_the_file">process the file</a>
110         or extracts with a variety of tools. <a href="https://wiki.openstreetmap.org/wiki/Osmosis">Osmosis</a>
111         is a general-purpose command-line tool for converting the data among different formats
112         and databases, and <a href="https://wiki.openstreetmap.org/wiki/Osm2pgsql">Osm2pgsql</a>
113         is a tool for importing the data into a Postgis database for rendering maps.
114         </p>
115         <p>
116         <a href="https://osmdata.openstreetmap.de/">Processed coastline data</a>
117         derived from OSM data is also needed for rendering usable maps.
118         </p>
119     </td>
120     <td>
121         <p>
122         The complete planet is very large, so you may prefer to use one of
123         <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#Downloading">several periodic extracts</a>
124         (individual countries or states) from third parties. <a href="https://download.geofabrik.de/openstreetmap/">GeoFabrik.de</a>
125         and <a href="https://download.bbbike.org/osm/">BBBike.org</a> are two providers
126         of extracts with up-to-date worldwide coverage.
127         </p>
128         <h3 id="supporting-osm">Supporting OSM</h3>
129         <p>OSM data is free to use, but is not free to make or host. The
130         stability and accuracy of OSM.org depends on its volunteers and
131         donations from its users. Please consider 
132         <a href="https://supporting.openstreetmap.org">making an annual
133         recurring gift</a> to OSM to support the infrastructure,
134         tools, working groups, and other incentives needed to
135         create the map.</p>
136         <p>Donations can be made at <a href="supporting.openstreetmap.org/donate">supporting.openstreetmap.org/donate</a>.
137         Suggestions assume $US or equivalent.</p>
138         <ul>
139         <li>individual user, revenue &lt; $5k/yr, $50-$100</li>
140         <li>small organization, revenue $5-10k/yr, $250-$500</li>
141         <li>medium organization, revenue $10-100k/yr, $500-$1000</li>
142         </ul>
143         <p>Large businesses with revenue in the hundreds of thousands to
144         millions should <a
145         href="https://osmfoundation.org/wiki/Join_as_a_corporate_member">join as
146         a corporate members</a> to receive additional benefits.</p>
147     </td>
148   </tr>
149 </table>
150
151 <p>
152 If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the <a href="https://wiki.openstreetmap.org/wiki/Data_working_group">OpenStreetMap Data Working Group</a>.
153 </p>
154 """ % locals())