# copyright 2007 ETH Zurich, DMATL
# author lorenz textor

OBJECTS = ['Silva Image', 'Silva File']
CONTAINERS = ['Silva Folder','Silva Publication']

result = {'folders':0, 'image_objects':[]}
errorFiles = []

def scan_images(this_container, result):
    for object in this_container.objectValues(OBJECTS):
        try:
            if object.get_file_size()==0:
                result['image_objects'].append(object)
        except:
            errorFiles.append(object)
    return result

def scan_images_in(this_container, result):
    result['folders'] = result['folders'] + 1
    result = scan_images(this_container, result)
    for folder in this_container.objectValues(CONTAINERS):
        result = scan_images_in(folder, result)
    return result

result = scan_images_in(container, result)
out_html = '<p>Number of folders checked: %i</p><p>Number of image objects missing on filesystem: %i</p><p>%s</p>'
image_info = ['url: %s, path: %s' % (object.absolute_url(),object.getFileSystemPath()) for object in result['image_objects']]
print out_html %(int(result['folders']), len(result['image_objects']), '<br />'.join(image_info))
if errorFiles:
    print '<p>Files whithout filesize:</p>'
    print '<br />'.join([x.absolute_url() for x in errorFiles])
return printed

