Delete empty movie sets from Kodi DB

This commit is contained in:
croneter 2018-02-26 09:06:35 +01:00
parent 9540e3505c
commit 769fe8b926
2 changed files with 26 additions and 0 deletions

View file

@ -480,6 +480,7 @@ class Movies(Items):
artwork.deleteArtwork(kodi_id, kodi_type, kodicursor) artwork.deleteArtwork(kodi_id, kodi_type, kodicursor)
if kodi_type == v.KODI_TYPE_MOVIE: if kodi_type == v.KODI_TYPE_MOVIE:
set_id = self.kodi_db.get_set_id(kodi_id)
self.kodi_db.delete_countries(kodi_id, kodi_type) self.kodi_db.delete_countries(kodi_id, kodi_type)
self.kodi_db.delete_people(kodi_id, kodi_type) self.kodi_db.delete_people(kodi_id, kodi_type)
self.kodi_db.delete_genre(kodi_id, kodi_type) self.kodi_db.delete_genre(kodi_id, kodi_type)
@ -490,6 +491,8 @@ class Movies(Items):
(kodi_id,)) (kodi_id,))
kodicursor.execute("DELETE FROM files WHERE idFile = ?", kodicursor.execute("DELETE FROM files WHERE idFile = ?",
(file_id,)) (file_id,))
if set_id:
self.kodi_db.delete_possibly_empty_set(set_id)
if v.KODIVERSION >= 17: if v.KODIVERSION >= 17:
self.kodi_db.remove_uniqueid(kodi_id, kodi_type) self.kodi_db.remove_uniqueid(kodi_id, kodi_type)
self.kodi_db.remove_ratings(kodi_id, kodi_type) self.kodi_db.remove_ratings(kodi_id, kodi_type)

View file

@ -990,6 +990,29 @@ class KodiDBMethods(object):
)) ))
self.cursor.execute(query, (movieid,)) self.cursor.execute(query, (movieid,))
def get_set_id(self, kodi_id):
"""
Returns the set_id for the movie with kodi_id or None
"""
query = 'SELECT idSet FROM movie WHERE idMovie = ?'
self.cursor.execute(query, (kodi_id,))
try:
answ = self.cursor.fetchone()[0]
except TypeError:
answ = None
return answ
def delete_possibly_empty_set(self, set_id):
"""
Checks whether there are other movies in the set set_id. If not,
deletes the set
"""
query = 'SELECT idSet FROM movie WHERE idSet = ?'
self.cursor.execute(query, (set_id,))
if self.cursor.fetchone() is None:
query = 'DELETE FROM sets WHERE idSet = ?'
self.cursor.execute(query, (set_id,))
def addSeason(self, showid, seasonnumber): def addSeason(self, showid, seasonnumber):
query = ' '.join(( query = ' '.join((