Rename include_thumb/art to thumb/art_level

This commit is contained in:
JonnyWong16 2020-10-08 09:14:37 -07:00
parent f141c67ceb
commit 9a7627e35e
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
5 changed files with 91 additions and 57 deletions

View file

@ -84,7 +84,7 @@ DOCUMENTATION :: END
<p class="help-block">Add additional fields to the selected media info export level.</p>
</div>
<div class="form-group">
<label for="export_file_format">File Format</label>
<label for="export_file_format">Data File Format</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_file_format" name="export_file_format">
@ -94,22 +94,38 @@ DOCUMENTATION :: END
</select>
</div>
</div>
<p class="help-block">Select the export file format.</p>
<p class="help-block">Select the export data file format.</p>
</div>
<div class="form-group">
<label for="export_thumb_level">Poster / Cover Image Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_thumb_level" name="export_thumb_level">
<option value="0" selected>Level 0 - None</option>
<option value="1">Level 1 - Custom Uploaded Posters / Covers Only</option>
<option value="1">Level 2 - Locked Posters / Covers Only</option>
<option value="1">Level 9 - All Posters / Covers</option>
</select>
</div>
</div>
<div class="checkbox">
<label>
<input type="checkbox" id="export_include_thumb" name="export_include_thumb" value="1"> Export poster / cover images
</label>
<p class="help-block">
Enable to export poster and cover image files.<br>Note: Only applies to ${thumb_media_types}.
Select the level to export poster and cover image files.<br>Note: Only applies to ${thumb_media_types}.
</p>
</div>
<div class="checkbox">
<label>
<input type="checkbox" id="export_include_art" name="export_include_art" value="1"> Export background artwork images
</label>
<div class="form-group">
<label for="export_art_level">Background Artwork Image Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_art_level" name="export_art_level">
<option value="0" selected>Level 0 - None</option>
<option value="1">Level 1 - Custom Uploaded Artwork Only</option>
<option value="1">Level 2 - Locked Artwork Only</option>
<option value="1">Level 9 - All Artwork</option>
</select>
</div>
</div>
<p class="help-block">
Enable to export background artwork image files.<br>Note: Only applies to ${art_media_types}.
Select the level to export background artwork image files.<br>Note: Only applies to ${art_media_types}.
</p>
</div>
<p class="help-block">
@ -197,15 +213,15 @@ DOCUMENTATION :: END
if ($(this).val() === 'm3u8') {
$('#metadata_export_level_select').prop('disabled', true);
$('#media_info_export_level_select').prop('disabled', true);
$("#export_include_thumb").prop('disabled', true);
$("#export_include_art").prop('disabled', true);
$("#export_thumb_level").prop('disabled', true);
$("#export_art_level").prop('disabled', true);
export_custom_metadata_fields.disable();
export_custom_media_info_fields.disable();
} else {
$('#metadata_export_level_select').prop('disabled', false);
$('#media_info_export_level_select').prop('disabled', false);
$("#export_include_thumb").prop('disabled', false);
$("#export_include_art").prop('disabled', false);
$("#export_thumb_level").prop('disabled', false);
$("#export_art_level").prop('disabled', false);
export_custom_metadata_fields.enable();
export_custom_media_info_fields.enable();
}
@ -218,8 +234,8 @@ DOCUMENTATION :: END
var metadata_export_level = $('#metadata_export_level_select option:selected').val();
var media_info_export_level = $('#media_info_export_level_select option:selected').val();
var file_format = $('#export_file_format option:selected').val();
var include_thumb = $("#export_include_thumb").is(':checked') ? 1 : 0;
var include_art = $("#export_include_art").is(':checked') ? 1 : 0;
var thumb_level = $("#export_thumb_level option:selected").val();
var art_level = $("#export_art_level option:selected").val();
var custom_fields = [
$('#export_custom_metadata_fields').val(),
$('#export_custom_media_info_fields').val()
@ -235,8 +251,8 @@ DOCUMENTATION :: END
metadata_level: metadata_export_level,
media_info_level: media_info_export_level,
file_format: file_format,
include_thumb: include_thumb,
include_art: include_art,
thumb_level: thumb_level,
art_level: art_level,
custom_fields: custom_fields,
export_type: export_type
},

View file

@ -85,7 +85,7 @@ export_table_options = {
"createdCell": function (td, cellData, rowData, row, col) {
if (cellData !== '') {
var images = '';
if (rowData['include_thumb'] || rowData['include_art']) {
if (rowData['thumb_level'] || rowData['art_level']) {
images = ' + images';
}
$(td).html(cellData + images);

View file

@ -800,7 +800,7 @@ def dbcheck():
'timestamp INTEGER, section_id INTEGER, user_id INTEGER, rating_key INTEGER, media_type TEXT, '
'filename TEXT, file_format TEXT, '
'metadata_level INTEGER, media_info_level INTEGER, '
'include_thumb INTEGER DEFAULT 0, include_art INTEGER DEFAULT 0, '
'thumb_level INTEGER DEFAULT 0, art_level INTEGER DEFAULT 0, '
'custom_fields TEXT, '
'file_size INTEGER DEFAULT 0, complete INTEGER DEFAULT 0)'
)
@ -2161,6 +2161,24 @@ def dbcheck():
'UPDATE notifiers SET agent_label = "macOS Notification Center" WHERE agent_label = "OSX Notify"'
)
# Upgrade exports table from earlier versions
try:
c_db.execute('SELECT thumb_level FROM exports')
except sqlite3.OperationalError:
logger.debug("Altering database. Updating database table exports.")
c_db.execute(
'ALTER TABLE exports ADD COLUMN thumb_level INTEGER DEFAULT 0'
)
c_db.execute(
'UPDATE exports SET thumb_level = 9 WHERE include_thumb = 1'
)
c_db.execute(
'ALTER TABLE exports ADD COLUMN art_level INTEGER DEFAULT 0'
)
c_db.execute(
'UPDATE exports SET art_level = 9 WHERE include_art = 1'
)
# Add "Local" user to database as default unauthenticated user.
result = c_db.execute('SELECT id FROM users WHERE username = "Local"')
if not result.fetchone():

View file

@ -99,7 +99,7 @@ class Export(object):
def __init__(self, section_id=None, user_id=None, rating_key=None, file_format='csv',
metadata_level=1, media_info_level=1,
include_thumb=False, include_art=False,
thumb_level=False, art_level=False,
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 +107,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.include_thumb = include_thumb
self.include_art = include_art
self.thumb_level = thumb_level
self.art_level = art_level
self.custom_fields = custom_fields.replace(' ', '')
self._custom_fields = {}
self.export_type = export_type or 'all'
@ -127,8 +127,8 @@ class Export(object):
if self.file_format == 'm3u8':
self.metadata_level = 1
self.media_info_level = 1
self.include_thumb = False
self.include_art = False
self.thumb_level = 0
self.art_level = 0
self.custom_fields = ''
def return_attrs(self, media_type, flatten=False):
@ -1494,9 +1494,9 @@ class Export(object):
if self.rating_key:
logger.debug(
"Tautulli Exporter :: Export called with rating_key %s, "
"metadata_level %d, media_info_level %d, include_thumb %s, include_art %s",
"metadata_level %d, media_info_level %d, thumb_level %s, art_level %s",
self.rating_key, self.metadata_level, self.media_info_level,
self.include_thumb, self.include_art)
self.thumb_level, self.art_level)
self.obj = plex.get_item(self.rating_key)
self.media_type = 'photoalbum' if self.is_photoalbum(self.obj) else self.obj.type
@ -1516,10 +1516,10 @@ class Export(object):
elif self.user_id:
logger.debug(
"Tautulli Exporter :: Export called with user_id %s, "
"metadata_level %d, media_info_level %d, include_thumb %s, include_art %s, "
"metadata_level %d, media_info_level %d, thumb_level %s, art_level %s, "
"export_type %s",
self.user_id, self.metadata_level, self.media_info_level,
self.include_thumb, self.include_art, self.export_type)
self.thumb_level, self.art_level, self.export_type)
self.obj = plex.plex
self.media_type = self.export_type
@ -1533,10 +1533,10 @@ class Export(object):
elif self.section_id:
logger.debug(
"Tautulli Exporter :: Export called with section_id %s, "
"metadata_level %d, media_info_level %d, include_thumb %s, include_art %s, "
"metadata_level %d, media_info_level %d, thumb_level %s, art_level %s, "
"export_type %s",
self.section_id, self.metadata_level, self.media_info_level,
self.include_thumb, self.include_art, self.export_type)
self.thumb_level, self.art_level, self.export_type)
self.obj = plex.get_library(str(self.section_id))
if self.export_type == 'all':
@ -1560,8 +1560,8 @@ class Export(object):
logger.error("Tautulli Exporter :: %s", msg)
return msg
self.include_thumb = self.include_thumb and self.MEDIA_TYPES[self.media_type][0]
self.include_art = self.include_art and self.MEDIA_TYPES[self.media_type][1]
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])
self._process_custom_fields()
self.filename = '{}.{}'.format(helpers.clean_filename(filename), self.file_format)
@ -1586,8 +1586,8 @@ class Export(object):
'filename': self.filename,
'metadata_level': self.metadata_level,
'media_info_level': self.media_info_level,
'include_thumb': self.include_thumb,
'include_art': self.include_art,
'thumb_level': self.thumb_level,
'art_level': self.art_level,
'custom_fields': self.custom_fields}
db = database.MonitorDatabase()
@ -1607,8 +1607,8 @@ class Export(object):
keys = {'id': self.export_id}
values = {'complete': complete,
'file_size': self.file_size,
'include_thumb': self.include_thumb,
'include_art': self.include_art}
'thumb_level': self.thumb_level,
'art_level': self.art_level}
db = database.MonitorDatabase()
db.upsert(table_name='exports', key_dict=keys, value_dict=values)
@ -1661,10 +1661,10 @@ class Export(object):
if os.path.exists(images_folder):
for f in os.listdir(images_folder):
if self.include_thumb is False and f.endswith('.thumb.jpg'):
self.include_thumb = True
if self.include_art is False and f.endswith('.art.jpg'):
self.include_art = True
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):
@ -1735,10 +1735,10 @@ class Export(object):
if level <= self.media_info_level:
export_attrs_set.update(attrs)
if self.include_thumb:
if self.thumb_level:
if 'thumbFile' in media_attrs and self.MEDIA_TYPES[media_type][0]:
export_attrs_set.add('thumbFile')
if self.include_art:
if self.art_level:
if 'artFile' in media_attrs and self.MEDIA_TYPES[media_type][1]:
export_attrs_set.add('artFile')
@ -1849,7 +1849,7 @@ class Export(object):
def get_export(export_id):
db = database.MonitorDatabase()
result = db.select_single('SELECT filename, file_format, include_thumb, include_art, complete '
result = db.select_single('SELECT filename, file_format, thumb_level, art_level, complete '
'FROM exports WHERE id = ?',
[export_id])
@ -1883,7 +1883,7 @@ def delete_export(export_id):
def delete_all_exports():
db = database.MonitorDatabase()
result = db.select('SELECT filename, include_thumb, include_art FROM exports')
result = db.select('SELECT filename FROM exports')
logger.info("Tautulli Exporter :: Deleting all exports from the database.")
@ -1937,8 +1937,8 @@ def get_export_datatable(section_id=None, user_id=None, rating_key=None, kwargs=
'exports.file_format',
'exports.metadata_level',
'exports.media_info_level',
'exports.include_thumb',
'exports.include_art',
'exports.thumb_level',
'exports.art_level',
'exports.custom_fields',
'exports.file_size',
'exports.complete'
@ -1974,8 +1974,8 @@ def get_export_datatable(section_id=None, user_id=None, rating_key=None, kwargs=
'file_format': item['file_format'],
'metadata_level': item['metadata_level'],
'media_info_level': item['media_info_level'],
'include_thumb': item['include_thumb'],
'include_art': item['include_art'],
'thumb_level': item['thumb_level'],
'art_level': item['art_level'],
'custom_fields': item['custom_fields'],
'file_size': item['file_size'],
'complete': item['complete'],

View file

@ -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,
include_thumb=False, include_art=False,
thumb_level=False, art_level=False,
custom_fields='', export_type=None, **kwargs):
""" Export library or media metadata to a file
@ -6647,8 +6647,8 @@ class WebInterface(object):
file_format (str): csv (default), json, or xml
metadata_level (int): The level of metadata to export (default 1)
media_info_level (int): The level of media info to export (default 1)
include_thumb (bool): True to export poster/cover images
include_art (bool): True to export background artwork images
thumb_level (int): The level of poster/cover images to export (default 0)
art_level (int): The level of background artwork images to export (default 0)
custom_fields (str): Comma separated list of custom fields to export
in addition to the export level selected
export_type (str): collection or playlist for library/user export,
@ -6667,8 +6667,8 @@ class WebInterface(object):
file_format=file_format,
metadata_level=metadata_level,
media_info_level=media_info_level,
include_thumb=helpers.bool_true(include_thumb),
include_art=helpers.bool_true(include_art),
thumb_level=helpers.bool_true(thumb_level),
art_level=helpers.bool_true(art_level),
custom_fields=custom_fields,
export_type=export_type).export()
@ -6759,7 +6759,7 @@ class WebInterface(object):
if result and result['complete'] == 1 and result['exists']:
export_filepath = exporter.get_export_filepath(result['filename'])
if result['include_thumb'] or result['include_art']:
if result['thumb_level'] or result['art_level']:
zip_filename = '{}.zip'.format(os.path.splitext(result['filename'])[0])
images_folder = exporter.get_export_filepath(result['filename'], images=True)