diff --git a/sickbeard/databases/mainDB.py b/sickbeard/databases/mainDB.py index 302d0ed3..bef8c6d9 100644 --- a/sickbeard/databases/mainDB.py +++ b/sickbeard/databases/mainDB.py @@ -36,24 +36,24 @@ class MainSanityCheck(db.DBSanityCheck): self.fix_duplicate_episodes() self.fix_orphan_episodes() - def fix_duplicate_shows(self): + def fix_duplicate_shows(self, column='indexer_id'): sqlResults = self.connection.select( - "SELECT show_id, indexer_id, COUNT(indexer_id) as count FROM tv_shows GROUP BY indexer_id HAVING count > 1") + "SELECT show_id, " + column + ", COUNT(" + column + ") as count FROM tv_shows GROUP BY " + column + " HAVING count > 1") for cur_duplicate in sqlResults: - logger.log(u"Duplicate show detected! indexer_id: " + str(cur_duplicate["indexer_id"]) + u" count: " + str( + logger.log(u"Duplicate show detected! " + column + ": " + str(cur_duplicate[column]) + u" count: " + str( cur_duplicate["count"]), logger.DEBUG) cur_dupe_results = self.connection.select( - "SELECT show_id, indexer_id FROM tv_shows WHERE indexer_id = ? LIMIT ?", - [cur_duplicate["indexer_id"], int(cur_duplicate["count"]) - 1] + "SELECT show_id, " + column + " FROM tv_shows WHERE " + column + " = ? LIMIT ?", + [cur_duplicate[column], int(cur_duplicate["count"]) - 1] ) for cur_dupe_id in cur_dupe_results: logger.log( - u"Deleting duplicate show with indexer_id: " + str(cur_dupe_id["indexer_id"]) + u" show_id: " + str( + u"Deleting duplicate show with " + column + ": " + str(cur_dupe_id[column]) + u" show_id: " + str( cur_dupe_id["show_id"])) self.connection.action("DELETE FROM tv_shows WHERE show_id = ?", [cur_dupe_id["show_id"]]) @@ -493,7 +493,7 @@ class AddShowidTvdbidIndex(AddEmailSubscriptionTable): backupDatabase(17) logger.log(u"Check for duplicate shows before adding unique index.") - MainSanityCheck(self.connection).fix_duplicate_shows() + MainSanityCheck(self.connection).fix_duplicate_shows('tvdb_id') logger.log(u"Adding index on tvdb_id (tv_shows) and showid (tv_episodes) to speed up searches/queries.") if not self.hasTable("idx_showid"):