mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-24 17:56:11 +00:00
Migrate to new translatePath library
This commit is contained in:
parent
a18ca8ab9e
commit
5e7901be27
12 changed files with 49 additions and 29 deletions
|
@ -8,7 +8,7 @@ import os
|
|||
from kodi_six import xbmc, xbmcaddon, xbmcvfs
|
||||
|
||||
from helper import translate, window, settings, addon_id, dialog
|
||||
from helper.utils import create_id
|
||||
from helper.utils import create_id, translate_path
|
||||
from helper import LazyLogger # noqa: F402
|
||||
|
||||
##################################################################################################
|
||||
|
@ -85,7 +85,7 @@ def get_device_id(reset=False):
|
|||
if client_id:
|
||||
return client_id
|
||||
|
||||
directory = xbmc.translatePath('special://profile/addon_data/plugin.video.jellyfin/')
|
||||
directory = translate_path('special://profile/addon_data/plugin.video.jellyfin/')
|
||||
|
||||
if not xbmcvfs.exists(directory):
|
||||
xbmcvfs.mkdir(directory)
|
||||
|
|
|
@ -14,6 +14,7 @@ from six import text_type
|
|||
|
||||
from database import jellyfin_db
|
||||
from helper import translate, settings, window, dialog
|
||||
from helper.utils import translate_path
|
||||
from objects import obj
|
||||
from helper import LazyLogger
|
||||
|
||||
|
@ -21,7 +22,7 @@ from helper import LazyLogger
|
|||
|
||||
LOG = LazyLogger(__name__)
|
||||
|
||||
ADDON_DATA = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/")
|
||||
ADDON_DATA = translate_path("special://profile/addon_data/plugin.video.jellyfin/")
|
||||
|
||||
#################################################################################################
|
||||
|
||||
|
@ -77,7 +78,7 @@ class Database(object):
|
|||
|
||||
def _get_database(self, path, silent=False):
|
||||
|
||||
path = xbmc.translatePath(path)
|
||||
path = translate_path(path)
|
||||
|
||||
if not silent:
|
||||
|
||||
|
@ -105,7 +106,7 @@ class Database(object):
|
|||
xbmc.executebuiltin('UpdateLibrary(video)')
|
||||
xbmc.sleep(200)
|
||||
|
||||
databases = xbmc.translatePath("special://database/")
|
||||
databases = translate_path("special://database/")
|
||||
types = {
|
||||
'video': "MyVideos",
|
||||
'music': "MyMusic",
|
||||
|
@ -131,7 +132,7 @@ class Database(object):
|
|||
LOG.debug("Discovered database: %s", target)
|
||||
self.discovered_file = target['db_file']
|
||||
|
||||
return xbmc.translatePath("special://database/%s" % target['db_file'])
|
||||
return translate_path("special://database/%s" % target['db_file'])
|
||||
|
||||
def _sql(self, db_file):
|
||||
|
||||
|
@ -293,7 +294,7 @@ def reset_artwork():
|
|||
|
||||
''' Remove all existing texture.
|
||||
'''
|
||||
thumbnails = xbmc.translatePath('special://thumbnails/')
|
||||
thumbnails = translate_path('special://thumbnails/')
|
||||
|
||||
if xbmcvfs.exists(thumbnails):
|
||||
dirs, ignore = xbmcvfs.listdir(thumbnails)
|
||||
|
|
|
@ -12,6 +12,7 @@ import database
|
|||
from dialogs import context
|
||||
from helper import translate, settings, dialog
|
||||
from helper import LazyLogger
|
||||
from helper.utils import translate_path
|
||||
from jellyfin import Jellyfin
|
||||
|
||||
#################################################################################################
|
||||
|
@ -52,7 +53,7 @@ class Context(object):
|
|||
self.media = xbmc.getInfoLabel('ListItem.DBTYPE')
|
||||
item_id = None
|
||||
|
||||
addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
addon_data = translate_path("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
with open(addon_data, 'rb') as infile:
|
||||
data = json.load(infile)
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ import client
|
|||
from database import reset, get_sync, Database, jellyfin_db, get_credentials
|
||||
from objects import Objects, Actions
|
||||
from helper import translate, event, settings, window, dialog, api, JSONRPC
|
||||
from helper.utils import JsonDebugPrinter
|
||||
from helper.utils import JsonDebugPrinter, translate_path
|
||||
from helper import LazyLogger
|
||||
from jellyfin import Jellyfin
|
||||
|
||||
|
@ -57,7 +57,7 @@ class Events(object):
|
|||
jellyfin_client = Jellyfin(server).get_client()
|
||||
api_client = jellyfin_client.jellyfin
|
||||
|
||||
addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
addon_data = translate_path("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
try:
|
||||
with open(addon_data, 'rb') as infile:
|
||||
data = json.load(infile)
|
||||
|
@ -519,7 +519,7 @@ def get_fanart(item_id, path, server_id=None, api_client=None):
|
|||
LOG.info("[ extra fanart ] %s", item_id)
|
||||
objects = Objects()
|
||||
list_li = []
|
||||
directory = xbmc.translatePath("special://thumbnails/jellyfin/%s/" % item_id)
|
||||
directory = translate_path("special://thumbnails/jellyfin/%s/" % item_id)
|
||||
|
||||
if not xbmcvfs.exists(directory):
|
||||
|
||||
|
@ -792,7 +792,7 @@ def get_themes(api_client):
|
|||
from helper.playutils import PlayUtils
|
||||
from helper.xmls import tvtunes_nfo
|
||||
|
||||
library = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/library")
|
||||
library = translate_path("special://profile/addon_data/plugin.video.jellyfin/library")
|
||||
play = settings('useDirectPaths') == "1"
|
||||
|
||||
if not xbmcvfs.exists(library + '/'):
|
||||
|
@ -886,7 +886,7 @@ def backup():
|
|||
|
||||
delete_folder(backup)
|
||||
|
||||
addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin")
|
||||
addon_data = translate_path("special://profile/addon_data/plugin.video.jellyfin")
|
||||
destination_data = os.path.join(backup, "addon_data", "plugin.video.jellyfin")
|
||||
destination_databases = os.path.join(backup, "Database")
|
||||
|
||||
|
@ -901,18 +901,18 @@ def backup():
|
|||
|
||||
databases = Objects().objects
|
||||
|
||||
db = xbmc.translatePath(databases['jellyfin'])
|
||||
db = translate_path(databases['jellyfin'])
|
||||
xbmcvfs.copy(db, os.path.join(destination_databases, db.rsplit('\\', 1)[1]))
|
||||
LOG.info("copied jellyfin.db")
|
||||
|
||||
db = xbmc.translatePath(databases['video'])
|
||||
db = translate_path(databases['video'])
|
||||
filename = db.rsplit('\\', 1)[1]
|
||||
xbmcvfs.copy(db, os.path.join(destination_databases, filename))
|
||||
LOG.info("copied %s", filename)
|
||||
|
||||
if settings('enableMusic.bool'):
|
||||
|
||||
db = xbmc.translatePath(databases['music'])
|
||||
db = translate_path(databases['music'])
|
||||
filename = db.rsplit('\\', 1)[1]
|
||||
xbmcvfs.copy(db, os.path.join(destination_databases, filename))
|
||||
LOG.info("copied %s", filename)
|
||||
|
|
|
@ -19,7 +19,7 @@ import library
|
|||
import monitor
|
||||
from views import Views
|
||||
from helper import translate, window, settings, event, dialog, set_addon_mode
|
||||
from helper.utils import JsonDebugPrinter
|
||||
from helper.utils import JsonDebugPrinter, translate_path
|
||||
from jellyfin import Jellyfin
|
||||
from helper import LazyLogger
|
||||
|
||||
|
@ -44,7 +44,7 @@ class Service(xbmc.Monitor):
|
|||
window('jellyfin_should_stop', clear=True)
|
||||
|
||||
self.settings['addon_version'] = client.get_version()
|
||||
self.settings['profile'] = xbmc.translatePath('special://profile')
|
||||
self.settings['profile'] = translate_path('special://profile')
|
||||
self.settings['mode'] = settings('useDirectPaths')
|
||||
self.settings['log_level'] = settings('logLevel') or "1"
|
||||
self.settings['auth_check'] = True
|
||||
|
|
|
@ -12,6 +12,7 @@ from kodi_six import xbmc, xbmcaddon
|
|||
|
||||
import database
|
||||
from helper import get_filesystem_encoding
|
||||
from helper.utils import translate_path
|
||||
|
||||
from . import settings
|
||||
from . import kodi_version
|
||||
|
@ -19,7 +20,7 @@ from . import kodi_version
|
|||
##################################################################################################
|
||||
|
||||
__addon__ = xbmcaddon.Addon(id='plugin.video.jellyfin')
|
||||
__pluginpath__ = xbmc.translatePath(__addon__.getAddonInfo('path'))
|
||||
__pluginpath__ = translate_path(__addon__.getAddonInfo('path'))
|
||||
|
||||
##################################################################################################
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ from kodi_six import xbmc, xbmcvfs
|
|||
import client
|
||||
import requests
|
||||
from helper import LazyLogger
|
||||
from helper.utils import translate_path
|
||||
|
||||
from . import translate, settings, window, dialog, api
|
||||
|
||||
|
@ -548,7 +549,7 @@ class PlayUtils(object):
|
|||
''' Download external subtitles to temp folder
|
||||
to be able to have proper names to streams.
|
||||
'''
|
||||
temp = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/temp/")
|
||||
temp = translate_path("special://profile/addon_data/plugin.video.jellyfin/temp/")
|
||||
|
||||
if not xbmcvfs.exists(temp):
|
||||
xbmcvfs.mkdir(temp)
|
||||
|
|
|
@ -551,3 +551,15 @@ def find_library(server, item):
|
|||
|
||||
LOG.error('No ancestor found, not syncing item with ID: {}'.format(item['Id']))
|
||||
return {}
|
||||
|
||||
def translate_path(path):
|
||||
'''
|
||||
Use new library location for translate path starting in Kodi 19
|
||||
'''
|
||||
version = kodi_version()
|
||||
|
||||
if version > 18:
|
||||
return xbmcvfs.translatePath(path)
|
||||
else:
|
||||
return xbmc.translatePath(path)
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import xml.etree.ElementTree as etree
|
|||
from kodi_six import xbmc
|
||||
|
||||
from helper import LazyLogger
|
||||
from helper.utils import translate_path
|
||||
|
||||
from . import translate, dialog, settings
|
||||
|
||||
|
@ -47,7 +48,7 @@ def advanced_settings():
|
|||
if settings('useDirectPaths') != "0":
|
||||
return
|
||||
|
||||
path = xbmc.translatePath("special://profile/")
|
||||
path = translate_path("special://profile/")
|
||||
file = os.path.join(path, 'advancedsettings.xml')
|
||||
|
||||
try:
|
||||
|
|
|
@ -15,6 +15,7 @@ from helper import translate, playutils, api, window, settings, dialog
|
|||
from dialogs import resume
|
||||
from helper import LazyLogger
|
||||
from jellyfin import Jellyfin
|
||||
from helper.utils import translate_path
|
||||
|
||||
from .obj import Objects
|
||||
|
||||
|
@ -34,7 +35,7 @@ class Actions(object):
|
|||
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")
|
||||
addon_data = translate_path("special://profile/addon_data/plugin.video.jellyfin/data.json")
|
||||
try:
|
||||
with open(addon_data, 'rb') as infile:
|
||||
data = json.load(infile)
|
||||
|
|
|
@ -11,6 +11,7 @@ from objects.obj import Objects
|
|||
from helper import translate, api, window, settings, dialog, event, JSONRPC
|
||||
from jellyfin import Jellyfin
|
||||
from helper import LazyLogger
|
||||
from helper.utils import translate_path
|
||||
|
||||
#################################################################################################
|
||||
|
||||
|
@ -420,7 +421,7 @@ class Player(xbmc.Player):
|
|||
LOG.info("<[ transcode/%s ]", item['Id'])
|
||||
item['Server'].jellyfin.close_transcode(item['DeviceId'], item['PlaySessionId'])
|
||||
|
||||
path = xbmc.translatePath("special://profile/addon_data/plugin.video.jellyfin/temp/")
|
||||
path = translate_path("special://profile/addon_data/plugin.video.jellyfin/temp/")
|
||||
|
||||
if xbmcvfs.exists(path):
|
||||
dirs, files = xbmcvfs.listdir(path)
|
||||
|
|
|
@ -13,6 +13,7 @@ from database import Database, jellyfin_db, get_sync, save_sync
|
|||
from helper import translate, api, window, event
|
||||
from jellyfin import Jellyfin
|
||||
from helper import LazyLogger
|
||||
from helper.utils import translate_path
|
||||
|
||||
#################################################################################################
|
||||
|
||||
|
@ -186,8 +187,8 @@ class Views(object):
|
|||
|
||||
''' Set up playlists, video nodes, window prop.
|
||||
'''
|
||||
node_path = xbmc.translatePath("special://profile/library/video")
|
||||
playlist_path = xbmc.translatePath("special://profile/playlists/video")
|
||||
node_path = translate_path("special://profile/library/video")
|
||||
playlist_path = translate_path("special://profile/playlists/video")
|
||||
index = 0
|
||||
|
||||
# Kodi 19 doesn't seem to create this directory on it's own
|
||||
|
@ -931,7 +932,7 @@ class Views(object):
|
|||
|
||||
''' Remove all jellyfin playlists.
|
||||
'''
|
||||
path = xbmc.translatePath("special://profile/playlists/video/")
|
||||
path = translate_path("special://profile/playlists/video/")
|
||||
_, files = xbmcvfs.listdir(path)
|
||||
for file in files:
|
||||
if file.startswith('jellyfin'):
|
||||
|
@ -941,7 +942,7 @@ class Views(object):
|
|||
|
||||
''' Remove playlist based based on view_id.
|
||||
'''
|
||||
path = xbmc.translatePath("special://profile/playlists/video/")
|
||||
path = translate_path("special://profile/playlists/video/")
|
||||
_, files = xbmcvfs.listdir(path)
|
||||
for file in files:
|
||||
file = file
|
||||
|
@ -958,7 +959,7 @@ class Views(object):
|
|||
|
||||
''' Remove node and children files.
|
||||
'''
|
||||
path = xbmc.translatePath("special://profile/library/video/")
|
||||
path = translate_path("special://profile/library/video/")
|
||||
dirs, files = xbmcvfs.listdir(path)
|
||||
|
||||
for file in files:
|
||||
|
@ -980,7 +981,7 @@ class Views(object):
|
|||
|
||||
''' Remove node and children files based on view_id.
|
||||
'''
|
||||
path = xbmc.translatePath("special://profile/library/video/")
|
||||
path = translate_path("special://profile/library/video/")
|
||||
dirs, files = xbmcvfs.listdir(path)
|
||||
|
||||
for directory in dirs:
|
||||
|
|
Loading…
Reference in a new issue