Source code for sarracenia.flowcb.accept.hourtree

"""
Plugin hourtree.py:
    When receiving a file, insert an hourly directory into the local delivery path hierarchy.

Example:
    input A/B/c.gif  --> output A/B/<hour>/c.gif

Usage:
    flowcb sarracenia.flowcb.accept.hourtree.HourTree

"""

import logging
import sys, os, os.path, time, stat
from sarracenia.flowcb import FlowCB

logger = logging.getLogger(__name__)

[docs] class HourTree(FlowCB):
[docs] def __init__(self, options): super().__init__(options,logger)
def after_accept(self, worklist): for message in worklist.incoming: datestr = time.strftime('%H', time.localtime()) # pick the hour. message['new_dir'] += '/' + datestr # append the hourly element to the directory tree. # insert the additional hourly directory into the path of the file to be written. new_fname = message['new_file'].split('/') message['new_file'] = '/'.join(new_fname[0:-1]) + '/' + datestr + '/' + new_fname[-1]