85 lines
2.7 KiB
Python
85 lines
2.7 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 six.moves import map
|
||
|
from six import string_types
|
||
|
from six import python_2_unicode_compatible
|
||
|
|
||
|
import json
|
||
|
|
||
|
import xbmc
|
||
|
|
||
|
|
||
|
@python_2_unicode_compatible
|
||
|
class SystemVersion(object):
|
||
|
def __init__(self, version, releasename, appname):
|
||
|
if not isinstance(version, tuple):
|
||
|
self._version = (0, 0, 0, 0)
|
||
|
else:
|
||
|
self._version = version
|
||
|
|
||
|
if not releasename or not isinstance(releasename, string_types):
|
||
|
self._releasename = 'UNKNOWN'
|
||
|
else:
|
||
|
self._releasename = releasename
|
||
|
|
||
|
if not appname or not isinstance(appname, string_types):
|
||
|
self._appname = 'UNKNOWN'
|
||
|
else:
|
||
|
self._appname = appname
|
||
|
|
||
|
try:
|
||
|
json_query = xbmc.executeJSONRPC('{ "jsonrpc": "2.0", "method": "Application.GetProperties", '
|
||
|
'"params": {"properties": ["version", "name"]}, "id": 1 }')
|
||
|
json_query = str(json_query)
|
||
|
json_query = json.loads(json_query)
|
||
|
|
||
|
version_installed = json_query['result']['version']
|
||
|
self._version = (version_installed.get('major', 1), version_installed.get('minor', 0))
|
||
|
self._appname = json_query['result']['name']
|
||
|
except:
|
||
|
self._version = (1, 0) # Frodo
|
||
|
self._appname = 'Unknown Application'
|
||
|
|
||
|
self._releasename = 'Unknown Release'
|
||
|
if self._version >= (21, 0):
|
||
|
self._releasename = 'O*****'
|
||
|
elif self._version >= (20, 0):
|
||
|
self._releasename = 'N*****'
|
||
|
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'
|
||
|
|
||
|
def __str__(self):
|
||
|
obj_str = "%s (%s-%s)" % (self._releasename, self._appname, '.'.join(map(str, 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
|