mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-06-16 05:06:13 +00:00
Tool black: auto-format Python code
This commit is contained in:
parent
e4d8084c25
commit
7763762212
54 changed files with 6545 additions and 4723 deletions
|
@ -17,14 +17,18 @@ from ..jellyfin import Jellyfin
|
|||
#################################################################################################
|
||||
|
||||
LOG = LazyLogger(__name__)
|
||||
XML_PATH = (xbmcaddon.Addon('plugin.video.jellyfin').getAddonInfo('path'), "default", "1080i")
|
||||
XML_PATH = (
|
||||
xbmcaddon.Addon("plugin.video.jellyfin").getAddonInfo("path"),
|
||||
"default",
|
||||
"1080i",
|
||||
)
|
||||
OPTIONS = {
|
||||
'Refresh': translate(30410),
|
||||
'Delete': translate(30409),
|
||||
'Addon': translate(30408),
|
||||
'AddFav': translate(30405),
|
||||
'RemoveFav': translate(30406),
|
||||
'Transcode': translate(30412)
|
||||
"Refresh": translate(30410),
|
||||
"Delete": translate(30409),
|
||||
"Addon": translate(30408),
|
||||
"AddFav": translate(30405),
|
||||
"RemoveFav": translate(30406),
|
||||
"Transcode": translate(30412),
|
||||
}
|
||||
|
||||
#################################################################################################
|
||||
|
@ -39,31 +43,33 @@ class Context(object):
|
|||
try:
|
||||
self.kodi_id = sys.listitem.getVideoInfoTag().getDbId() or None
|
||||
self.media = self.get_media_type()
|
||||
self.server_id = sys.listitem.getProperty('jellyfinserver') or None
|
||||
self.server_id = sys.listitem.getProperty("jellyfinserver") or None
|
||||
self.api_client = Jellyfin(self.server_id).get_client().jellyfin
|
||||
item_id = sys.listitem.getProperty('jellyfinid')
|
||||
item_id = sys.listitem.getProperty("jellyfinid")
|
||||
except AttributeError:
|
||||
self.server_id = None
|
||||
|
||||
if xbmc.getInfoLabel('ListItem.Property(jellyfinid)'):
|
||||
item_id = xbmc.getInfoLabel('ListItem.Property(jellyfinid)')
|
||||
if xbmc.getInfoLabel("ListItem.Property(jellyfinid)"):
|
||||
item_id = xbmc.getInfoLabel("ListItem.Property(jellyfinid)")
|
||||
else:
|
||||
self.kodi_id = xbmc.getInfoLabel('ListItem.DBID')
|
||||
self.media = xbmc.getInfoLabel('ListItem.DBTYPE')
|
||||
self.kodi_id = xbmc.getInfoLabel("ListItem.DBID")
|
||||
self.media = xbmc.getInfoLabel("ListItem.DBTYPE")
|
||||
item_id = None
|
||||
|
||||
addon_data = translate_path("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
with open(addon_data, 'rb') as infile:
|
||||
addon_data = translate_path(
|
||||
"special://profile/addon_data/plugin.video.jellyfin/data.json"
|
||||
)
|
||||
with open(addon_data, "rb") as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
try:
|
||||
server_data = data['Servers'][0]
|
||||
self.api_client.config.data['auth.server'] = server_data.get('address')
|
||||
self.api_client.config.data['auth.server-name'] = server_data.get('Name')
|
||||
self.api_client.config.data['auth.user_id'] = server_data.get('UserId')
|
||||
self.api_client.config.data['auth.token'] = server_data.get('AccessToken')
|
||||
server_data = data["Servers"][0]
|
||||
self.api_client.config.data["auth.server"] = server_data.get("address")
|
||||
self.api_client.config.data["auth.server-name"] = server_data.get("Name")
|
||||
self.api_client.config.data["auth.user_id"] = server_data.get("UserId")
|
||||
self.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))
|
||||
LOG.warning("Addon appears to not be configured yet: {}".format(e))
|
||||
|
||||
if self.server_id or item_id:
|
||||
self.item = self.api_client.get_item(item_id)
|
||||
|
@ -81,26 +87,28 @@ class Context(object):
|
|||
elif self.select_menu():
|
||||
self.action_menu()
|
||||
|
||||
if self._selected_option in (OPTIONS['Delete'], OPTIONS['AddFav'], OPTIONS['RemoveFav']):
|
||||
if self._selected_option in (
|
||||
OPTIONS["Delete"],
|
||||
OPTIONS["AddFav"],
|
||||
OPTIONS["RemoveFav"],
|
||||
):
|
||||
|
||||
xbmc.sleep(500)
|
||||
xbmc.executebuiltin('Container.Refresh')
|
||||
xbmc.executebuiltin("Container.Refresh")
|
||||
|
||||
def get_media_type(self):
|
||||
|
||||
''' Get media type based on sys.listitem. If unfilled, base on visible window.
|
||||
'''
|
||||
"""Get media type based on sys.listitem. If unfilled, base on visible window."""
|
||||
media = sys.listitem.getVideoInfoTag().getMediaType()
|
||||
|
||||
if not media:
|
||||
|
||||
if xbmc.getCondVisibility('Container.Content(albums)'):
|
||||
if xbmc.getCondVisibility("Container.Content(albums)"):
|
||||
media = "album"
|
||||
elif xbmc.getCondVisibility('Container.Content(artists)'):
|
||||
elif xbmc.getCondVisibility("Container.Content(artists)"):
|
||||
media = "artist"
|
||||
elif xbmc.getCondVisibility('Container.Content(songs)'):
|
||||
elif xbmc.getCondVisibility("Container.Content(songs)"):
|
||||
media = "song"
|
||||
elif xbmc.getCondVisibility('Container.Content(pictures)'):
|
||||
elif xbmc.getCondVisibility("Container.Content(pictures)"):
|
||||
media = "picture"
|
||||
else:
|
||||
LOG.info("media is unknown")
|
||||
|
@ -108,40 +116,37 @@ class Context(object):
|
|||
return media
|
||||
|
||||
def get_item_id(self):
|
||||
|
||||
''' Get synced item from jellyfindb.
|
||||
'''
|
||||
"""Get synced item from jellyfindb."""
|
||||
item = database.get_item(self.kodi_id, self.media)
|
||||
|
||||
if not item:
|
||||
return
|
||||
|
||||
return {
|
||||
'Id': item[0],
|
||||
'UserData': json.loads(item[4]) if item[4] else {},
|
||||
'Type': item[3]
|
||||
"Id": item[0],
|
||||
"UserData": json.loads(item[4]) if item[4] else {},
|
||||
"Type": item[3],
|
||||
}
|
||||
|
||||
def select_menu(self):
|
||||
|
||||
''' Display the select dialog.
|
||||
Favorites, Refresh, Delete (opt), Settings.
|
||||
'''
|
||||
"""Display the select dialog.
|
||||
Favorites, Refresh, Delete (opt), Settings.
|
||||
"""
|
||||
options = []
|
||||
|
||||
if self.item['Type'] != 'Season':
|
||||
if self.item["Type"] != "Season":
|
||||
|
||||
if self.item['UserData'].get('IsFavorite'):
|
||||
options.append(OPTIONS['RemoveFav'])
|
||||
if self.item["UserData"].get("IsFavorite"):
|
||||
options.append(OPTIONS["RemoveFav"])
|
||||
else:
|
||||
options.append(OPTIONS['AddFav'])
|
||||
options.append(OPTIONS["AddFav"])
|
||||
|
||||
options.append(OPTIONS['Refresh'])
|
||||
options.append(OPTIONS["Refresh"])
|
||||
|
||||
if settings('enableContextDelete.bool'):
|
||||
options.append(OPTIONS['Delete'])
|
||||
if settings("enableContextDelete.bool"):
|
||||
options.append(OPTIONS["Delete"])
|
||||
|
||||
options.append(OPTIONS['Addon'])
|
||||
options.append(OPTIONS["Addon"])
|
||||
|
||||
context_menu = context.ContextMenu("script-jellyfin-context.xml", *XML_PATH)
|
||||
context_menu.set_options(options)
|
||||
|
@ -156,24 +161,26 @@ class Context(object):
|
|||
|
||||
selected = self._selected_option
|
||||
|
||||
if selected == OPTIONS['Refresh']:
|
||||
self.api_client.refresh_item(self.item['Id'])
|
||||
if selected == OPTIONS["Refresh"]:
|
||||
self.api_client.refresh_item(self.item["Id"])
|
||||
|
||||
elif selected == OPTIONS['AddFav']:
|
||||
self.api_client.favorite(self.item['Id'], True)
|
||||
elif selected == OPTIONS["AddFav"]:
|
||||
self.api_client.favorite(self.item["Id"], True)
|
||||
|
||||
elif selected == OPTIONS['RemoveFav']:
|
||||
self.api_client.favorite(self.item['Id'], False)
|
||||
elif selected == OPTIONS["RemoveFav"]:
|
||||
self.api_client.favorite(self.item["Id"], False)
|
||||
|
||||
elif selected == OPTIONS['Addon']:
|
||||
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.jellyfin)')
|
||||
elif selected == OPTIONS["Addon"]:
|
||||
xbmc.executebuiltin("Addon.OpenSettings(plugin.video.jellyfin)")
|
||||
|
||||
elif selected == OPTIONS['Delete']:
|
||||
elif selected == OPTIONS["Delete"]:
|
||||
self.delete_item()
|
||||
|
||||
def delete_item(self):
|
||||
if settings('skipContextMenu.bool') or dialog("yesno", "{jellyfin}", translate(33015)):
|
||||
self.api_client.delete_item(self.item['Id'])
|
||||
if settings("skipContextMenu.bool") or dialog(
|
||||
"yesno", "{jellyfin}", translate(33015)
|
||||
):
|
||||
self.api_client.delete_item(self.item["Id"])
|
||||
|
||||
def transcode(self):
|
||||
filename = xbmc.getInfoLabel("ListItem.Filenameandpath")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue