From 1c245683addc764c8f235c0ed50994d813e9558b Mon Sep 17 00:00:00 2001 From: croneter Date: Fri, 14 Jun 2019 12:38:01 +0200 Subject: [PATCH 1/3] Introduce limits to the number of videos shown in PKC widgets to speed them up --- resources/language/resource.language.en_gb/strings.po | 2 +- resources/lib/library_sync/nodes.py | 4 ++++ resources/settings.xml | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index fc35632d..c85caabd 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -1058,7 +1058,7 @@ msgstr "" # PKC Settings - Appearance Tweaks msgctxt "#39077" -msgid "Number of PMS items to show in widgets (e.g. \"On Deck\")" +msgid "Maximum number of videos to show in widgets" msgstr "" # PKC Settings - Plex diff --git a/resources/lib/library_sync/nodes.py b/resources/lib/library_sync/nodes.py index 369f37cb..82c32394 100644 --- a/resources/lib/library_sync/nodes.py +++ b/resources/lib/library_sync/nodes.py @@ -266,6 +266,7 @@ def node_recent(section, node_name): etree.SubElement(xml, 'label').text = node_name etree.SubElement(xml, 'icon').text = ICON_PATH etree.SubElement(xml, 'content').text = section.content + etree.SubElement(xml, 'limit').text = utils.settings('widgetLimit') etree.SubElement(xml, 'order', attrib={'direction': @@ -303,6 +304,7 @@ def node_recommended(section, node_name): etree.SubElement(xml, 'label').text = node_name etree.SubElement(xml, 'icon').text = ICON_PATH etree.SubElement(xml, 'content').text = section.content + etree.SubElement(xml, 'limit').text = utils.settings('widgetLimit') etree.SubElement(xml, 'order', attrib={'direction': @@ -357,6 +359,7 @@ def node_random(section, node_name): etree.SubElement(xml, 'label').text = node_name etree.SubElement(xml, 'icon').text = ICON_PATH etree.SubElement(xml, 'content').text = section.content + etree.SubElement(xml, 'limit').text = utils.settings('widgetLimit') etree.SubElement(xml, 'order', attrib={'direction': @@ -377,6 +380,7 @@ def node_lastplayed(section, node_name): etree.SubElement(xml, 'label').text = node_name etree.SubElement(xml, 'icon').text = ICON_PATH etree.SubElement(xml, 'content').text = section.content + etree.SubElement(xml, 'limit').text = utils.settings('widgetLimit') etree.SubElement(xml, 'order', attrib={'direction': diff --git a/resources/settings.xml b/resources/settings.xml index 79212504..68406395 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -158,6 +158,7 @@ + From 0bf7ada6e3217cc206f7bc40665a407c2067700b Mon Sep 17 00:00:00 2001 From: croneter Date: Fri, 14 Jun 2019 12:46:37 +0200 Subject: [PATCH 2/3] Delete Plex video node files when migrating to PKC version 2.8.2 --- resources/lib/migration.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/lib/migration.py b/resources/lib/migration.py index cc9c0f69..854679d2 100644 --- a/resources/lib/migration.py +++ b/resources/lib/migration.py @@ -36,4 +36,10 @@ def check_migration(): from .library_sync.sections import delete_files delete_files() + if not utils.compare_version(last_migration, '2.8.3'): + LOG.info('Migrating to version 2.8.2') + from .library_sync import sections + sections.clear_window_vars() + sections.delete_videonode_files() + utils.settings('last_migrated_PKC_version', value=v.ADDON_VERSION) From a463bd521f59bcbacb179aba08c016a964ab32d4 Mon Sep 17 00:00:00 2001 From: croneter Date: Fri, 14 Jun 2019 18:07:19 +0200 Subject: [PATCH 3/3] Add an additional, faster On Deck node for movies --- .../resource.language.en_gb/strings.po | 4 +++ resources/lib/library_sync/nodes.py | 28 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index c85caabd..89235c96 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -1308,6 +1308,10 @@ msgctxt "#39501" msgid "Collections" msgstr "" +msgctxt "#39502" +msgid "PKC On Deck (faster)" +msgstr "" + msgctxt "#39600" msgid "Are you sure you want to reset your local Kodi database? A re-sync of the Plex data will take time afterwards." msgstr "" diff --git a/resources/lib/library_sync/nodes.py b/resources/lib/library_sync/nodes.py index 82c32394..76b41c16 100644 --- a/resources/lib/library_sync/nodes.py +++ b/resources/lib/library_sync/nodes.py @@ -28,6 +28,11 @@ NODE_TYPES = { }, 'movies', True), + ('pkc_ondeck', + utils.lang(39502), # "PKC On Deck (faster)" + {}, + 'movies', + False), ('recent', utils.lang(30174), # "Recently Added" { @@ -244,6 +249,29 @@ def node_pms(section, node_name, args): return xml +def node_pkc_ondeck(section, node_name): + """ + For movies only - returns in-progress movies sorted by last played + """ + xml = etree.Element('node', attrib={'order': unicode(section.order), + 'type': 'filter'}) + etree.SubElement(xml, 'match').text = 'all' + rule = etree.SubElement(xml, 'rule', attrib={'field': 'tag', + 'operator': 'is'}) + etree.SubElement(rule, 'value').text = section.name + etree.SubElement(xml, 'rule', attrib={'field': 'inprogress', + 'operator': 'true'}) + etree.SubElement(xml, 'label').text = node_name + etree.SubElement(xml, 'icon').text = ICON_PATH + etree.SubElement(xml, 'content').text = section.content + etree.SubElement(xml, 'limit').text = utils.settings('widgetLimit') + etree.SubElement(xml, + 'order', + attrib={'direction': + 'descending'}).text = 'lastplayed' + return xml + + def node_recent(section, node_name): xml = etree.Element('node', attrib={'order': unicode(section.order),