from datetime import datetime, timedelta
import logging
import os
import pipes
 
 
# the time delta in hours. If no folder has been created within this
# delta, an event will be triggered
delta = 3
 
# the absolute path to the folder to check, always use forward slashes
folder = r'/set/path/to/folder/here'
 
 
format = logging.Formatter('[%(levelname)s] %(message)s')
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(format)
log = logging.getLogger('Check')
log.addHandler(consoleHandler)
log.setLevel(logging.DEBUG)
 
 
def contains_changes(folder):
    return datetime.today() - timedelta(hours = delta) < last_modified(folder)
 
def last_modified(dir):
    if not os.path.exists(dir):
        raise IOError('Dateipfad "%s" existiert nicht' % (dir))
    if not os.path.isdir(dir):
        raise IOError('Dateipfad "%s" ist kein Verzeichnis' % (dir))
    log.debug('Check "%s"' % dir)
    time = 0
    for entry in os.listdir(dir):
        path = os.path.join(dir, entry)
        if os.path.isdir(path):
            modified = os.path.getmtime(path)
            if modified > time:
                time = modified
    log.debug('Aktuellster Ordner: %s' % datetime.fromtimestamp(time))
    return datetime.fromtimestamp(time)
 
def trigger_event():
    log.debug('Trigger EventGhost event')
    eg.TriggerEvent('SendMailNotification')
 
 
if contains_changes(pipes.quote(folder)):
    trigger_event()

