From 54270b2ebd25277f124e4e5b0728a029325cbc0e Mon Sep 17 00:00:00 2001 From: Matt Date: Fri, 22 Jan 2021 23:56:14 -0500 Subject: [PATCH 1/4] Remove 'User' label from manual login forms --- jellyfin_kodi/dialogs/loginmanual.py | 2 +- jellyfin_kodi/dialogs/servermanual.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jellyfin_kodi/dialogs/loginmanual.py b/jellyfin_kodi/dialogs/loginmanual.py index 9f708cfd..0852245b 100644 --- a/jellyfin_kodi/dialogs/loginmanual.py +++ b/jellyfin_kodi/dialogs/loginmanual.py @@ -99,7 +99,7 @@ class LoginManual(xbmcgui.WindowXMLDialog): def _add_editcontrol(self, x, y, height, width, password=False): kwargs = dict( - label="User", + label="", font="font13", textColor="FF00A4DC", disabledColor="FF888888", diff --git a/jellyfin_kodi/dialogs/servermanual.py b/jellyfin_kodi/dialogs/servermanual.py index 94211ffb..641b6be6 100644 --- a/jellyfin_kodi/dialogs/servermanual.py +++ b/jellyfin_kodi/dialogs/servermanual.py @@ -98,7 +98,7 @@ class ServerManual(xbmcgui.WindowXMLDialog): def _add_editcontrol(self, x, y, height, width): control = xbmcgui.ControlEdit(0, 0, 0, 0, - label="User", + label="", font="font13", textColor="FF00A4DC", disabledColor="FF888888", From 9d059a94d77513787500e70a3cad318d62d988d6 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 23 Jan 2021 13:35:21 -0500 Subject: [PATCH 2/4] Fix casting --- jellyfin_kodi/objects/actions.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py index 6ca92f24..483261bf 100644 --- a/jellyfin_kodi/objects/actions.py +++ b/jellyfin_kodi/objects/actions.py @@ -13,6 +13,7 @@ import database from helper import translate, playutils, api, window, settings, dialog from dialogs import resume from helper import LazyLogger +from jellyfin import Jellyfin from .obj import Objects @@ -28,8 +29,26 @@ class Actions(object): def __init__(self, server_id=None, api_client=None): self.server_id = server_id or None + if not api_client: + LOG.debug('No api client provided, attempting to use config file') + jellyfin_client = Jellyfin(server_id).get_client() + api_client = jellyfin_client.jellyfin + addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/data.json") + try: + with open(addon_data, 'rb') as infile: + data = json.load(infile) + + server_data = data['Servers'][0] + api_client.config.data['auth.server'] = server_data.get('address') + api_client.config.data['auth.server-name'] = server_data.get('Name') + api_client.config.data['auth.user_id'] = server_data.get('UserId') + api_client.config.data['auth.token'] = server_data.get('AccessToken') + except Exception as e: + LOG.warning('Addon appears to not be configured yet: {}'.format(e)) + self.api_client = api_client self.server = self.api_client.config.data['auth.server'] + self.stack = [] def get_playlist(self, item): From 75590d3a1d5bb599243b393cfb4554100e59d6d6 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 23 Jan 2021 13:40:56 -0500 Subject: [PATCH 3/4] Missing import --- jellyfin_kodi/objects/actions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py index 483261bf..ff312ca5 100644 --- a/jellyfin_kodi/objects/actions.py +++ b/jellyfin_kodi/objects/actions.py @@ -5,6 +5,7 @@ from __future__ import division, absolute_import, print_function, unicode_litera import threading import sys +import json from datetime import timedelta from kodi_six import xbmc, xbmcgui, xbmcplugin, xbmcaddon From 0aa2e7132003b8ebf600b001d42e4fc00507d505 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 23 Jan 2021 16:52:48 -0500 Subject: [PATCH 4/4] Fix music artist syncing for Kodi 19 --- jellyfin_kodi/objects/kodi/music.py | 7 ++++++- jellyfin_kodi/objects/kodi/queries_music.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/jellyfin_kodi/objects/kodi/music.py b/jellyfin_kodi/objects/kodi/music.py index dd7a78c9..01d324e6 100644 --- a/jellyfin_kodi/objects/kodi/music.py +++ b/jellyfin_kodi/objects/kodi/music.py @@ -88,7 +88,12 @@ class Music(Kodi): self.cursor.execute(QU.update_artist_name, args) def update(self, *args): - self.cursor.execute(QU.update_artist, args) + if self.version_id < 74: + self.cursor.execute(QU.update_artist74, args) + else: + # No field for backdrops in Kodi 19, so we need to omit that here + args = args[:3] + args[4:] + self.cursor.execute(QU.update_artist82, args) def link(self, *args): self.cursor.execute(QU.update_link, args) diff --git a/jellyfin_kodi/objects/kodi/queries_music.py b/jellyfin_kodi/objects/kodi/queries_music.py index 53d85ece..bf56797e 100644 --- a/jellyfin_kodi/objects/kodi/queries_music.py +++ b/jellyfin_kodi/objects/kodi/queries_music.py @@ -154,11 +154,16 @@ SET strArtist = ? WHERE idArtist = ? """ update_artist_name_obj = ["{Name}", "{ArtistId}"] -update_artist = """ +update_artist74 = """ UPDATE artist SET strGenres = ?, strBiography = ?, strImage = ?, strFanart = ?, lastScraped = ? WHERE idArtist = ? """ +update_artist82 = """ +UPDATE artist +SET strGenres = ?, strBiography = ?, strImage = ?, lastScraped = ? +WHERE idArtist = ? +""" update_link = """ INSERT OR REPLACE INTO album_artist(idArtist, idAlbum, strArtist) VALUES (?, ?, ?)