From 2578592cc752df4eb6e7b8099c28f682d6521b48 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Thu, 15 Oct 2020 22:10:42 -0700 Subject: [PATCH] Move ratingKey, title, and titleSort to front of csv headers --- plexpy/exporter.py | 3 +++ plexpy/helpers.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/plexpy/exporter.py b/plexpy/exporter.py index b20d96d5..3e4fc909 100644 --- a/plexpy/exporter.py +++ b/plexpy/exporter.py @@ -1728,6 +1728,9 @@ class Export(object): if self.file_format == 'csv': csv_data = helpers.flatten_dict(result) csv_headers = sorted(set().union(*csv_data), key=helpers.sort_attrs) + # Move ratingKey, title, and titleSort to front of headers + for key in ('titleSort', 'title', 'ratingKey'): + csv_headers = helpers.move_to_front(csv_headers, key) with open(filepath, 'w', encoding='utf-8', newline='') as outfile: writer = csv.DictWriter(outfile, csv_headers) writer.writeheader() diff --git a/plexpy/helpers.py b/plexpy/helpers.py index 55cba024..26c7378d 100644 --- a/plexpy/helpers.py +++ b/plexpy/helpers.py @@ -1465,6 +1465,14 @@ def dict_to_xml(d, root_node=None, indent=None, level=0): return xml +def move_to_front(l, value): + try: + l.insert(0, l.pop(l.index(value))) + except (ValueError, IndexError): + pass + return l + + def is_hdr(bit_depth, color_space): bit_depth = cast_to_int(bit_depth) return bit_depth > 8 and color_space == 'bt2020nc'