From d78c04d67f6cf0dfc569a27d7b8a5df0543c6e80 Mon Sep 17 00:00:00 2001
From: SpootDev <spootdev@gmail.com>
Date: Mon, 4 Apr 2016 14:18:46 -0500
Subject: [PATCH] code reduce

---
 resources/lib/itemtypes.py | 125 +++++++++++++++++--------------------
 1 file changed, 56 insertions(+), 69 deletions(-)

diff --git a/resources/lib/itemtypes.py b/resources/lib/itemtypes.py
index 78699375..e27862c6 100644
--- a/resources/lib/itemtypes.py
+++ b/resources/lib/itemtypes.py
@@ -260,7 +260,6 @@ class Movies(Items):
         # Process single movie
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -422,9 +421,9 @@ class Movies(Items):
             self.logMsg("ADD movie itemid: %s - Title: %s" % (itemid, title), 1)
             
             # Add path
-            pathid = kodi_db.addPath(path)
+            pathid = self.kodi_db.addPath(path)
             # Add the file
-            fileid = kodi_db.addFile(filename, pathid)
+            fileid = self.kodi_db.addFile(filename, pathid)
             
             # Create the movie entry
             query = (
@@ -462,35 +461,34 @@ class Movies(Items):
         kodicursor.execute(query, (pathid, filename, dateadded, fileid))
         
         # Process countries
-        kodi_db.addCountries(movieid, item['ProductionLocations'], "movie")
+        self.kodi_db.addCountries(movieid, item['ProductionLocations'], "movie")
         # Process cast
         people = artwork.getPeopleArtwork(item['People'])
-        kodi_db.addPeople(movieid, people, "movie")
+        self.kodi_db.addPeople(movieid, people, "movie")
         # Process genres
-        kodi_db.addGenres(movieid, genres, "movie")
+        self.kodi_db.addGenres(movieid, genres, "movie")
         # Process artwork
         artwork.addArtwork(artwork.getAllArtwork(item), movieid, "movie", kodicursor)
         # Process stream details
         streams = API.getMediaStreams()
-        kodi_db.addStreams(fileid, streams, runtime)
+        self.kodi_db.addStreams(fileid, streams, runtime)
         # Process studios
-        kodi_db.addStudios(movieid, studios, "movie")
+        self.kodi_db.addStudios(movieid, studios, "movie")
         # Process tags: view, emby tags
         tags = [viewtag]
         tags.extend(item['Tags'])
         if userdata['Favorite']:
             tags.append("Favorite movies")
-        kodi_db.addTags(movieid, tags, "movie")
+        self.kodi_db.addTags(movieid, tags, "movie")
         # Process playstates
         resume = API.adjustResume(userdata['Resume'])
         total = round(float(runtime), 6)
-        kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+        self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
 
     def add_updateBoxset(self, boxset):
 
         emby = self.emby
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
 
         boxsetid = boxset['Id']
@@ -501,7 +499,7 @@ class Movies(Items):
             setid = emby_dbitem[0]
 
         except TypeError:
-            setid = kodi_db.createBoxset(title)
+            setid = self.kodi_db.createBoxset(title)
 
         # Process artwork
         artwork.addArtwork(artwork.getAllArtwork(boxset), setid, "set", self.kodicursor)
@@ -534,7 +532,7 @@ class Movies(Items):
                     continue
 
                 self.logMsg("New addition to boxset %s: %s" % (title, movie['Name']), 1)
-                kodi_db.assignBoxset(setid, movieid)
+                self.kodi_db.assignBoxset(setid, movieid)
                 # Update emby reference
                 emby_db.updateParentId(itemid, setid)
             else:
@@ -545,7 +543,7 @@ class Movies(Items):
         for movie in process:
             movieid = current[movie]
             self.logMsg("Remove from boxset %s: %s" % (title, movieid))
-            kodi_db.removefromBoxset(movieid)
+            self.kodi_db.removefromBoxset(movieid)
             # Update emby reference
             emby_db.updateParentId(movie, None)
 
@@ -556,7 +554,6 @@ class Movies(Items):
         # This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
         # Poster with progress bar
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         API = api.API(item)
         
         # Get emby information
@@ -578,9 +575,9 @@ class Movies(Items):
 
         # Process favorite tags
         if userdata['Favorite']:
-            kodi_db.addTag(movieid, "Favorite movies", "movie")
+            self.kodi_db.addTag(movieid, "Favorite movies", "movie")
         else:
-            kodi_db.removeTag(movieid, "Favorite movies", "movie")
+            self.kodi_db.removeTag(movieid, "Favorite movies", "movie")
 
         # Process playstates
         playcount = userdata['PlayCount']
@@ -590,7 +587,7 @@ class Movies(Items):
 
         self.logMsg("%s New resume point: %s" % (itemid, resume))
 
-        kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+        self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
         emby_db.updateReference(itemid, checksum)
 
     def remove(self, itemid):
@@ -658,7 +655,6 @@ class MusicVideos(Items):
         # Process single music video
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -849,32 +845,31 @@ class MusicVideos(Items):
             artist['Type'] = "Artist"
         people.extend(artists)
         people = artwork.getPeopleArtwork(people)
-        kodi_db.addPeople(mvideoid, people, "musicvideo")
+        self.kodi_db.addPeople(mvideoid, people, "musicvideo")
         # Process genres
-        kodi_db.addGenres(mvideoid, genres, "musicvideo")
+        self.kodi_db.addGenres(mvideoid, genres, "musicvideo")
         # Process artwork
         artwork.addArtwork(artwork.getAllArtwork(item), mvideoid, "musicvideo", kodicursor)
         # Process stream details
         streams = API.getMediaStreams()
-        kodi_db.addStreams(fileid, streams, runtime)
+        self.kodi_db.addStreams(fileid, streams, runtime)
         # Process studios
-        kodi_db.addStudios(mvideoid, studios, "musicvideo")
+        self.kodi_db.addStudios(mvideoid, studios, "musicvideo")
         # Process tags: view, emby tags
         tags = [viewtag]
         tags.extend(item['Tags'])
         if userdata['Favorite']:
             tags.append("Favorite musicvideos")
-        kodi_db.addTags(mvideoid, tags, "musicvideo")
+        self.kodi_db.addTags(mvideoid, tags, "musicvideo")
         # Process playstates
         resume = API.adjustResume(userdata['Resume'])
         total = round(float(runtime), 6)
-        kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+        self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
 
     def updateUserdata(self, item):
         # This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
         # Poster with progress bar
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         API = api.API(item)
         
         # Get emby information
@@ -896,9 +891,9 @@ class MusicVideos(Items):
 
         # Process favorite tags
         if userdata['Favorite']:
-            kodi_db.addTag(mvideoid, "Favorite musicvideos", "musicvideo")
+            self.kodi_db.addTag(mvideoid, "Favorite musicvideos", "musicvideo")
         else:
-            kodi_db.removeTag(mvideoid, "Favorite musicvideos", "musicvideo")
+            self.kodi_db.removeTag(mvideoid, "Favorite musicvideos", "musicvideo")
 
         # Process playstates
         playcount = userdata['PlayCount']
@@ -906,7 +901,7 @@ class MusicVideos(Items):
         resume = API.adjustResume(userdata['Resume'])
         total = round(float(runtime), 6)
 
-        kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+        self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
         emby_db.updateReference(itemid, checksum)
 
     def remove(self, itemid):
@@ -1006,7 +1001,6 @@ class TVShows(Items):
         kodicursor = self.kodicursor
         emby = self.emby
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -1128,7 +1122,7 @@ class TVShows(Items):
             self.logMsg("ADD tvshow itemid: %s - Title: %s" % (itemid, title), 1)
             
             # Add top path
-            toppathid = kodi_db.addPath(toplevelpath)
+            toppathid = self.kodi_db.addPath(toplevelpath)
             query = ' '.join((
 
                 "UPDATE path",
@@ -1138,7 +1132,7 @@ class TVShows(Items):
             kodicursor.execute(query, (toplevelpath, "tvshows", "metadata.local", 1, toppathid))
             
             # Add path
-            pathid = kodi_db.addPath(path)
+            pathid = self.kodi_db.addPath(path)
             
             # Create the tvshow entry
             query = (
@@ -1171,26 +1165,26 @@ class TVShows(Items):
         
         # Process cast
         people = artwork.getPeopleArtwork(item['People'])
-        kodi_db.addPeople(showid, people, "tvshow")
+        self.kodi_db.addPeople(showid, people, "tvshow")
         # Process genres
-        kodi_db.addGenres(showid, genres, "tvshow")
+        self.kodi_db.addGenres(showid, genres, "tvshow")
         # Process artwork
         artwork.addArtwork(artwork.getAllArtwork(item), showid, "tvshow", kodicursor)
         # Process studios
-        kodi_db.addStudios(showid, studios, "tvshow")
+        self.kodi_db.addStudios(showid, studios, "tvshow")
         # Process tags: view, emby tags
         tags = [viewtag]
         tags.extend(item['Tags'])
         if userdata['Favorite']:
             tags.append("Favorite tvshows")
-        kodi_db.addTags(showid, tags, "tvshow")
+        self.kodi_db.addTags(showid, tags, "tvshow")
         # Process seasons
         all_seasons = emby.getSeasons(itemid)
         for season in all_seasons['Items']:
             self.add_updateSeason(season, showid=showid)
         else:
             # Finally, refresh the all season entry
-            seasonid = kodi_db.addSeason(showid, -1)
+            seasonid = self.kodi_db.addSeason(showid, -1)
             # Process artwork
             artwork.addArtwork(artwork.getAllArtwork(item), seasonid, "season", kodicursor)
 
@@ -1204,7 +1198,6 @@ class TVShows(Items):
 
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
 
         seasonnum = item.get('IndexNumber', 1)
@@ -1221,7 +1214,7 @@ class TVShows(Items):
                 self.add_update(show)
                 return
         
-        seasonid = kodi_db.addSeason(showid, seasonnum)
+        seasonid = self.kodi_db.addSeason(showid, seasonnum)
         
         if item['LocationType'] != "Virtual":
             # Create the reference in emby table
@@ -1234,7 +1227,6 @@ class TVShows(Items):
         # Process single episode
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -1331,7 +1323,7 @@ class TVShows(Items):
                 self.logMsg("Skipping: %s. Unable to add series: %s." % (itemid, seriesId))
                 return False
 
-        seasonid = kodi_db.addSeason(showid, season)
+        seasonid = self.kodi_db.addSeason(showid, season)
 
         
         ##### GET THE FILE AND PATH #####
@@ -1413,9 +1405,9 @@ class TVShows(Items):
             self.logMsg("ADD episode itemid: %s - Title: %s" % (itemid, title), 1)
             
             # Add path
-            pathid = kodi_db.addPath(path)
+            pathid = self.kodi_db.addPath(path)
             # Add the file
-            fileid = kodi_db.addFile(filename, pathid)
+            fileid = self.kodi_db.addFile(filename, pathid)
             
             # Create the episode entry
             if self.kodiversion in (16, 17):
@@ -1470,21 +1462,21 @@ class TVShows(Items):
         
         # Process cast
         people = artwork.getPeopleArtwork(item['People'])
-        kodi_db.addPeople(episodeid, people, "episode")
+        self.kodi_db.addPeople(episodeid, people, "episode")
         # Process artwork
         artworks = artwork.getAllArtwork(item)
         artwork.addOrUpdateArt(artworks['Primary'], episodeid, "episode", "thumb", kodicursor)
         # Process stream details
         streams = API.getMediaStreams()
-        kodi_db.addStreams(fileid, streams, runtime)
+        self.kodi_db.addStreams(fileid, streams, runtime)
         # Process playstates
         resume = API.adjustResume(userdata['Resume'])
         total = round(float(runtime), 6)
-        kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+        self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
         if not self.directpath and resume:
             # Create additional entry for widgets. This is only required for plugin/episode.
-            temppathid = kodi_db.getPath("plugin://plugin.video.emby.tvshows/")
-            tempfileid = kodi_db.addFile(filename, temppathid)
+            temppathid = self.kodi_db.getPath("plugin://plugin.video.emby.tvshows/")
+            tempfileid = self.kodi_db.addFile(filename, temppathid)
             query = ' '.join((
 
                 "UPDATE files",
@@ -1492,13 +1484,12 @@ class TVShows(Items):
                 "WHERE idFile = ?"
             ))
             kodicursor.execute(query, (temppathid, filename, dateadded, tempfileid))
-            kodi_db.addPlaystate(tempfileid, resume, total, playcount, dateplayed)
+            self.kodi_db.addPlaystate(tempfileid, resume, total, playcount, dateplayed)
 
     def updateUserdata(self, item):
         # This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
         # Poster with progress bar
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         API = api.API(item)
         
         # Get emby information
@@ -1523,9 +1514,9 @@ class TVShows(Items):
         # Process favorite tags
         if mediatype == "tvshow":
             if userdata['Favorite']:
-                kodi_db.addTag(kodiid, "Favorite tvshows", "tvshow")
+                self.kodi_db.addTag(kodiid, "Favorite tvshows", "tvshow")
             else:
-                kodi_db.removeTag(kodiid, "Favorite tvshows", "tvshow")
+                self.kodi_db.removeTag(kodiid, "Favorite tvshows", "tvshow")
         elif mediatype == "episode":
             # Process playstates
             playcount = userdata['PlayCount']
@@ -1535,17 +1526,17 @@ class TVShows(Items):
 
             self.logMsg("%s New resume point: %s" % (itemid, resume))
 
-            kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
+            self.kodi_db.addPlaystate(fileid, resume, total, playcount, dateplayed)
             if not self.directpath and not resume:
                 # Make sure there's no other bookmarks created by widget.
-                filename = kodi_db.getFile(fileid)
-                kodi_db.removeFile("plugin://plugin.video.emby.tvshows/", filename)
+                filename = self.kodi_db.getFile(fileid)
+                self.kodi_db.removeFile("plugin://plugin.video.emby.tvshows/", filename)
 
             if not self.directpath and resume:
                 # Create additional entry for widgets. This is only required for plugin/episode.
-                filename = kodi_db.getFile(fileid)
-                temppathid = kodi_db.getPath("plugin://plugin.video.emby.tvshows/")
-                tempfileid = kodi_db.addFile(filename, temppathid)
+                filename = self.kodi_db.getFile(fileid)
+                temppathid = self.kodi_db.getPath("plugin://plugin.video.emby.tvshows/")
+                tempfileid = self.kodi_db.addFile(filename, temppathid)
                 query = ' '.join((
 
                     "UPDATE files",
@@ -1553,7 +1544,7 @@ class TVShows(Items):
                     "WHERE idFile = ?"
                 ))
                 self.kodicursor.execute(query, (temppathid, filename, dateadded, tempfileid))
-                kodi_db.addPlaystate(tempfileid, resume, total, playcount, dateplayed)
+                self.kodi_db.addPlaystate(tempfileid, resume, total, playcount, dateplayed)
 
         emby_db.updateReference(itemid, checksum)
 
@@ -1749,7 +1740,6 @@ class Music(Items):
         # Process a single artist
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -1796,7 +1786,7 @@ class Music(Items):
             self.logMsg("ADD artist itemid: %s - Name: %s" % (itemid, name), 1)
             # safety checks: It looks like Emby supports the same artist multiple times.
             # Kodi doesn't allow that. In case that happens we just merge the artist entries.
-            artistid = kodi_db.addArtist(name, musicBrainzId)
+            artistid = self.kodi_db.addArtist(name, musicBrainzId)
             # Create the reference in emby table
             emby_db.addReference(itemid, artistid, artisttype, "artist", checksum=checksum)
             
@@ -1831,7 +1821,6 @@ class Music(Items):
         emby = self.emby
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -1882,7 +1871,7 @@ class Music(Items):
             self.logMsg("ADD album itemid: %s - Name: %s" % (itemid, name), 1)
             # safety checks: It looks like Emby supports the same artist multiple times.
             # Kodi doesn't allow that. In case that happens we just merge the artist entries.
-            albumid = kodi_db.addAlbum(name, musicBrainzId)
+            albumid = self.kodi_db.addAlbum(name, musicBrainzId)
             # Create the reference in emby table
             emby_db.addReference(itemid, albumid, "MusicAlbum", "album", checksum=checksum)
 
@@ -1991,7 +1980,7 @@ class Music(Items):
             emby_db.updateParentId(artistId, albumid)
 
         # Add genres
-        kodi_db.addMusicGenres(albumid, genres, "album")
+        self.kodi_db.addMusicGenres(albumid, genres, "album")
         # Update artwork
         artwork.addArtwork(artworks, albumid, "album", kodicursor)
 
@@ -2000,7 +1989,6 @@ class Music(Items):
         kodicursor = self.kodicursor
         emby = self.emby
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         artwork = self.artwork
         API = api.API(item)
 
@@ -2106,7 +2094,7 @@ class Music(Items):
             self.logMsg("ADD song itemid: %s - Title: %s" % (itemid, title), 1)
             
             # Add path
-            pathid = kodi_db.addPath(path)
+            pathid = self.kodi_db.addPath(path)
 
             try:
                 # Get the album
@@ -2117,7 +2105,7 @@ class Music(Items):
                 album_name = item.get('Album')
                 if album_name:
                     self.logMsg("Creating virtual music album for song: %s." % itemid, 1)
-                    albumid = kodi_db.addAlbum(album_name, API.getProvider('MusicBrainzAlbum'))
+                    albumid = self.kodi_db.addAlbum(album_name, API.getProvider('MusicBrainzAlbum'))
                     emby_db.addReference("%salbum%s" % (itemid, albumid), albumid, "MusicAlbum_", "album")
                 else:
                     # No album Id associated to the song.
@@ -2287,7 +2275,7 @@ class Music(Items):
                     kodicursor.execute(query, (album_artists, albumid))
 
         # Add genres
-        kodi_db.addMusicGenres(songid, genres, "song")
+        self.kodi_db.addMusicGenres(songid, genres, "song")
         
         # Update artwork
         allart = artwork.getAllArtwork(item, parentInfo=True)
@@ -2304,7 +2292,6 @@ class Music(Items):
         # Poster with progress bar
         kodicursor = self.kodicursor
         emby_db = self.emby_db
-        kodi_db = self.kodi_db
         API = api.API(item)
 
         # Get emby information