diff --git a/data/interfaces/default/js/tables/export_table.js b/data/interfaces/default/js/tables/export_table.js index 9657f87b..f5a173e0 100644 --- a/data/interfaces/default/js/tables/export_table.js +++ b/data/interfaces/default/js/tables/export_table.js @@ -61,22 +61,11 @@ export_table_options = { $(td).html('' + cellData + ''); } }, - "width": "8%", + "width": "6%", "className": "no-wrap" }, { "targets": [3], - "data": "file_format", - "createdCell": function (td, cellData, rowData, row, col) { - if (cellData !== '') { - $(td).html(cellData); - } - }, - "width": "8%", - "className": "no-wrap" - }, - { - "targets": [4], "data": "filename", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { @@ -86,8 +75,30 @@ export_table_options = { "width": "50%", "className": "no-wrap" }, + { + "targets": [4], + "data": "file_format", + "createdCell": function (td, cellData, rowData, row, col) { + if (cellData !== '') { + $(td).html(cellData); + } + }, + "width": "6%", + "className": "no-wrap" + }, { "targets": [5], + "data": "file_size", + "createdCell": function (td, cellData, rowData, row, col) { + if (cellData !== '' && cellData !== null) { + $(td).html(humanFileSize(cellData)); + } + }, + "width": "6%", + "className": "no-wrap" + }, + { + "targets": [6], "data": "complete", "createdCell": function (td, cellData, rowData, row, col) { if (cellData === 1 && rowData['exists']) { @@ -100,11 +111,11 @@ export_table_options = { $(td).html(' Not Found'); } }, - "width": "8%", + "width": "7%", "className": "export_download" }, { - "targets": [6], + "targets": [7], "data": null, "createdCell": function (td, cellData, rowData, row, col) { if (rowData['complete'] !== 0) { @@ -113,7 +124,7 @@ export_table_options = { $(td).html(' Delete'); } }, - "width": "8%", + "width": "7%", "className": "export_delete" } ], diff --git a/data/interfaces/default/library.html b/data/interfaces/default/library.html index 54a08851..ee7c1681 100644 --- a/data/interfaces/default/library.html +++ b/data/interfaces/default/library.html @@ -342,8 +342,9 @@ DOCUMENTATION :: END Exported At Media Type Rating Key - Format Filename + File Format + File Size Download Delete diff --git a/plexpy/__init__.py b/plexpy/__init__.py index 643920f5..2f6833a4 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -794,7 +794,7 @@ def dbcheck(): c_db.execute( 'CREATE TABLE IF NOT EXISTS exports (id INTEGER PRIMARY KEY AUTOINCREMENT, ' 'timestamp INTEGER, section_id INTEGER, rating_key INTEGER, media_type TEXT, ' - 'file_format TEXT, filename TEXT, complete INTEGER DEFAULT 0)' + 'filename TEXT, file_format TEXT, file_size INTEGER DEFAULT 0, complete INTEGER DEFAULT 0)' ) # Upgrade sessions table from earlier versions diff --git a/plexpy/exporter.py b/plexpy/exporter.py index 96d26f34..e6844255 100644 --- a/plexpy/exporter.py +++ b/plexpy/exporter.py @@ -962,6 +962,8 @@ def _real_export(export_id, items, attrs, file_format, filename): writer.writeheader() writer.writerows(flatten_result) + file_size = os.path.getsize(filepath) + except Exception as e: import traceback traceback.print_exc() @@ -976,7 +978,7 @@ def _real_export(export_id, items, attrs, file_format, filename): if not success: return - set_export_state(export_id=export_id) + set_export_state(export_id=export_id, file_size=file_size) logger.info("Tautulli Exporter :: Successfully exported to '%s'", filepath) @@ -1010,14 +1012,15 @@ def add_export(timestamp, section_id, rating_key, media_type, file_format, filen return False -def set_export_state(export_id, success=True): +def set_export_state(export_id, file_size=None, success=True): if success: complete = 1 else: complete = -1 keys = {'id': export_id} - values = {'complete': complete} + values = {'complete': complete, + 'file_size': file_size} db = database.MonitorDatabase() db.upsert(table_name='exports', key_dict=keys, value_dict=values) @@ -1083,8 +1086,9 @@ def get_export_datatable(section_id=None, rating_key=None, kwargs=None): 'exports.section_id', 'exports.rating_key', 'exports.media_type', - 'exports.file_format', 'exports.filename', + 'exports.file_format', + 'exports.file_size', 'exports.complete' ] try: @@ -1113,8 +1117,9 @@ def get_export_datatable(section_id=None, rating_key=None, kwargs=None): 'rating_key': item['rating_key'], 'media_type': item['media_type'], 'media_type_title': media_type_title, - 'file_format': item['file_format'], 'filename': item['filename'], + 'file_format': item['file_format'], + 'file_size': item['file_size'], 'complete': item['complete'], 'exists': exists }