From 8f86180f8f24ccb9dc3f4981d804b512c1ca152e Mon Sep 17 00:00:00 2001 From: j Date: Sat, 5 Nov 2016 15:55:06 +0100 Subject: [PATCH] update plugin --- mosireen.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mosireen.py b/mosireen.py index e758246..0848ea8 100644 --- a/mosireen.py +++ b/mosireen.py @@ -8,11 +8,12 @@ ''' import re import ox +import os def example_path(client): return '\t' + 'YYYY/MM_YYYY/DD_MM_YYYY/Location 1/Location 2/Subject 1/Shooter/Subject 2(optional)/MVI_2036.MOV' -def parse_path(client, path): +def parse_path(client, path, context): ''' args: client - Client instance @@ -20,18 +21,20 @@ def parse_path(client, path): return: return None if file is ignored, dict with parsed item information otherwise ''' - m = re.compile('^(\d{4})/(\d{2})_(\d{4})/(?P\d+)_(?P\d+)_(?P\d{4})/(?P.+?)/(?P.+?)/(?P.+?)/(?P.+?)/((?P.+?)/|).*').match(path) + m = re.compile('^(\d{4})/(\d{2}|NA)_(\d{4})/(?P\d+|NA)_(?P\d+|NA)_(?P\d{4})((-(?P\d+|NA)_(?P\d+|NA)_(?P\d{4}))?)/(?P.+?)/(?P.+?)/(?P.+?)/(?P.+?)/((?P.+?)/|).*').match(path) if not m: return None info = m.groupdict() date = '%s-%s-%s' % (info['year'], info['month'], info['day']) + if info['tilday']: + date = '%s-%s-%s - %s-%s-%s' % (info['year'], info['month'], info['day'], info['tilyear'],info['tilmonth'],info['tilday']) for key in info: if info[key]: info[key] = info[key].replace('_', ' ') - topic = [info['subject1']] + topic = info['subject1'].split(",") if info['subject2']: - topic.append(info['subject2']) + topic+=info['subject2'].split(",") title = "%s, %s (%s)" % (info['subject1'], info['subject2'], date) else: title = "%s (%s)" % (info['subject1'], date) @@ -50,4 +53,16 @@ def parse_path(client, path): r[key] = _info[key] return r - +def ignore_file(client, path): + ''' + return True if file should not even be considered. + i.e. to filter out .DS_Store, empty files + ''' + filename = os.path.basename(path) + if filename.startswith('._') \ + or filename in ('.DS_Store',) \ + or filename.endswith('~') \ + or not os.path.exists(path) \ + or os.stat(path).st_size == 0: + return True + return False