Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add limit parameter to plugin element #14

Merged
merged 1 commit into from Jun 6, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Expand Up @@ -33,6 +33,9 @@ Available infolabels:
Most of the usual video library infolabels.
ListItem.Property(type) shows with what option the script was run.

Limiting results:
To only return partial results, add the parameter "limit", for example limit=5.

TODO:
Artist/Musicvideo/Addons support.

29 changes: 26 additions & 3 deletions default.py
Expand Up @@ -99,6 +99,7 @@ def _init_vars(self):

def parse_movies(self, request, list_type):
json_query = self._get_data( request )
count = 0
if json_query:
json_query = simplejson.loads(json_query)
if json_query.has_key('result') and json_query['result'].has_key('movies'):
Expand Down Expand Up @@ -149,6 +150,10 @@ def parse_movies(self, request, list_type):
for stream in value:
liz.addStreamInfo( key, stream )
full_liz.append((item['file'], liz, False))
count += 1
if count == self.LIMIT:
break

xbmcplugin.addDirectoryItems(int(sys.argv[1]),full_liz)
xbmcplugin.endOfDirectory(handle= int(sys.argv[1]))
del json_query
Expand All @@ -165,8 +170,6 @@ def parse_tvshows_recommended(self, request, list_type):
for item in json_query['result']['tvshows']:
if xbmc.abortRequested:
break
count += 1
#json_query2 = self.load_file( str( item['tvshowid'] ) )
json_query2 = self.WINDOW.getProperty( "recommendedepisodes-data-" + str( item['tvshowid'] ) )
if json_query:
json_query2 = simplejson.loads(json_query2)
Expand Down Expand Up @@ -211,6 +214,12 @@ def parse_tvshows_recommended(self, request, list_type):
liz.addStreamInfo( key, stream )

full_liz.append((item2['file'], liz, False))

count += 1
if count == self.LIMIT:
break
if count == self.LIMIT:
break
xbmcplugin.addDirectoryItems(int(sys.argv[1]),full_liz)
xbmcplugin.endOfDirectory(handle= int(sys.argv[1]))
del json_query
Expand All @@ -223,6 +232,7 @@ def parse_tvshows(self, request, list_type):
if json_query.has_key('result') and json_query['result'].has_key('episodes'):
xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
full_liz = list()
count = 0
for item in json_query['result']['episodes']:
episode = "%.2d" % float(item['episode'])
season = "%.2d" % float(item['season'])
Expand Down Expand Up @@ -257,6 +267,9 @@ def parse_tvshows(self, request, list_type):
for stream in value:
liz.addStreamInfo( key, stream )
full_liz.append((item['file'], liz, False))
count += 1
if count == self.LIMIT:
break
xbmcplugin.addDirectoryItems(int(sys.argv[1]),full_liz)
xbmcplugin.endOfDirectory(handle= int(sys.argv[1]))
del json_query
Expand All @@ -266,6 +279,7 @@ def parse_song(self, request, list_type):
if json_query:
json_string = '{"jsonrpc": "2.0", "id": 1, "method": "AudioLibrary.GetSongs", "params": {"properties": ["title", "playcount", "genre", "artist", "album", "year", "file", "thumbnail", "fanart", "rating"], "filter": {"field": "playcount", "operator": "lessthan", "value": "1"}, "limits": {"end": %d},' %self.LIMIT
json_query = simplejson.loads(json_query)
count = 0
if json_query.has_key('result') and json_query['result'].has_key('songs'):
xbmcplugin.setContent(int(sys.argv[1]), 'songs')
full_liz = list()
Expand All @@ -284,6 +298,9 @@ def parse_song(self, request, list_type):
liz.setProperty("fanart_image", item['fanart'])

full_liz.append((item['file'], liz, False))
count += 1
if count == self.LIMIT:
break
xbmcplugin.addDirectoryItems(int(sys.argv[1]),full_liz)
xbmcplugin.endOfDirectory(handle= int(sys.argv[1]))
del json_query
Expand All @@ -295,6 +312,7 @@ def parse_albums (self, request, list_type):
if json_query.has_key('result') and json_query['result'].has_key('albums'):
xbmcplugin.setContent(int(sys.argv[1]), 'albums')
full_liz = list()
count = 0
for item in json_query['result']['albums']:
rating = str(item['rating'])
if rating == '48':
Expand All @@ -321,6 +339,10 @@ def parse_albums (self, request, list_type):
path = sys.argv[0] + "?type=play_album&album=" + str(item['albumid'])

full_liz.append((path, liz, False))
count += 1
if count == self.LIMIT:
break

xbmcplugin.addDirectoryItems(int(sys.argv[1]),full_liz)
xbmcplugin.endOfDirectory(handle= int(sys.argv[1]))
del json_query
Expand Down Expand Up @@ -364,7 +386,8 @@ def _parse_argv( self ):
self.ALBUM = params.get( "album", "" )
self.USECACHE = params.get( "reload", False )
if self.USECACHE is not False:
self.USECACHE == True
self.USECACHE = True
self.LIMIT = int( params.get( "limit", "-1" ) )
global PLOT_ENABLE
PLOT_ENABLE = __addon__.getSetting("plot_enable") == 'true'
self.RANDOMITEMS_UNPLAYED = __addon__.getSetting("randomitems_unplayed") == 'true'
Expand Down