Clean up shows emptied by web socket

This commit is contained in:
xnappo 2015-05-16 10:58:48 -05:00
parent ac4ea1f361
commit 9041f16ff9
2 changed files with 65 additions and 2 deletions

View file

@ -61,6 +61,55 @@ class ReadKodiDB():
else: else:
return None return None
def getShowIdByEmbyId(self, id, connection=None, cursor=None):
if not connection:
connection = utils.KodiSQL()
cursor = connection.cursor()
closeCon = True
else:
closeCon = False
cursor.execute("SELECT parent_id FROM emby WHERE emby_id=?",(id,))
result = cursor.fetchone()
if closeCon:
connection.close()
if result:
return result[0]
else:
return None
def getTypeByEmbyId(self, id, connection=None, cursor=None):
if not connection:
connection = utils.KodiSQL()
cursor = connection.cursor()
closeCon = True
else:
closeCon = False
cursor.execute("SELECT media_type FROM emby WHERE emby_id=?",(id,))
result = cursor.fetchone()
if closeCon:
connection.close()
if result:
return result[0]
else:
return None
def getShowTotalCount(self, id, connection=None, cursor=None):
if not connection:
connection = utils.KodiSQL()
cursor = connection.cursor()
closeCon = True
else:
closeCon = False
command = "SELECT totalCount FROM tvshowcounts WHERE idShow=%s" % str(id)
cursor.execute(command)
result = cursor.fetchone()
if closeCon:
connection.close()
if result:
return result[0]
else:
return None
def getKodiMusicArtists(self, connection, cursor): def getKodiMusicArtists(self, connection, cursor):
#returns all artists in Kodi db #returns all artists in Kodi db
cursor.execute("SELECT kodi_id, emby_id, checksum FROM emby WHERE media_type='artist'") cursor.execute("SELECT kodi_id, emby_id, checksum FROM emby WHERE media_type='artist'")

View file

@ -21,6 +21,7 @@ from PlaybackUtils import PlaybackUtils
from LibrarySync import LibrarySync from LibrarySync import LibrarySync
from WriteKodiVideoDB import WriteKodiVideoDB from WriteKodiVideoDB import WriteKodiVideoDB
from ReadEmbyDB import ReadEmbyDB from ReadEmbyDB import ReadEmbyDB
from ReadKodiDB import ReadKodiDB
_MODE_BASICPLAY=12 _MODE_BASICPLAY=12
@ -253,8 +254,21 @@ class WebSocketThread(threading.Thread):
connection = utils.KodiSQL("video") connection = utils.KodiSQL("video")
cursor = connection.cursor() cursor = connection.cursor()
for item in itemsRemoved: for item in itemsRemoved:
type=ReadKodiDB().getTypeByEmbyId(item, connection, cursor)
self.logMsg("Type: " + str(type))
self.logMsg("Message : Doing LibraryChanged : Items Removed : Calling deleteItemFromKodiLibrary: " + item, 0) self.logMsg("Message : Doing LibraryChanged : Items Removed : Calling deleteItemFromKodiLibrary: " + item, 0)
if type == "episode":
showId=ReadKodiDB().getShowIdByEmbyId(item, connection, cursor) # Get the TV Show ID
self.logMsg("ShowID: " + str(showId),0)
WriteKodiVideoDB().deleteItemFromKodiLibrary(item, connection, cursor) WriteKodiVideoDB().deleteItemFromKodiLibrary(item, connection, cursor)
connection.commit() #Need to commit so that the count will be right - can't use one in case of multiple deletes
if type == "episode":
showTotalCount = ReadKodiDB().getShowTotalCount(showId, connection, cursor) # Check if there are no episodes left
self.logMsg("ShowTotalCount: " + str(showTotalCount),0)
if showTotalCount == 0 or showTotalCount == None: # Delete show if no episodes are left
embyId=ReadKodiDB().getEmbyIdByKodiId(showId, "tvshow", connection, cursor)
self.logMsg("Message : Doing LibraryChanged : Deleting show:" + embyId, 0)
WriteKodiVideoDB().deleteItemFromKodiLibrary(embyId, connection, cursor)
connection.commit() connection.commit()
cursor.close() cursor.close()