from osgeo import gdal
import datetime
import glob
import os
dirnames = []
links = []
for dirname in glob.glob('*'):
if not os.path.isdir(dirname):
continue
dirnames.append(dirname)
total_size = 0
set_files = set()
for dirname in sorted(dirnames):
if '_' not in dirname:
continue
filenames = []
readme_filename = None
for f in glob.glob(dirname + '/*'):
f = os.path.basename(f)
if f.startswith('README'):
assert not readme_filename
readme_filename = f
else:
filenames.append(f)
links.append('
')
for f in [readme_filename] + sorted(filenames):
assert f not in set_files
set_files.add(f)
full_filename = os.path.join(dirname, f)
ds = gdal.OpenEx(full_filename)
desc = ''
if ds:
imageDesc = ds.GetMetadataItem('TIFFTAG_IMAGEDESCRIPTION')
if imageDesc:
pos = imageDesc.find('. Converted from')
if pos >= 0:
imageDesc = imageDesc[0:pos]
desc = ': ' + imageDesc
size_str = ''
size = os.stat(full_filename).st_size
total_size += size
if size > 1024 * 1024:
size_str = '. Size: %.1f MB' % (size / (1024. * 1024))
if f.startswith('README'):
last_modified = ''
else:
last_modified = '. Last modified: ' + datetime.datetime.utcfromtimestamp(os.stat(full_filename).st_mtime).strftime("%Y/%m/%d")
links.append('- %s%s%s%s
' % (f, f, desc, size_str, last_modified))
total_size_str = '%d MB' % (total_size // (1024 * 1024))
content = '\n\n'
content += open('index.html.in', 'rt').read().replace('${LINKS_WILL_BE_ADDED_HERE_BY_REGENERATE_INDEX_HTML}', '\n'.join(links)).replace('${TOTAL_SIZE}', total_size_str)
open('index.html', 'wt').write(content)