diff --git a/jellyfin_kodi/objects/kodi/kodi.py b/jellyfin_kodi/objects/kodi/kodi.py index 0ed7ebe2..f683151e 100644 --- a/jellyfin_kodi/objects/kodi/kodi.py +++ b/jellyfin_kodi/objects/kodi/kodi.py @@ -22,6 +22,9 @@ class Kodi(object): def __init__(self): self.artwork = artwork.Artwork(self.cursor) + self.cursor.execute(QU.get_all_people) + self._people_cache = dict(self.cursor.fetchall()) + def create_entry_path(self): self.cursor.execute(QU.create_path) @@ -156,7 +159,7 @@ class Kodi(object): return person_id - def get_person(self, *args): + def _get_person(self, *args): try: return self.add_person(*args) except IntegrityError: @@ -165,6 +168,14 @@ class Kodi(object): self.cursor.execute(QU.get_person, args) return self.cursor.fetchone()[0] + def get_person(self, *args): + try: + return self._people_cache[args] + except KeyError: + person_id = self._get_person(*args) + self._people_cache[args] = person_id + return person_id + def add_genres(self, genres, *args): ''' Delete current genres first for clean slate. diff --git a/jellyfin_kodi/objects/kodi/queries.py b/jellyfin_kodi/objects/kodi/queries.py index fea7dba6..60d326b4 100644 --- a/jellyfin_kodi/objects/kodi/queries.py +++ b/jellyfin_kodi/objects/kodi/queries.py @@ -88,6 +88,10 @@ SELECT strFilename FROM files WHERE idFile = ? """ +get_all_people = """ +SELECT name, actor_id +FROM actor +""" get_person = """ SELECT actor_id FROM actor