def movies(self, request, data): if data: clear_properties(request) count = 0 for item in data['result']['movies']: count += 1 if (item['resume']['position'] and item['resume']['total'])> 0: resume = "true" played = '%s%%'%int((float(item['resume']['position']) / float(item['resume']['total'])) * 100) else: resume = "false" played = '0%' if item['playcount'] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item['plot'] art = item['art'] path = media_path(item['file']) play = 'XBMC.RunScript(' + __addonid__ + ',movieid=' + str(item.get('movieid')) + ')' streaminfo = media_streamdetails(item['file'].encode('utf-8').lower(), item['streamdetails']) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get('movieid'))) WINDOW.setProperty("%s.%d.Title" % (request, count), item['title']) WINDOW.setProperty("%s.%d.OriginalTitle" % (request, count), item['originaltitle']) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item['year'])) WINDOW.setProperty("%s.%d.Genre" % (request, count), " / ".join(item['genre'])) WINDOW.setProperty("%s.%d.Studio" % (request, count), item['studio'][0]) WINDOW.setProperty("%s.%d.Country" % (request, count), item['country'][0]) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.PlotOutline" % (request, count), item['plotoutline']) WINDOW.setProperty("%s.%d.Tagline" % (request, count), item['tagline']) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item['runtime'] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Rating" % (request, count), str(round(float(item['rating']),1))) WINDOW.setProperty("%s.%d.mpaa" % (request, count), item['mpaa']) WINDOW.setProperty("%s.%d.Director" % (request, count), " / ".join(item['director'])) WINDOW.setProperty("%s.%d.Trailer" % (request, count), item['trailer']) WINDOW.setProperty("%s.%d.Art(poster)" % (request, count), art.get('poster','')) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), art.get('fanart','')) WINDOW.setProperty("%s.%d.Art(clearlogo)" % (request, count), art.get('clearlogo','')) WINDOW.setProperty("%s.%d.Art(clearart)" % (request, count), art.get('clearart','')) WINDOW.setProperty("%s.%d.Art(landscape)" % (request, count), art.get('landscape','')) WINDOW.setProperty("%s.%d.Art(banner)" % (request, count), art.get('banner','')) WINDOW.setProperty("%s.%d.Art(discart)" % (request, count), art.get('discart','')) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item['file']) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo['videocodec']) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo['videoresolution']) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo['videoaspect']) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo['audiocodec']) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo['audiochannels'])) del data
def movies(self, request, data): if data: clear_properties(request) count = 0 for item in data["result"]["movies"]: count += 1 if (item["resume"]["position"] and item["resume"]["total"]) > 0: resume = "true" played = "%s%%" % int((float(item["resume"]["position"]) / float(item["resume"]["total"])) * 100) else: resume = "false" played = "0%" if item["playcount"] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item["plot"] art = item["art"] path = media_path(item["file"]) play = "XBMC.RunScript(" + __addonid__ + ",movieid=" + str(item.get("movieid")) + ")" streaminfo = media_streamdetails(item["file"].encode("utf-8").lower(), item["streamdetails"]) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get("movieid"))) WINDOW.setProperty("%s.%d.Title" % (request, count), item["title"]) WINDOW.setProperty("%s.%d.OriginalTitle" % (request, count), item["originaltitle"]) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item["year"])) WINDOW.setProperty("%s.%d.Genre" % (request, count), " / ".join(item["genre"])) WINDOW.setProperty("%s.%d.Studio" % (request, count), item["studio"][0]) WINDOW.setProperty("%s.%d.Country" % (request, count), item["country"][0]) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.PlotOutline" % (request, count), item["plotoutline"]) WINDOW.setProperty("%s.%d.Tagline" % (request, count), item["tagline"]) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item["runtime"] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Rating" % (request, count), str(round(float(item["rating"]), 1))) WINDOW.setProperty("%s.%d.mpaa" % (request, count), item["mpaa"]) WINDOW.setProperty("%s.%d.Director" % (request, count), " / ".join(item["director"])) WINDOW.setProperty("%s.%d.Trailer" % (request, count), item["trailer"]) WINDOW.setProperty("%s.%d.Art(poster)" % (request, count), art.get("poster", "")) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), art.get("fanart", "")) WINDOW.setProperty("%s.%d.Art(clearlogo)" % (request, count), art.get("clearlogo", "")) WINDOW.setProperty("%s.%d.Art(clearart)" % (request, count), art.get("clearart", "")) WINDOW.setProperty("%s.%d.Art(landscape)" % (request, count), art.get("landscape", "")) WINDOW.setProperty("%s.%d.Art(banner)" % (request, count), art.get("banner", "")) WINDOW.setProperty("%s.%d.Art(discart)" % (request, count), art.get("discart", "")) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item["file"]) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo["videocodec"]) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo["videoresolution"]) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo["videoaspect"]) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo["audiocodec"]) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo["audiochannels"])) del data
def musicvideos(self, request, data): if data: clear_properties(request) count = 0 for item in data['result']['musicvideos']: count += 1 if (item['resume']['position'] and item['resume']['total'])> 0: resume = "true" played = '%s%%'%int((float(item['resume']['position']) / float(item['resume']['total'])) * 100) else: resume = "false" played = '0%' if item['playcount'] >= 1: watched = "true" else: watched = "false" play = 'XBMC.RunScript(' + __addonid__ + ',musicvideoid=' + str(item.get('musicvideoid')) + ')' path = media_path(item['file']) streaminfo = media_streamdetails(item['file'].encode('utf-8').lower(), item['streamdetails']) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get('musicvideoid'))) WINDOW.setProperty("%s.%d.Title" % (request, count), item['title']) WINDOW.setProperty("%s.%d.Artist" % (request, count), " / ".join(item['artist'])) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item['year'])) WINDOW.setProperty("%s.%d.Plot" % (request, count), item['plot']) WINDOW.setProperty("%s.%d.Genre" % (request, count), " / ".join(item['genre'])) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item['runtime'] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Thumb" % (request, count), item['thumbnail']) #remove WINDOW.setProperty("%s.%d.Fanart" % (request, count), item['fanart']) #remove WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), item['thumbnail']) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), item['fanart']) WINDOW.setProperty("%s.%d.File" % (request, count), item['file']) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo['videocodec']) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo['videoresolution']) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo['videoaspect']) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo['audiocodec']) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo['audiochannels'])) del data
def musicvideos(self, request, data): if data: clear_properties(request) count = 0 for item in data["result"]["musicvideos"]: count += 1 if (item["resume"]["position"] and item["resume"]["total"]) > 0: resume = "true" played = "%s%%" % int((float(item["resume"]["position"]) / float(item["resume"]["total"])) * 100) else: resume = "false" played = "0%" if item["playcount"] >= 1: watched = "true" else: watched = "false" play = "XBMC.RunScript(" + __addonid__ + ",musicvideoid=" + str(item.get("musicvideoid")) + ")" path = media_path(item["file"]) streaminfo = media_streamdetails(item["file"].encode("utf-8").lower(), item["streamdetails"]) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get("musicvideoid"))) WINDOW.setProperty("%s.%d.Title" % (request, count), item["title"]) WINDOW.setProperty("%s.%d.Artist" % (request, count), " / ".join(item["artist"])) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item["year"])) WINDOW.setProperty("%s.%d.Plot" % (request, count), item["plot"]) WINDOW.setProperty("%s.%d.Genre" % (request, count), " / ".join(item["genre"])) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item["runtime"] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Thumb" % (request, count), item["thumbnail"]) # remove WINDOW.setProperty("%s.%d.Fanart" % (request, count), item["fanart"]) # remove WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), item["thumbnail"]) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), item["fanart"]) WINDOW.setProperty("%s.%d.File" % (request, count), item["file"]) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo["videocodec"]) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo["videoresolution"]) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo["videoaspect"]) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo["audiocodec"]) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo["audiochannels"])) del data
def songs(self, request, data): if data: clear_properties(request) count = 0 for item in data["result"]["songs"]: count += 1 play = "XBMC.RunScript(" + __addonid__ + ",songid=" + str(item.get("songid")) + ")" path = media_path(item["file"]) WINDOW.setProperty("%s.%d.Title" % (request, count), item["title"]) WINDOW.setProperty("%s.%d.Artist" % (request, count), " / ".join(item["artist"])) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item["year"])) WINDOW.setProperty("%s.%d.Rating" % (request, count), str(int(item["rating"]) - 48)) WINDOW.setProperty("%s.%d.Album" % (request, count), item["album"]) WINDOW.setProperty("%s.%d.Thumb" % (request, count), item["thumbnail"]) # remove WINDOW.setProperty("%s.%d.Fanart" % (request, count), item["fanart"]) # remove WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), item["thumbnail"]) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), item["fanart"]) WINDOW.setProperty("%s.%d.File" % (request, count), item["file"]) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) del data
def songs(self, request, data): if data: clear_properties(request) count = 0 for item in data['result']['songs']: count += 1 play = 'XBMC.RunScript(' + __addonid__ + ',songid=' + str(item.get('songid')) + ')' path = media_path(item['file']) WINDOW.setProperty("%s.%d.Title" % (request, count), item['title']) WINDOW.setProperty("%s.%d.Artist" % (request, count), " / ".join(item['artist'])) WINDOW.setProperty("%s.%d.Year" % (request, count), str(item['year'])) WINDOW.setProperty("%s.%d.Rating" % (request, count), str(int(item['rating'])-48)) WINDOW.setProperty("%s.%d.Album" % (request, count), item['album']) WINDOW.setProperty("%s.%d.Thumb" % (request, count), item['thumbnail']) #remove WINDOW.setProperty("%s.%d.Fanart" % (request, count), item['fanart']) #remove WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), item['thumbnail']) WINDOW.setProperty("%s.%d.Art(fanart)" % (request, count), item['fanart']) WINDOW.setProperty("%s.%d.File" % (request, count), item['file']) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) del data
def episodes(self, request, data): if data: season_folders = __addon__.getSetting("randomitems_seasonfolders") clear_properties(request) count = 0 for item in data["result"]["episodes"]: count += 1 """ # This part is commented out because it takes 1.5second extra on my system to request these which doubles the total time. # Hence the ugly path hack that will require users to have season folders. data2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"properties": ["file", "studio"], "tvshowid":%s}, "id": 1}' %item['tvshowid']) data2 = unicode(data2, 'utf-8', errors='ignore') data2 = simplejson.loads(data2) path = data2['result']['tvshowdetails']['file'] studio = data2['result']['tvshowdetails']['studio'][0] """ if season_folders == "true": path = os.path.split(media_path(item["file"]))[0] else: path = media_path(item["file"]) episode = "%.2d" % float(item["episode"]) season = "%.2d" % float(item["season"]) episodeno = "s%se%s" % (season, episode) # seasonthumb = '' rating = str(round(float(item["rating"]), 1)) if (item["resume"]["position"] and item["resume"]["total"]) > 0: resume = "true" played = "%s%%" % int((float(item["resume"]["position"]) / float(item["resume"]["total"])) * 100) else: resume = "false" played = "0%" if item["playcount"] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item["plot"] art = item["art"] path = media_path(item["file"]) play = "XBMC.RunScript(" + __addonid__ + ",episodeid=" + str(item.get("episodeid")) + ")" streaminfo = media_streamdetails(item["file"].encode("utf-8").lower(), item["streamdetails"]) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get("episodeid"))) WINDOW.setProperty("%s.%d.Title" % (request, count), item["title"]) WINDOW.setProperty("%s.%d.Episode" % (request, count), episode) WINDOW.setProperty("%s.%d.EpisodeNo" % (request, count), episodeno) WINDOW.setProperty("%s.%d.Season" % (request, count), season) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.TVshowTitle" % (request, count), item["showtitle"]) WINDOW.setProperty("%s.%d.Rating" % (request, count), rating) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item["runtime"] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Premiered" % (request, count), item["firstaired"]) WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), art.get("thumb", "")) WINDOW.setProperty("%s.%d.Art(tvshow.fanart)" % (request, count), art.get("tvshow.fanart", "")) WINDOW.setProperty("%s.%d.Art(tvshow.poster)" % (request, count), art.get("tvshow.poster", "")) WINDOW.setProperty("%s.%d.Art(tvshow.banner)" % (request, count), art.get("tvshow.banner", "")) WINDOW.setProperty("%s.%d.Art(tvshow.clearlogo)" % (request, count), art.get("tvshow.clearlogo", "")) WINDOW.setProperty("%s.%d.Art(tvshow.clearart)" % (request, count), art.get("tvshow.clearart", "")) WINDOW.setProperty("%s.%d.Art(tvshow.landscape)" % (request, count), art.get("tvshow.landscape", "")) WINDOW.setProperty( "%s.%d.Art(tvshow.characterart)" % (request, count), art.get("tvshow.characterart", "") ) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item["file"]) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo["videocodec"]) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo["videoresolution"]) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo["videoaspect"]) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo["audiocodec"]) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo["audiochannels"])) del data
def episodes_recommended(self, request, data): if data: clear_properties(request) count = 0 for item in data["result"]["tvshows"]: if xbmc.abortRequested: break count += 1 data2 = xbmc.executeJSONRPC( '{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": {"tvshowid": %d, "properties": ["title", "playcount", "plot", "season", "episode", "showtitle", "file", "lastplayed", "rating", "resume", "art", "streamdetails", "firstaired", "runtime"], "sort": {"method": "episode"}, "filter": {"field": "playcount", "operator": "is", "value": "0"}, "limits": {"end": 1}}, "id": 1}' % item["tvshowid"] ) data2 = unicode(data2, "utf-8", errors="ignore") data2 = simplejson.loads(data2) if data2.has_key("result") and data2["result"] != None and data2["result"].has_key("episodes"): for item2 in data2["result"]["episodes"]: episode = "%.2d" % float(item2["episode"]) season = "%.2d" % float(item2["season"]) rating = str(round(float(item2["rating"]), 1)) episodeno = "s%se%s" % (season, episode) art2 = item2["art"] # seasonthumb = '' if (item2["resume"]["position"] and item2["resume"]["total"]) > 0: resume = "true" played = "%s%%" % int((float(item2["resume"]["position"]) / float(item2["resume"]["total"])) * 100) else: resume = "false" played = "0%" if item2["playcount"] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item2["plot"] art = item["art"] path = media_path(item["file"]) play = "XBMC.RunScript(" + __addonid__ + ",episodeid=" + str(item2.get("episodeid")) + ")" streaminfo = media_streamdetails(item["file"].encode("utf-8").lower(), item2["streamdetails"]) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item2.get("episodeid"))) WINDOW.setProperty("%s.%d.Title" % (request, count), item2["title"]) WINDOW.setProperty("%s.%d.Episode" % (request, count), episode) WINDOW.setProperty("%s.%d.EpisodeNo" % (request, count), episodeno) WINDOW.setProperty("%s.%d.Season" % (request, count), season) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.TVshowTitle" % (request, count), item2["showtitle"]) WINDOW.setProperty("%s.%d.Rating" % (request, count), rating) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item2["runtime"] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Premiered" % (request, count), item2["firstaired"]) WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), art2.get("thumb", "")) WINDOW.setProperty("%s.%d.Art(tvshow.fanart)" % (request, count), art2.get("tvshow.fanart", "")) WINDOW.setProperty("%s.%d.Art(tvshow.poster)" % (request, count), art2.get("tvshow.poster", "")) WINDOW.setProperty("%s.%d.Art(tvshow.banner)" % (request, count), art2.get("tvshow.banner", "")) WINDOW.setProperty("%s.%d.Art(tvshow.clearlogo)" % (request, count), art2.get("tvshow.clearlogo", "")) WINDOW.setProperty("%s.%d.Art(tvshow.clearart)" % (request, count), art2.get("tvshow.clearart", "")) WINDOW.setProperty("%s.%d.Art(tvshow.landscape)" % (request, count), art2.get("tvshow.landscape", "")) WINDOW.setProperty( "%s.%d.Art(tvshow.characterart)" % (request, count), art2.get("tvshow.characterart", "") ) # WINDOW.setProperty("%s.%d.Art(season.poster)" % (request, count), seasonthumb) WINDOW.setProperty("%s.%d.Studio" % (request, count), item["studio"][0]) WINDOW.setProperty("%s.%d.mpaa" % (request, count), item["mpaa"]) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item2["file"]) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo["videocodec"]) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo["videoresolution"]) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo["videoaspect"]) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo["audiocodec"]) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo["audiochannels"])) del data
def episodes(self, request, data): if data: season_folders = __addon__.getSetting("randomitems_seasonfolders") clear_properties(request) count = 0 for item in data['result']['episodes']: count += 1 ''' # This part is commented out because it takes 1.5second extra on my system to request these which doubles the total time. # Hence the ugly path hack that will require users to have season folders. data2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShowDetails", "params": {"properties": ["file", "studio"], "tvshowid":%s}, "id": 1}' %item['tvshowid']) data2 = unicode(data2, 'utf-8', errors='ignore') data2 = simplejson.loads(data2) path = data2['result']['tvshowdetails']['file'] studio = data2['result']['tvshowdetails']['studio'][0] ''' if season_folders == 'true': path = os.path.split(media_path(item['file']))[0] else: path = media_path(item['file']) episode = ("%.2d" % float(item['episode'])) season = "%.2d" % float(item['season']) episodeno = "s%se%s" %(season,episode) #seasonthumb = '' rating = str(round(float(item['rating']),1)) if (item['resume']['position'] and item['resume']['total']) > 0: resume = "true" played = '%s%%'%int((float(item['resume']['position']) / float(item['resume']['total'])) * 100) else: resume = "false" played = '0%' if item['playcount'] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item['plot'] art = item['art'] path = media_path(item['file']) play = 'XBMC.RunScript(' + __addonid__ + ',episodeid=' + str(item.get('episodeid')) + ')' streaminfo = media_streamdetails(item['file'].encode('utf-8').lower(), item['streamdetails']) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item.get('episodeid'))) WINDOW.setProperty("%s.%d.Title" % (request, count), item['title']) WINDOW.setProperty("%s.%d.Episode" % (request, count), episode) WINDOW.setProperty("%s.%d.EpisodeNo" % (request, count), episodeno) WINDOW.setProperty("%s.%d.Season" % (request, count), season) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.TVshowTitle" % (request, count), item['showtitle']) WINDOW.setProperty("%s.%d.Rating" % (request, count), rating) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item['runtime'] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Premiered" % (request, count), item['firstaired']) WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), art.get('thumb','')) WINDOW.setProperty("%s.%d.Art(tvshow.fanart)" % (request, count), art.get('tvshow.fanart','')) WINDOW.setProperty("%s.%d.Art(tvshow.poster)" % (request, count), art.get('tvshow.poster','')) WINDOW.setProperty("%s.%d.Art(tvshow.banner)" % (request, count), art.get('tvshow.banner','')) WINDOW.setProperty("%s.%d.Art(tvshow.clearlogo)"% (request, count), art.get('tvshow.clearlogo','')) WINDOW.setProperty("%s.%d.Art(tvshow.clearart)" % (request, count), art.get('tvshow.clearart','')) WINDOW.setProperty("%s.%d.Art(tvshow.landscape)"% (request, count), art.get('tvshow.landscape','')) WINDOW.setProperty("%s.%d.Art(tvshow.characterart)"% (request, count), art.get('tvshow.characterart','')) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item['file']) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo['videocodec']) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo['videoresolution']) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo['videoaspect']) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo['audiocodec']) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo['audiochannels'])) del data
def episodes_recommended(self, request, data): if data: clear_properties(request) count = 0 for item in data['result']['tvshows']: if xbmc.abortRequested: break count += 1 data2 = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodes", "params": {"tvshowid": %d, "properties": ["title", "playcount", "plot", "season", "episode", "showtitle", "file", "lastplayed", "rating", "resume", "art", "streamdetails", "firstaired", "runtime"], "sort": {"method": "episode"}, "filter": {"field": "playcount", "operator": "is", "value": "0"}, "limits": {"end": 1}}, "id": 1}' %item['tvshowid']) data2 = unicode(data2, 'utf-8', errors='ignore') data2 = simplejson.loads(data2) if data2.has_key('result') and data2['result'] != None and data2['result'].has_key('episodes'): for item2 in data2['result']['episodes']: episode = ("%.2d" % float(item2['episode'])) season = "%.2d" % float(item2['season']) rating = str(round(float(item2['rating']),1)) episodeno = "s%se%s" %(season,episode) art2 = item2['art'] #seasonthumb = '' if (item2['resume']['position'] and item2['resume']['total']) > 0: resume = "true" played = '%s%%'%int((float(item2['resume']['position']) / float(item2['resume']['total'])) * 100) else: resume = "false" played = '0%' if item2['playcount'] >= 1: watched = "true" else: watched = "false" if not PLOT_ENABLE and watched == "false": plot = __localize__(32014) else: plot = item2['plot'] art = item['art'] path = media_path(item['file']) play = 'XBMC.RunScript(' + __addonid__ + ',episodeid=' + str(item2.get('episodeid')) + ')' streaminfo = media_streamdetails(item['file'].encode('utf-8').lower(), item2['streamdetails']) WINDOW.setProperty("%s.%d.DBID" % (request, count), str(item2.get('episodeid'))) WINDOW.setProperty("%s.%d.Title" % (request, count), item2['title']) WINDOW.setProperty("%s.%d.Episode" % (request, count), episode) WINDOW.setProperty("%s.%d.EpisodeNo" % (request, count), episodeno) WINDOW.setProperty("%s.%d.Season" % (request, count), season) WINDOW.setProperty("%s.%d.Plot" % (request, count), plot) WINDOW.setProperty("%s.%d.TVshowTitle" % (request, count), item2['showtitle']) WINDOW.setProperty("%s.%d.Rating" % (request, count), rating) WINDOW.setProperty("%s.%d.Runtime" % (request, count), str(int((item2['runtime'] / 60) + 0.5))) WINDOW.setProperty("%s.%d.Premiered" % (request, count), item2['firstaired']) WINDOW.setProperty("%s.%d.Art(thumb)" % (request, count), art2.get('thumb','')) WINDOW.setProperty("%s.%d.Art(tvshow.fanart)" % (request, count), art2.get('tvshow.fanart','')) WINDOW.setProperty("%s.%d.Art(tvshow.poster)" % (request, count), art2.get('tvshow.poster','')) WINDOW.setProperty("%s.%d.Art(tvshow.banner)" % (request, count), art2.get('tvshow.banner','')) WINDOW.setProperty("%s.%d.Art(tvshow.clearlogo)"% (request, count), art2.get('tvshow.clearlogo','')) WINDOW.setProperty("%s.%d.Art(tvshow.clearart)" % (request, count), art2.get('tvshow.clearart','')) WINDOW.setProperty("%s.%d.Art(tvshow.landscape)"% (request, count), art2.get('tvshow.landscape','')) WINDOW.setProperty("%s.%d.Art(tvshow.characterart)"% (request, count), art2.get('tvshow.characterart','')) #WINDOW.setProperty("%s.%d.Art(season.poster)" % (request, count), seasonthumb) WINDOW.setProperty("%s.%d.Studio" % (request, count), item['studio'][0]) WINDOW.setProperty("%s.%d.mpaa" % (request, count), item['mpaa']) WINDOW.setProperty("%s.%d.Resume" % (request, count), resume) WINDOW.setProperty("%s.%d.PercentPlayed" % (request, count), played) WINDOW.setProperty("%s.%d.Watched" % (request, count), watched) WINDOW.setProperty("%s.%d.File" % (request, count), item2['file']) WINDOW.setProperty("%s.%d.Path" % (request, count), path) WINDOW.setProperty("%s.%d.Play" % (request, count), play) WINDOW.setProperty("%s.%d.VideoCodec" % (request, count), streaminfo['videocodec']) WINDOW.setProperty("%s.%d.VideoResolution" % (request, count), streaminfo['videoresolution']) WINDOW.setProperty("%s.%d.VideoAspect" % (request, count), streaminfo['videoaspect']) WINDOW.setProperty("%s.%d.AudioCodec" % (request, count), streaminfo['audiocodec']) WINDOW.setProperty("%s.%d.AudioChannels" % (request, count), str(streaminfo['audiochannels'])) del data2 del data