# -*- coding: iso-8859-1 -*-
"""
    Fuid

    this macro is used to find a problem of fuid

    @copyright: 2009 MoinMoin:ReimarBauer

    @license: GNU GPL, see COPYING for details.
"""
from MoinMoin.action import AttachFile
from MoinMoin.util import filesys
from MoinMoin.support.python_compatibility import hmac_new

def macro_Fuid(macro, attachment=unicode):
    request = macro.request
    pagename = request.page.page_name
    if attachment and AttachFile.exists(request, pagename, attachment):
        secret = request.cfg.secrets['action/cache']
        wikiname = request.cfg.interwikiname or request.cfg.siteid

        fuid = filesys.fuid(AttachFile.getFilename(request, pagename, attachment))

        hmac_data = u''.join([wikiname, pagename, attachment, repr(fuid)])
        hmac_data = hmac_data.encode('utf-8')
        key = hmac_new(secret, hmac_data).hexdigest()
        result= []
        fuid_str = """
        fuid:<br> 
              st_mtime: %d
              st_ino: %d
              st_size: %d
              fake_mtime: %d
""" % fuid
        result.append(fuid_str)
        result.append("key: %s<br>" % key)
        
        return '<br>'.join(result) 
        
    return "Attachment not found"