diff --git a/ovos_plugin_common_play/ocp/utils.py b/ovos_plugin_common_play/ocp/utils.py index b30b79a..fb633a8 100644 --- a/ovos_plugin_common_play/ocp/utils.py +++ b/ovos_plugin_common_play/ocp/utils.py @@ -3,11 +3,20 @@ from os import makedirs from os.path import expanduser, isfile, join, dirname, exists from typing import List +from ovos_utils.system import module_property from ovos_plugin_manager.ocp import StreamHandler from ovos_plugin_common_play.ocp.status import TrackState, PlaybackType from ovos_ocp_files_plugin.plugin import OCPFilesMetadataExtractor -ocp_plugins = StreamHandler() + +_plugins = None + + +@module_property +def _ocp_plugins(): + global _plugins + _plugins = _plugins or StreamHandler() + return _plugins def is_qtav_available(): @@ -32,7 +41,7 @@ def available_extractors() -> List[str]: @return: List of supported SEI prefixes """ return ["/", "http:", "https:", "file:"] + \ - [f"{sei}//" for sei in ocp_plugins.supported_seis] + [f"{sei}//" for sei in _ocp_plugins().supported_seis] def extract_metadata(uri): diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 31f297d..1300d2b 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -3,4 +3,5 @@ padacioso~=0.1, >=0.1.1 ovos_workshop~=0.0, >=0.0.10 ovos_audio_plugin_simple dbus-next -ovos-ocp-files-plugin~=0.13 \ No newline at end of file +ovos-ocp-files-plugin~=0.13 +ovos-utils~=0.0.29,>=0.0.30a1 \ No newline at end of file diff --git a/test/unittests/test_utils.py b/test/unittests/test_utils.py new file mode 100644 index 0000000..2ce20da --- /dev/null +++ b/test/unittests/test_utils.py @@ -0,0 +1,15 @@ +import unittest + + +class TestUtils(unittest.TestCase): + def test_plugins_init(self): + from ovos_plugin_common_play.ocp.utils import ocp_plugins + from ovos_plugin_manager.ocp import StreamHandler + self.assertIsInstance(ocp_plugins, StreamHandler) + + def test_available_extractors(self): + from ovos_plugin_common_play.ocp.utils import available_extractors + extractors = available_extractors() + self.assertIsInstance(extractors, list) + for ex in extractors: + self.assertIsInstance(ex, str)