diff --git a/lib/_included_packages/plexnet/gdm.py b/lib/_included_packages/plexnet/gdm.py index ccc540ae..3dce02a3 100644 --- a/lib/_included_packages/plexnet/gdm.py +++ b/lib/_included_packages/plexnet/gdm.py @@ -28,7 +28,7 @@ class GDMDiscovery(object): from . import plexapp return util.INTERFACE.getPreference("gdm_discovery", True) and self.thread and self.thread.is_alive() - ''' + r''' def discover(self): # Only allow discovery if enabled and not currently running self._close = False diff --git a/lib/templating/core.py b/lib/templating/core.py index 30a53392..e0249e1d 100644 --- a/lib/templating/core.py +++ b/lib/templating/core.py @@ -7,6 +7,7 @@ from kodi_six import xbmcvfs, xbmc from ibis.context import ContextDict from lib.logging import log as LOG, log_error as ERROR from .util import deep_update +from ..util import PROFILE from lib.os_utils import fast_iglob from .filters import * @@ -59,11 +60,22 @@ class TemplateEngine(object): TEMPLATES = None def init(self, target_dir, template_dir, custom_template_dir): - self.target_dir = target_dir + # Redirect template write target_dir to writable addon_data + writable_base = os.path.join(PROFILE, "resources/skins/Main/1080i") + os.makedirs(writable_base, exist_ok=True) + # Link media dir into addon dir, so templates can access it via relative path + link_path = os.path.join(PROFILE, "resources/skins/Main/media") + if not os.path.exists(link_path): + os.symlink( + os.path.join(os.path.dirname(target_dir), "media"), + link_path, + True + ) + self.target_dir = writable_base self.template_dir = template_dir self.custom_template_dir = custom_template_dir self.get_available_templates() - paths = [custom_template_dir, template_dir] + paths = [custom_template_dir, self.template_dir] LOG("Looking for templates in: {}", paths) self.prepare_loader(paths) diff --git a/lib/windows/kodigui.py b/lib/windows/kodigui.py index be7ef154..e8cc09b9 100644 --- a/lib/windows/kodigui.py +++ b/lib/windows/kodigui.py @@ -4,6 +4,7 @@ from __future__ import absolute_import import threading import time import traceback +import os from kodi_six import xbmc from kodi_six import xbmcgui @@ -41,13 +42,14 @@ class BaseFunctions(object): @classmethod def open(cls, **kwargs): - window = cls(cls.xmlFile, cls.path, cls.theme, cls.res, **kwargs) + window = cls(cls.xmlFile, util.PROFILE, cls.theme, cls.res, **kwargs) window.modal() return window @classmethod def create(cls, show=True, **kwargs): - window = cls(cls.xmlFile, cls.path, cls.theme, cls.res, **kwargs) + window = cls(cls.xmlFile, util.PROFILE, cls.theme, cls.res, **kwargs) + if show: window.show() if xbmcgui.getCurrentWindowId() < 13000: