#!/usr/bin/env python from time import time from os import stat, environ from re import search def nice_size(file): size = stat(file).st_size KB = 1024. MB = 1024. * KB GB = 1024. * MB TB = 1024. * GB if size < KB: size, suffix = size, '' elif size < MB: size, suffix = size/KB, 'KB' elif size < GB: size, suffix = size/MB, 'MB' elif size < TB: size, suffix = size/GB, 'GB' else: size, suffix = size/TB, 'TB' if size < 10: return '%.1f %s' % (round(size,1), suffix) else: return '%d %s' % (round(size), suffix) def nice_time(time): if time < 15: return 'moments' if time < 90: return '%d seconds' % time if time < 60 * 60 * 1.5: return '%d minutes' % (time / 60.) if time < 24 * 60 * 60 * 1.5: return '%d hours' % (time / 3600.) if time < 7 * 24 * 60 * 60 * 1.5: return '%d days' % (time / 86400.) if time < 30 * 24 * 60 * 60 * 1.5: return '%d weeks' % (time / 604800.) return '%d months' % (time / 2592000.) def file_info(file, name): size = nice_size(file) hash = search(r'\w{32}', open(file+'.md5', 'r').read()).group(0) date = nice_time(time() - stat(file).st_mtime) return '%(name)s
%(size)s, created %(date)s ago.
md5: %(hash)s.' % locals() planet_link = file_info('history-latest.osm.bz2', 'Latest Full History Planet XML File') planet_pbf_link = file_info('../../pbf/full-history/history-latest.osm.pbf', 'Latest Full History Planet PBF File') print """ Index of /planet/full-history

Planet OSM

The files found here are complete copies of the OpenStreetMap.org database, including editing history. These are published under an Open Data Commons Open Database License 1.0 licensed. For more information, see the project wiki.

Complete OSM Data History

Using The Data

Extracts & Mirrors

%(planet_link)s

%(planet_pbf_link)s

The full history planet file contains the full editing history of the OpenStreetMap database in both XML and custom PBF formats.

You are granted permission to use OpenStreetMap data by the OpenStreetMap License, which also describes your obligations.

You can process the file or extracts with a variety of tools, although some tools for processing OSM data will only work on 'current' planets and will not process a 'history' planet available here.

The complete history planet is extremely large, so you may prefer to use one of the available extracts (individual countries or states) from third parties.

If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the OpenStreetMap Data Working Group.

""" % locals()