diff --git a/data/interfaces/default/export_modal.html b/data/interfaces/default/export_modal.html
index c7650007..751233ec 100644
--- a/data/interfaces/default/export_modal.html
+++ b/data/interfaces/default/export_modal.html
@@ -101,10 +101,10 @@ DOCUMENTATION :: END
@@ -117,10 +117,10 @@ DOCUMENTATION :: END
diff --git a/plexpy/exporter.py b/plexpy/exporter.py
index e079561f..13df3477 100644
--- a/plexpy/exporter.py
+++ b/plexpy/exporter.py
@@ -94,12 +94,13 @@ class Export(object):
}
METADATA_LEVELS = (0, 1, 2, 3, 9)
MEDIA_INFO_LEVELS = (0, 1, 2, 3, 9)
+ IMAGE_LEVELS = (0, 1, 2, 9)
FILE_FORMATS = ('csv', 'json', 'xml', 'm3u8')
EXPORT_TYPES = ('all', 'collection', 'playlist')
def __init__(self, section_id=None, user_id=None, rating_key=None, file_format='csv',
metadata_level=1, media_info_level=1,
- thumb_level=False, art_level=False,
+ thumb_level=0, art_level=0,
custom_fields='', export_type=None):
self.section_id = helpers.cast_to_int(section_id) or None
self.user_id = helpers.cast_to_int(user_id) or None
@@ -107,8 +108,8 @@ class Export(object):
self.file_format = str(file_format).lower()
self.metadata_level = helpers.cast_to_int(metadata_level)
self.media_info_level = helpers.cast_to_int(media_info_level)
- self.thumb_level = thumb_level
- self.art_level = art_level
+ self.thumb_level = helpers.cast_to_int(thumb_level)
+ self.art_level = helpers.cast_to_int(art_level)
self.custom_fields = custom_fields.replace(' ', '')
self._custom_fields = {}
self.export_type = export_type or 'all'
@@ -1469,6 +1470,10 @@ class Export(object):
msg = "Export called with invalid metadata_level '{}'.".format(self.metadata_level)
elif self.media_info_level not in self.MEDIA_INFO_LEVELS:
msg = "Export called with invalid media_info_level '{}'.".format(self.media_info_level)
+ elif self.thumb_level not in self.IMAGE_LEVELS:
+ msg = "Export called with invalid thumb_level '{}'.".format(self.thumb_level)
+ elif self.art_level not in self.IMAGE_LEVELS:
+ msg = "Export called with invalid art_level '{}'.".format(self.art_level)
elif self.file_format not in self.FILE_FORMATS:
msg = "Export called with invalid file_format '{}'.".format(self.file_format)
elif self.export_type not in self.EXPORT_TYPES:
@@ -1560,8 +1565,15 @@ class Export(object):
logger.error("Tautulli Exporter :: %s", msg)
return msg
- self.thumb_level = int(self.thumb_level and self.MEDIA_TYPES[self.media_type][0])
- self.art_level = int(self.art_level and self.MEDIA_TYPES[self.media_type][1])
+ if not self.thumb_level and 'thumbFile' in self.custom_fields:
+ self.thumb_level = 10 # Custom thumb level
+ elif not self.MEDIA_TYPES[self.media_type][0]:
+ self.thumb_level = 0
+ if not self.art_level and 'artFile' in self.custom_fields:
+ self.art_level = 10 # Custom art level
+ elif not self.MEDIA_TYPES[self.media_type][1]:
+ self.art_level = 0
+
self._process_custom_fields()
self.filename = '{}.{}'.format(helpers.clean_filename(filename), self.file_format)
@@ -1661,11 +1673,6 @@ class Export(object):
if os.path.exists(images_folder):
for f in os.listdir(images_folder):
- if not self.thumb_level and f.endswith('.thumb.jpg'):
- self.thumb_level = 10 # Custom thumb level
- if not self.art_level and f.endswith('.art.jpg'):
- self.art_level = 10 # Custom art level
-
image_path = os.path.join(images_folder, f)
if os.path.isfile(image_path):
self.file_size += os.path.getsize(image_path)
@@ -1735,10 +1742,10 @@ class Export(object):
if level <= self.media_info_level:
export_attrs_set.update(attrs)
- if self.thumb_level:
+ if 0 < self.thumb_level <= 9:
if 'thumbFile' in media_attrs and self.MEDIA_TYPES[media_type][0]:
export_attrs_set.add('thumbFile')
- if self.art_level:
+ if 0 < self.art_level <= 9:
if 'artFile' in media_attrs and self.MEDIA_TYPES[media_type][1]:
export_attrs_set.add('artFile')
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 559686ff..e0696fc4 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -6633,7 +6633,7 @@ class WebInterface(object):
@addtoapi()
def export_metadata(self, section_id=None, user_id=None, rating_key=None, file_format='csv',
metadata_level=1, media_info_level=1,
- thumb_level=False, art_level=False,
+ thumb_level=0, art_level=0,
custom_fields='', export_type=None, **kwargs):
""" Export library or media metadata to a file
@@ -6667,8 +6667,8 @@ class WebInterface(object):
file_format=file_format,
metadata_level=metadata_level,
media_info_level=media_info_level,
- thumb_level=helpers.bool_true(thumb_level),
- art_level=helpers.bool_true(art_level),
+ thumb_level=thumb_level,
+ art_level=art_level,
custom_fields=custom_fields,
export_type=export_type).export()