diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po
index 843c161..04bb92e 100644
--- a/resources/language/resource.language.en_gb/strings.po
+++ b/resources/language/resource.language.en_gb/strings.po
@@ -1220,3 +1220,7 @@ msgstr "Preview Skipper"
msgctxt "#30677"
msgid "Recap Skipper"
msgstr "Recap Skipper"
+
+msgctxt "#30678"
+msgid "TV Shows per page"
+msgstr "TV Shows per page"
diff --git a/resources/lib/dir_functions.py b/resources/lib/dir_functions.py
index f149eb7..ef672e8 100644
--- a/resources/lib/dir_functions.py
+++ b/resources/lib/dir_functions.py
@@ -89,27 +89,48 @@ def get_content(url, params):
# update url for paging
start_index = 0
- page_limit = int(settings.getSetting('moviePageSize'))
+ movie_page_limit = int(settings.getSetting('moviePageSize'))
+ show_page_limit = int(settings.getSetting('showPageSize'))
url_prev = None
url_next = None
- if page_limit > 0 and media_type.startswith("movie"):
+ if movie_page_limit > 0 and media_type.startswith("movie"):
m = re.search('StartIndex=([0-9]{1,4})', url)
if m and m.group(1):
log.debug("UPDATING NEXT URL: {0}".format(url))
start_index = int(m.group(1))
log.debug("current_start : {0}".format(start_index))
if start_index > 0:
- prev_index = start_index - page_limit
+ prev_index = start_index - movie_page_limit
if prev_index < 0:
prev_index = 0
url_prev = re.sub('StartIndex=([0-9]{1,4})', 'StartIndex=' + str(prev_index), url)
- url_next = re.sub('StartIndex=([0-9]{1,4})', 'StartIndex=' + str(start_index + page_limit), url)
+ url_next = re.sub('StartIndex=([0-9]{1,4})', 'StartIndex=' + str(start_index + movie_page_limit), url)
log.debug("UPDATING NEXT URL: {0}".format(url_next))
else:
log.debug("ADDING NEXT URL: {0}".format(url))
- url_next = url + "&StartIndex=" + str(start_index + page_limit) + "&Limit=" + str(page_limit)
- url = url + "&StartIndex=" + str(start_index) + "&Limit=" + str(page_limit)
+ url_next = url + "&StartIndex=" + str(start_index + movie_page_limit) + "&Limit=" + str(movie_page_limit)
+ url = url + "&StartIndex=" + str(start_index) + "&Limit=" + str(movie_page_limit)
+ log.debug("ADDING NEXT URL: {0}".format(url_next))
+
+ if show_page_limit > 0 and media_type.startswith("tvshow"):
+ m = re.search('StartIndex=([0-9]{1,4})', url)
+ if m and m.group(1):
+ log.debug("UPDATING NEXT URL: {0}".format(url))
+ start_index = int(m.group(1))
+ log.debug("current_start : {0}".format(start_index))
+ if start_index > 0:
+ prev_index = start_index - show_page_limit
+ if prev_index < 0:
+ prev_index = 0
+ url_prev = re.sub('StartIndex=([0-9]{1,4})', 'StartIndex=' + str(prev_index), url)
+ url_next = re.sub('StartIndex=([0-9]{1,4})', 'StartIndex=' + str(start_index + show_page_limit), url)
+ log.debug("UPDATING NEXT URL: {0}".format(url_next))
+
+ else:
+ log.debug("ADDING NEXT URL: {0}".format(url))
+ url_next = url + "&StartIndex=" + str(start_index + show_page_limit) + "&Limit=" + str(show_page_limit)
+ url = url + "&StartIndex=" + str(start_index) + "&Limit=" + str(show_page_limit)
log.debug("ADDING NEXT URL: {0}".format(url_next))
use_cache = params.get("use_cache", "true") == "true"
@@ -121,23 +142,41 @@ def get_content(url, params):
log.debug("total_records: {0}".format(total_records))
# add paging items
- if page_limit > 0 and media_type.startswith("movie"):
+ if movie_page_limit > 0 and media_type.startswith("movie"):
if url_prev:
- list_item = xbmcgui.ListItem("Prev Page (" + str(start_index - page_limit + 1) + "-" + str(start_index) +
+ list_item = xbmcgui.ListItem("Prev Page (" + str(start_index - movie_page_limit + 1) + "-" + str(start_index) +
" of " + str(total_records) + ")")
u = sys.argv[0] + "?url=" + quote(url_prev) + "&mode=GET_CONTENT&media_type=movies"
log.debug("ADDING PREV ListItem: {0} - {1}".format(u, list_item))
dir_items.insert(0, (u, list_item, True))
- if start_index + page_limit < total_records:
- upper_count = start_index + (page_limit * 2)
+ if start_index + movie_page_limit < total_records:
+ upper_count = start_index + (movie_page_limit * 2)
if upper_count > total_records:
upper_count = total_records
- list_item = xbmcgui.ListItem("Next Page (" + str(start_index + page_limit + 1) + "-" +
+ list_item = xbmcgui.ListItem("Next Page (" + str(start_index + movie_page_limit + 1) + "-" +
str(upper_count) + " of " + str(total_records) + ")")
u = sys.argv[0] + "?url=" + quote(url_next) + "&mode=GET_CONTENT&media_type=movies"
log.debug("ADDING NEXT ListItem: {0} - {1}".format(u, list_item))
dir_items.append((u, list_item, True))
+ # add paging items
+ if show_page_limit > 0 and media_type.startswith("tvshow"):
+ if url_prev:
+ list_item = xbmcgui.ListItem("Prev Page (" + str(start_index - show_page_limit + 1) + "-" + str(start_index) +
+ " of " + str(total_records) + ")")
+ u = sys.argv[0] + "?url=" + quote(url_prev) + "&mode=GET_CONTENT&media_type=tvshows"
+ log.debug("ADDING PREV ListItem: {0} - {1}".format(u, list_item))
+ dir_items.insert(0, (u, list_item, True))
+
+ if start_index + show_page_limit < total_records:
+ upper_count = start_index + (show_page_limit * 2)
+ if upper_count > total_records:
+ upper_count = total_records
+ list_item = xbmcgui.ListItem("Next Page (" + str(start_index + show_page_limit + 1) + "-" +
+ str(upper_count) + " of " + str(total_records) + ")")
+ u = sys.argv[0] + "?url=" + quote(url_next) + "&mode=GET_CONTENT&media_type=tvshows"
+ log.debug("ADDING NEXT ListItem: {0} - {1}".format(u, list_item))
+ dir_items.append((u, list_item, True))
# set the Kodi content type
if content_type:
@@ -154,7 +193,9 @@ def get_content(url, params):
xbmcplugin.setContent(pluginhandle, content_type)
# set the sort items
- if page_limit > 0 and media_type.startswith("movie"):
+ if movie_page_limit > 0 and media_type.startswith("movie"):
+ xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_UNSORTED)
+ elif show_page_limit > 0 and media_type.startswith("tvshow"):
xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_UNSORTED)
else:
set_sort(pluginhandle, view_type, default_sort)
@@ -302,7 +343,7 @@ def process_directory(url, progress, params, use_cache_data=False):
detected_type = None
dir_items = []
- OnlyTotallyUnwatchedTvShow = params.get("OnlyTotallyUnwatchedTvShow", None)
+ OnlyTotallyUnwatchedTvShow = params.get("OnlyTotallyUnwatchedTvShow", None)
for item_details in item_list:
if OnlyTotallyUnwatchedTvShow == "1" and item_details.watched_episodes > 0:
continue
diff --git a/resources/settings.xml b/resources/settings.xml
index 31c5bb8..fba244a 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -105,6 +105,7 @@
+