#!/usr/bin/env python3
import email.policy
import hashlib
import sys
from email.mime.image import MIMEImage

def sha1(data):
    return hashlib.sha1(data).hexdigest()


def generate_image_data(*args, **kwargs):
    import base64 #XXX pillow is not available, add dummy image
    return base64.b64decode('''
iVBORw0KGgoAAAANSUhEUgAAAW4AAAALCAIAAADQjvCFAAACQklEQVR4nO1Y0XLDMAhzevv/X/Ye
emXUgCxIsnV36KGXpiAEwdjNGI1Go9FoNBqfgOOvBbxhzvm8OI6PEJbS8zROKSf5rZmNJTYC8GsU
ztWz3Iy+AhvLU9ZzVcUiHtdMC7ZxSeaU/pTXVsC2M/HzEuDcH0Qiv4cPmSACUs+c09ad8RrBggQy
olhiAzQfL/B65Ka+bzXbFsQ2NT1XVSziWa6x+BQz5tmCmQKLANGw7cztcydz/5pzytB1B1u0gWTn
a8Rpoy/2ro1le14sG8iZk4INF+XONLcFuWvhbd+1cTVvswBiQBndAQGogMJIT+0Asrgzc8GePqxs
rZl87mDP3x4ltl5aM94AsB7XIDqjubk/RJD8sEwpd4VHkwyUNeq5JXpUC14hZsbQVda0hb2R2RBc
tigWw6ARLSE+C33SwYsHjy1GITgpgOVdq5imzXYIUzGs0FriLLCXjT5M9y6Jk1lYHuzl/MFxHXQn
LbK0TWr/x8hSRfWtBQWDgGw+phpL39dONwysmHKsQl4pEty+kWO299wd227vBaSWn0Y0MkgvUvN9
PeaMEnKuj91/3ZNIZXvtCKudArIQHhlbVzFHsdzoWZ4tlc2L0YNDnPmJMV46ufwILHNtNTFeNc33
9djbiwZ98WOh3kHI54iHKLMONXPhYrxvU8Js5R3BSxZ8/GMUYti4fKztzZQNflgRj2sDKm+/bsMt
BoC5fAdEtF5LLpikXEOXZwTrYuuFNWd7NaX5jnPNP0OXoNFonEXPkUbjJnwDXFl4HuJNjS8AAAAA
SUVORK5CYII=''')


msg = email.message_from_file(sys.stdin, policy=email.policy.default)
for part in msg.walk():
    if part.get_content_maintype() == 'image':
        # generate replacement image
        text = "name: {}, sha1: {}".format(
            part.get_filename() or 'unknown', sha1(part.get_content()))
        subtype = part.get_content_subtype()
        mime_image = MIMEImage(generate_image_data(text, subtype), subtype)
                              #Python3.6: policy=email.policy.default)

        # replace
        part.set_payload(mime_image.get_payload())
        del part['Content-Type']  # NOTE: part.clear_content() removes too much
        del part['Content-Transfer-Encoding']
        del part['MIME-Version']
        for k, v in mime_image.items():  # copy new Content-Type, etc headers
            part[k] = v

print(msg)