Example ModuleΒΆ

from __future__ import division, absolute_import, with_statement, print_function, unicode_literals

TYPE = "Example"
NAME = "include example"
REQUIRES = ["libmagic", "MD5"]
DEFAULTCONF = {
'ENABLED': True,
}

def check(conf=DEFAULTCONF):
# If the config disabled the module don't run
        if not conf['ENABLED']:
return False
        # If one of the required modules failed, don't run
        if None in REQUIRES:
                return False
        return True

def scan(filelist, conf=DEFAULTCONF):
        # Define our results array
        results = []
        # Pull out the libmagic results and metadata
        libmagicresults, libmagicmeta = REQUIRES[0]

        # Pull out the md5 results and metadata
        md5results, md5meta = REQUIRES[1]
        # Make the md5 results a dictionary
        md5dict = dict(md5results)

        # Run through each value in the libmagic results
        for filename, libmagicresult in libmagicresults:
                if libmagicresult.startswith('PDF document'):
                # If the file's md5 is present we will use that in the results
                if filename in md5dict:
                        results.append((filename, md5dict[filename] + " is a pdf"))
                # If we don't know the md5 use the filename instead
                else:
                        results.append((filename, "is a pdf"))

        # Create out metadata dictionary
        metadata = {}
        metadata["Name"] = NAME
        metadata["Type"] = TYPE

        # Return our super awesome results
        return (results, metadata)