PATH_LAYOUT = '%Y/%m-%b/%d-%a/'
FILENAME_LAYOUT = '%Hh%M'
+if isinstance(BASE_DIR, basestring):
+ BASE_DIR = [BASE_DIR]
+
+for i, dirname in enumerate(BASE_DIR):
+ if not dirname.endswith('/'):
+ BASE_DIR[i] = dirname + '/'
+
syslog.openlog('pigebox')
d = cgi.parse()
else:
ceil_end = ceil_end.replace(minute=(1+(ceil_end.minute/15))*15)
-if type(BASE_DIR) is str:
- os.chdir(BASE_DIR)
-
-def get_filenames():
- path = start.strftime(PATH_LAYOUT)
+def get_filenames(base_dir):
+ path = os.path.join(base_dir, start.strftime(PATH_LAYOUT))
if not path:
filenames = [x for x in os.listdir('.')]
else:
filenames = [os.path.join(path, x) for x in os.listdir(path)]
if end.hour < start.hour:
- path = end.strftime(PATH_LAYOUT)
+ path = os.path.join(base_dir, end.strftime(PATH_LAYOUT))
if os.path.exists(path):
filenames.extend([os.path.join(path, x) for x in os.listdir(path)])
- filenames.sort()
filenames = [x for x in filenames if
- x >= floor_start.strftime(PATH_LAYOUT + FILENAME_LAYOUT) and
- x < ceil_end.strftime(PATH_LAYOUT + FILENAME_LAYOUT)]
+ x[len(base_dir):] >= floor_start.strftime(PATH_LAYOUT + FILENAME_LAYOUT) and
+ x[len(base_dir):] < ceil_end.strftime(PATH_LAYOUT + FILENAME_LAYOUT)]
return filenames
while True:
- if type(BASE_DIR) is list:
- filenames = []
- for base_dir in BASE_DIR:
- os.chdir(base_dir)
- filenames.extend([os.path.join(base_dir, x) for x in get_filenames()])
- filenames.sort()
- else:
- filenames = get_filenames()
+ filenames = []
+ for base_dir in BASE_DIR:
+ filenames.extend(get_filenames(base_dir))
+ filenames.sort()
without_extension = [os.path.splitext(x)[0] for x in filenames]
for f in without_extension: