mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-25 02:06:09 +00:00
fixed nextepisodes updating by removing the caching
This commit is contained in:
parent
c7c35fd442
commit
aacd72486e
1 changed files with 24 additions and 40 deletions
|
@ -437,49 +437,33 @@ def BrowseChannels(id, folderid=None):
|
||||||
##### GET NEXTUP EPISODES FOR TAGNAME #####
|
##### GET NEXTUP EPISODES FOR TAGNAME #####
|
||||||
def getNextUpEpisodes(tagname,limit):
|
def getNextUpEpisodes(tagname,limit):
|
||||||
count=0
|
count=0
|
||||||
|
addonSettings = xbmcaddon.Addon(id='plugin.video.emby')
|
||||||
|
#if the addon is called with nextup parameter, we return the nextepisodes list of the given tagname
|
||||||
|
xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
|
||||||
|
# First we get a list of all the in-progress TV shows - filtered by tag
|
||||||
|
json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShows", "params": { "sort": { "order": "descending", "method": "lastplayed" }, "filter": {"and": [{"operator":"true", "field":"inprogress", "value":""}, {"operator": "contains", "field": "tag", "value": "%s"}]}, "properties": [ "title", "studio", "mpaa", "file", "art" ] }, "id": "libTvShows"}' %tagname)
|
||||||
|
|
||||||
#try to load from cache first
|
json_result = json.loads(json_query_string)
|
||||||
win = xbmcgui.Window( 10000 )
|
# If we found any, find the oldest unwatched show for each one.
|
||||||
data = win.getProperty("emby.widget.nextup." + tagname)
|
if json_result.has_key('result') and json_result['result'].has_key('tvshows'):
|
||||||
if data and not win.getProperty("clearwidgetcache") == "clear":
|
for item in json_result['result']['tvshows']:
|
||||||
data = json.loads(data)
|
|
||||||
for item in data:
|
|
||||||
liz = createListItem(item)
|
|
||||||
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=item['file'], listitem=liz)
|
|
||||||
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
|
|
||||||
else:
|
|
||||||
episodes = list()
|
|
||||||
addonSettings = xbmcaddon.Addon(id='plugin.video.emby')
|
|
||||||
win.clearProperty("clearwidgetcache")
|
|
||||||
#if the addon is called with nextup parameter, we return the nextepisodes list of the given tagname
|
|
||||||
xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
|
|
||||||
# First we get a list of all the in-progress TV shows - filtered by tag
|
|
||||||
json_query_string = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShows", "params": { "sort": { "order": "descending", "method": "lastplayed" }, "filter": {"and": [{"operator":"true", "field":"inprogress", "value":""}, {"operator": "contains", "field": "tag", "value": "%s"}]}, "properties": [ "title", "studio", "mpaa", "file", "art" ] }, "id": "libTvShows"}' %tagname)
|
|
||||||
|
|
||||||
json_result = json.loads(json_query_string)
|
# If Ignore Specials is true only choose episodes from seasons greater than 0.
|
||||||
# If we found any, find the oldest unwatched show for each one.
|
if addonSettings.getSetting("ignoreSpecialsNextEpisodes")=="true":
|
||||||
if json_result.has_key('result') and json_result['result'].has_key('tvshows'):
|
json_query2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": { "tvshowid": %d, "sort": {"method":"episode"}, "filter": {"and": [ {"field": "playcount", "operator": "lessthan", "value":"1"}, {"field": "season", "operator": "greaterthan", "value": "0"} ]}, "properties": [ "title", "playcount", "season", "episode", "showtitle", "plot", "file", "rating", "resume", "tvshowid", "art", "streamdetails", "firstaired", "runtime", "writer", "dateadded", "lastplayed" ], "limits":{"end":1}}, "id": "1"}' %item['tvshowid'])
|
||||||
for item in json_result['result']['tvshows']:
|
else:
|
||||||
|
json_query2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": { "tvshowid": %d, "sort": {"method":"episode"}, "filter": {"field": "playcount", "operator": "lessthan", "value":"1"}, "properties": [ "title", "playcount", "season", "episode", "showtitle", "plot", "file", "rating", "resume", "tvshowid", "art", "streamdetails", "firstaired", "runtime", "writer", "dateadded", "lastplayed" ], "limits":{"end":1}}, "id": "1"}' %item['tvshowid'])
|
||||||
|
|
||||||
# If Ignore Specials is true only choose episodes from seasons greater than 0.
|
if json_query2:
|
||||||
if addonSettings.getSetting("ignoreSpecialsNextEpisodes")=="true":
|
json_query2 = json.loads(json_query2)
|
||||||
json_query2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": { "tvshowid": %d, "sort": {"method":"episode"}, "filter": {"and": [ {"field": "playcount", "operator": "lessthan", "value":"1"}, {"field": "season", "operator": "greaterthan", "value": "0"} ]}, "properties": [ "title", "playcount", "season", "episode", "showtitle", "plot", "file", "rating", "resume", "tvshowid", "art", "streamdetails", "firstaired", "runtime", "writer", "dateadded", "lastplayed" ], "limits":{"end":1}}, "id": "1"}' %item['tvshowid'])
|
if json_query2.has_key('result') and json_query2['result'].has_key('episodes'):
|
||||||
else:
|
for item in json_query2['result']['episodes']:
|
||||||
json_query2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": { "tvshowid": %d, "sort": {"method":"episode"}, "filter": {"field": "playcount", "operator": "lessthan", "value":"1"}, "properties": [ "title", "playcount", "season", "episode", "showtitle", "plot", "file", "rating", "resume", "tvshowid", "art", "streamdetails", "firstaired", "runtime", "writer", "dateadded", "lastplayed" ], "limits":{"end":1}}, "id": "1"}' %item['tvshowid'])
|
liz = createListItem(item)
|
||||||
|
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=item['file'], listitem=liz)
|
||||||
if json_query2:
|
count +=1
|
||||||
json_query2 = json.loads(json_query2)
|
if count == limit:
|
||||||
if json_query2.has_key('result') and json_query2['result'].has_key('episodes'):
|
break
|
||||||
for item in json_query2['result']['episodes']:
|
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
|
||||||
liz = createListItem(item)
|
|
||||||
episodes.append(item)
|
|
||||||
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=item['file'], listitem=liz)
|
|
||||||
count +=1
|
|
||||||
if count == limit:
|
|
||||||
break
|
|
||||||
#use window prop as cache
|
|
||||||
win.setProperty("emby.widget.nextup." + tagname, json.dumps(episodes))
|
|
||||||
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
|
|
||||||
|
|
||||||
def getInProgressEpisodes(tagname,limit):
|
def getInProgressEpisodes(tagname,limit):
|
||||||
count = 0
|
count = 0
|
||||||
|
|
Loading…
Reference in a new issue