diff --git a/pandora/archive/tasks.py b/pandora/archive/tasks.py index a9656dd1..7e543c45 100644 --- a/pandora/archive/tasks.py +++ b/pandora/archive/tasks.py @@ -68,11 +68,7 @@ def update_or_create_instance(volume, f): def update_files(user, volume, files): user = models.User.objects.get(username=user) volume, created = models.Volume.objects.get_or_create(user=user, name=volume) - all_files = [] - folder_depth = settings.CONFIG['site']['folderdepth'] - for f in files: - if len(f['path'].split('/')) == folder_depth: - all_files.append(f['oshash']) + all_files = [f['oshash'] for f in files] #remove deleted files removed = models.Instance.objects.filter(volume=volume).exclude(file__oshash__in=all_files) @@ -80,8 +76,7 @@ def update_files(user, volume, files): files__instances__in=removed.filter(file__selected=True)).distinct().values('itemId')] removed.delete() for f in files: - if f['oshash'] in all_files: - update_or_create_instance(volume, f) + update_or_create_instance(volume, f) for i in ids: i = Item.objects.get(itemId=i) i.update_selected() diff --git a/pandora/item/models.py b/pandora/item/models.py index 3c86282d..021f727c 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -72,13 +72,22 @@ def get_item(info, user=None, async=False): 'title': info.get('title', ''), 'director': info.get('director', []), } + if filter(lambda k: k['id'] == 'year', settings.CONFIG['itemKeys']): - item_data['year'] =info.get('year', '') + item_data['year'] = info.get('year', '') + + #add additional item metadata parsed from path + for key in [i for i in info + if i in set([k['id'] for k in settings.CONFIG['itemKeys']]) \ + and i not in ('language', ) \ + and i not in item_data]: + item_data[key] = info[key] for key in ('episodeTitle', 'episodeDirector', 'episodeYear', 'season', 'episode', 'seriesTitle'): if key in info and info[key]: item_data[key] = info[key] + if settings.USE_IMDB: if 'imdbId' in info and info['imdbId']: try: