From 047189b31bd874da98dca620996e20416875cc97 Mon Sep 17 00:00:00 2001
From: SpootDev <spootdev@gmail.com>
Date: Thu, 31 Mar 2016 12:46:51 -0500
Subject: [PATCH] self.item

---
 resources/lib/playutils.py | 58 +++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 35 deletions(-)

diff --git a/resources/lib/playutils.py b/resources/lib/playutils.py
index 75785572..323e5908 100644
--- a/resources/lib/playutils.py
+++ b/resources/lib/playutils.py
@@ -35,17 +35,16 @@ class PlayUtils():
 
         window = utils.window
 
-        item = self.item
         playurl = None
         
-        if (item.get('Type') in ("Recording", "TvChannel") and
-                item.get('MediaSources') and item['MediaSources'][0]['Protocol'] == "Http"):
+        if (self.item.get('Type') in ("Recording", "TvChannel") and
+                self.item.get('MediaSources') and self.item['MediaSources'][0]['Protocol'] == "Http"):
             # Play LiveTV or recordings
             self.logMsg("File protocol is http (livetv).", 1)
-            playurl = "%s/emby/Videos/%s/live.m3u8?static=true" % (self.server, item['Id'])
+            playurl = "%s/emby/Videos/%s/live.m3u8?static=true" % (self.server, self.item['Id'])
             window('emby_%s.playmethod' % playurl, value="Transcode")
 
-        elif item.get('MediaSources') and item['MediaSources'][0]['Protocol'] == "Http":
+        elif self.item.get('MediaSources') and self.item['MediaSources'][0]['Protocol'] == "Http":
             # Only play as http, used for channels, or online hosting of content
             self.logMsg("File protocol is http.", 1)
             playurl = self.httpPlay()
@@ -77,11 +76,10 @@ class PlayUtils():
 
     def httpPlay(self):
         # Audio, Video, Photo
-        item = self.item
         server = self.server
 
-        itemid = item['Id']
-        mediatype = item['MediaType']
+        itemid = self.item['Id']
+        mediatype = self.item['MediaType']
 
         if mediatype == "Audio":
             playurl = "%s/emby/Audio/%s/stream" % (server, itemid)
@@ -96,7 +94,6 @@ class PlayUtils():
         settings = utils.settings
         dialog = xbmcgui.Dialog()
 
-        item = self.item
 
         # Requirement: Filesystem, Accessible path
         if settings('playFromStream') == "true":
@@ -104,7 +101,7 @@ class PlayUtils():
             self.logMsg("Can't direct play, play from HTTP enabled.", 1)
             return False
 
-        videotrack = item['MediaSources'][0]['Name']
+        videotrack = self.item['MediaSources'][0]['Name']
         transcodeH265 = settings('transcodeH265')
 
         if transcodeH265 in ("1", "2", "3") and ("HEVC" in videotrack or "H265" in videotrack):
@@ -121,13 +118,13 @@ class PlayUtils():
             if res[transcodeH265] <= resolution:
                 return False
 
-        canDirectPlay = item['MediaSources'][0]['SupportsDirectPlay']
+        canDirectPlay = self.item['MediaSources'][0]['SupportsDirectPlay']
         # Make sure direct play is supported by the server
         if not canDirectPlay:
             self.logMsg("Can't direct play, server doesn't allow/support it.", 1)
             return False
 
-        location = item['LocationType']
+        location = self.item['LocationType']
         if location == "FileSystem":
             # Verify the path
             if not self.fileExists():
@@ -161,16 +158,14 @@ class PlayUtils():
 
     def directPlay(self):
 
-        item = self.item
-
         try:
-            playurl = item['MediaSources'][0]['Path']
+            playurl = self.item['MediaSources'][0]['Path']
         except (IndexError, KeyError):
-            playurl = item['Path']
+            playurl = self.item['Path']
 
-        if item.get('VideoType'):
+        if self.item.get('VideoType'):
             # Specific format modification
-            type = item['VideoType']
+            type = self.item['VideoType']
 
             if type == "Dvd":
                 playurl = "%s/VIDEO_TS/VIDEO_TS.IFO" % playurl
@@ -212,9 +207,8 @@ class PlayUtils():
 
     def isDirectStream(self):
 
-        item = self.item
 
-        videotrack = item['MediaSources'][0]['Name']
+        videotrack = self.item['MediaSources'][0]['Name']
         transcodeH265 = utils.settings('transcodeH265')
 
         if transcodeH265 in ("1", "2", "3") and ("HEVC" in videotrack or "H265" in videotrack):
@@ -232,7 +226,7 @@ class PlayUtils():
                 return False
 
         # Requirement: BitRate, supported encoding
-        canDirectStream = item['MediaSources'][0]['SupportsDirectStream']
+        canDirectStream = self.item['MediaSources'][0]['SupportsDirectStream']
         # Make sure the server supports it
         if not canDirectStream:
             return False
@@ -246,13 +240,12 @@ class PlayUtils():
 
     def directStream(self):
 
-        item = self.item
         server = self.server
 
-        itemid = item['Id']
-        itemtype = item['Type']
+        itemid = self.item['Id']
+        itemtype = self.item['Type']
 
-        if 'Path' in item and item['Path'].endswith('.strm'):
+        if 'Path' in self.item and self.item['Path'].endswith('.strm'):
             # Allow strm loading when direct streaming
             playurl = self.directPlay()
         elif itemtype == "Audio":
@@ -281,9 +274,7 @@ class PlayUtils():
 
     def isTranscoding(self):
 
-        item = self.item
-
-        canTranscode = item['MediaSources'][0]['SupportsTranscoding']
+        canTranscode = self.item['MediaSources'][0]['SupportsTranscoding']
         # Make sure the server supports it
         if not canTranscode:
             return False
@@ -292,13 +283,11 @@ class PlayUtils():
 
     def transcoding(self):
 
-        item = self.item
-
-        if 'Path' in item and item['Path'].endswith('.strm'):
+        if 'Path' in self.item and self.item['Path'].endswith('.strm'):
             # Allow strm loading when transcoding
             playurl = self.directPlay()
         else:
-            itemid = item['Id']
+            itemid = self.item['Id']
             deviceId = self.clientInfo.getDeviceId()
             playurl = (
                 "%s/emby/Videos/%s/master.m3u8?MediaSourceId=%s"
@@ -356,9 +345,8 @@ class PlayUtils():
         selectSubsIndex = ""
         playurlprefs = "%s" % url
 
-        item = self.item
         try:
-            mediasources = item['MediaSources'][0]
+            mediasources = self.item['MediaSources'][0]
             mediastreams = mediasources['MediaStreams']
         except (TypeError, KeyError, IndexError):
             return
@@ -428,7 +416,7 @@ class PlayUtils():
                 # Load subtitles in the listitem if downloadable
                 if selectSubsIndex in downloadableStreams:
 
-                    itemid = item['Id']
+                    itemid = self.item['Id']
                     url = [("%s/Videos/%s/%s/Subtitles/%s/Stream.srt"
                         % (self.server, itemid, itemid, selectSubsIndex))]
                     self.logMsg("Set up subtitles: %s %s" % (selectSubsIndex, url), 1)