kodi.plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/system_version.py
2024-04-03 03:33:07 +11:00

89 lines
2.8 KiB
Python

# -*- coding: utf-8 -*-
"""
Copyright (C) 2014-2016 bromix (plugin.video.youtube)
Copyright (C) 2016-2018 plugin.video.youtube
SPDX-License-Identifier: GPL-2.0-only
See LICENSES/GPL-2.0-only for more information.
"""
from __future__ import absolute_import, division, unicode_literals
from .methods import jsonrpc
from ..compatibility import string_type
class SystemVersion(object):
def __init__(self, version=None, releasename=None, appname=None):
self._version = (
version if version and isinstance(version, tuple)
else (0, 0, 0, 0)
)
self._releasename = (
releasename if releasename and isinstance(releasename, string_type)
else 'UNKNOWN'
)
self._appname = (
appname if appname and isinstance(appname, string_type)
else 'UNKNOWN'
)
try:
response = jsonrpc(method='Application.GetProperties',
params={'properties': ['version', 'name']})
version_installed = response['result']['version']
self._version = (version_installed.get('major', 1),
version_installed.get('minor', 0))
self._appname = response['result']['name']
except (KeyError, TypeError):
self._version = (1, 0) # Frodo
self._appname = 'Unknown Application'
if self._version >= (21, 0):
self._releasename = 'Omega'
elif self._version >= (20, 0):
self._releasename = 'Nexus'
elif self._version >= (19, 0):
self._releasename = 'Matrix'
elif self._version >= (18, 0):
self._releasename = 'Leia'
elif self._version >= (17, 0):
self._releasename = 'Krypton'
elif self._version >= (16, 0):
self._releasename = 'Jarvis'
elif self._version >= (15, 0):
self._releasename = 'Isengard'
elif self._version >= (14, 0):
self._releasename = 'Helix'
elif self._version >= (13, 0):
self._releasename = 'Gotham'
elif self._version >= (12, 0):
self._releasename = 'Frodo'
else:
self._releasename = 'Unknown Release'
def __str__(self):
obj_str = '{releasename} ({appname}-{version[0]}.{version[1]})'.format(
releasename=self._releasename,
appname=self._appname,
version=self._version
)
return obj_str
def get_release_name(self):
return self._releasename
def get_version(self):
return self._version
def get_app_name(self):
return self._appname
def compatible(self, *version):
return self._version >= version
current_system_version = SystemVersion()