]> git.openstreetmap.org Git - chef.git/blob - cookbooks/planet/files/default/cgi/HEADER.cgi
community: Add discourse-post-voting plugin
[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 <p><div class="alert"><strong>WARNING</strong> Download speeds are currently restricted to 16 MB/s due to limited available capacity on our Internet connection. <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#BitTorrent">Please use torrents</a> or <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#Planet.osm_mirrors">a mirror</a> if possible.</div></p>
74 <table id="about">
75   <tr>
76     <th>
77         <h2>Complete OSM Data</h2>
78     </th>
79     <th>
80         <h2>Using The Data</h2>
81     </th>
82     <th>
83         <h2>Extracts &amp; Mirrors</h2>
84     </th>
85   </tr>
86   <tr>
87     <td>
88         <p>%(planet_link)s</p>
89         <p>%(changesets_link)s</p>
90         <p>%(planet_pbf_link)s</p>
91         <p>
92         Each week, a new and complete copy of all data in OpenStreetMap is made
93         available as both a compressed XML file and a custom PBF format file.
94         Also available is the <a href="planet/full-history">'history'</a> file
95         which contains not only up-to-date data but also older versions of data
96         and deleted data items.
97         <p>
98         </p>
99         A smaller file with complete metadata for all changes ('changesets') in
100         XML format is also available.
101         </p>
102     </td>
103     <td>
104         <p>
105         You are granted permission to use OpenStreetMap data by
106         <a href="https://osm.org/copyright">the OpenStreetMap License</a>, which also describes
107         your obligations.
108         </p>
109         <p>
110         You can <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#Processing_the_file">process the file</a>
111         or extracts with a variety of tools. <a href="https://wiki.openstreetmap.org/wiki/Osmosis">Osmosis</a>
112         is a general-purpose command-line tool for converting the data among different formats
113         and databases, and <a href="https://wiki.openstreetmap.org/wiki/Osm2pgsql">Osm2pgsql</a>
114         is a tool for importing the data into a Postgis database for rendering maps.
115         </p>
116         <p>
117         <a href="https://osmdata.openstreetmap.de/">Processed coastline data</a>
118         derived from OSM data is also needed for rendering usable maps.
119         </p>
120     </td>
121     <td>
122         <p>
123         The complete planet is very large, so you may prefer to use one of
124         <a href="https://wiki.openstreetmap.org/wiki/Planet.osm#Downloading">several periodic extracts</a>
125         (individual countries or states) from third parties. <a href="https://download.geofabrik.de/openstreetmap/">GeoFabrik.de</a>
126         and <a href="https://download.bbbike.org/osm/">BBBike.org</a> are two providers
127         of extracts with up-to-date worldwide coverage.
128         </p>
129     </td>
130   </tr>
131 </table>
132
133 <p>
134 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>.
135 </p>
136 """ % locals())