Fix TypeErrors because SQL returns tuplex

This commit is contained in:
croneter 2018-02-25 18:07:48 +01:00
parent 1a77427591
commit eedabf5888

View file

@ -273,30 +273,37 @@ class KodiDBMethods(object):
) )
self.cursor.execute(query, (country_id, kodiid, mediatype)) self.cursor.execute(query, (country_id, kodiid, mediatype))
def _delete_from_link_and_table(self, kodi_id, kodi_type, link_table,
table, key):
# Get all existing links
query = ('SELECT %s FROM %s WHERE media_id = ? AND media_type = ? '
% (key, link_table))
self.cursor.execute(query, (kodi_id, kodi_type))
key_list = self.cursor.fetchall()
# Delete all links
query = ('DELETE FROM %s WHERE media_id = ? AND media_type = ?'
% link_table)
self.cursor.execute(query, (kodi_id, kodi_type))
# Which countries are now orphaned?
query = 'SELECT %s FROM %s WHERE %s = ?' % (key, link_table, key)
query_delete = 'DELETE FROM %s WHERE %s = ?' % (table, key)
for entry in key_list:
# country_id still in table?
self.cursor.execute(query, (entry[0],))
if self.cursor.fetchone() is None:
self.cursor.execute(query_delete, (entry[0],))
def delete_countries(self, kodi_id, kodi_type): def delete_countries(self, kodi_id, kodi_type):
""" """
Assuming that video kodi_id, kodi_type gets deleted, will delete any Assuming that video kodi_id, kodi_type gets deleted, will delete any
associated country links in the table country_link and also deletes associated country links in the table country_link and also deletes
orphaned countries in the table country orphaned countries in the table country
""" """
# Get all existing links self._delete_from_link_and_table(kodi_id,
query = ''' kodi_type,
SELECT country_id FROM country_link 'country_link',
WHERE media_id = ? AND media_type = ? 'country',
''' 'country_id')
self.cursor.execute(query, (kodi_id, kodi_type))
country_ids = self.cursor.fetchall()
# Delete all links
query = 'DELETE FROM country_link WHERE media_id = ? AND media_type = ?'
self.cursor.execute(query, (kodi_id, kodi_type))
# Which countries are now orphaned?
query = 'SELECT country_id FROM country_link WHERE country_id = ?'
query_delete = 'DELETE FROM country WHERE country_id = ?'
for country_id in country_ids:
# country_id still in table?
self.cursor.execute(query, (country_id,))
if self.cursor.fetchone() is None:
self.cursor.execute(query_delete, (country_id,))
def _getactorid(self, name): def _getactorid(self, name):
""" """
@ -414,16 +421,16 @@ class KodiDBMethods(object):
query_delete = 'DELETE FROM actor WHERE actor_id = ?' query_delete = 'DELETE FROM actor WHERE actor_id = ?'
# Delete orphaned people # Delete orphaned people
for actor_id in actor_ids: for actor_id in actor_ids:
self.cursor.execute(query_actor, (actor_id,)) self.cursor.execute(query_actor, (actor_id[0],))
if self.cursor.fetchone() is None: if self.cursor.fetchone() is None:
self.cursor.execute(query_director, (actor_id,)) self.cursor.execute(query_director, (actor_id[0],))
if self.cursor.fetchone() is None: if self.cursor.fetchone() is None:
self.cursor.execute(query_writer, (actor_id,)) self.cursor.execute(query_writer, (actor_id[0],))
if self.cursor.fetchone() is None: if self.cursor.fetchone() is None:
# Delete the person itself from actor table # Delete the person itself from actor table
self.cursor.execute(query_delete, (actor_id,)) self.cursor.execute(query_delete, (actor_id[0],))
# Delete any associated artwork # Delete any associated artwork
self.artwork.deleteArtwork(actor_id, self.artwork.deleteArtwork(actor_id[0],
'actor', 'actor',
self.cursor) self.cursor)