68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
"""
|
||
|
|
||
|
Copyright (C) 2013-2014 Team-XBMC
|
||
|
Copyright (C) 2014-2019 Team Kodi
|
||
|
|
||
|
This file is part of service.xbmc.versioncheck
|
||
|
|
||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
See LICENSES/GPL-3.0-or-later.txt for more information.
|
||
|
|
||
|
"""
|
||
|
|
||
|
from contextlib import closing
|
||
|
import json
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
import xbmc # pylint: disable=import-error
|
||
|
import xbmcvfs # pylint: disable=import-error
|
||
|
|
||
|
from .common import ADDON_PATH
|
||
|
|
||
|
|
||
|
def get_installed_version():
|
||
|
""" Retrieve the currently installed version
|
||
|
|
||
|
:return: currently installed version
|
||
|
:rtype: dict
|
||
|
"""
|
||
|
query = {
|
||
|
"jsonrpc": "2.0",
|
||
|
"method": "Application.GetProperties",
|
||
|
"params": {
|
||
|
"properties": ["version", "name"]
|
||
|
},
|
||
|
"id": 1
|
||
|
}
|
||
|
json_query = xbmc.executeJSONRPC(json.dumps(query))
|
||
|
if sys.version_info[0] >= 3:
|
||
|
json_query = str(json_query)
|
||
|
else:
|
||
|
json_query = unicode(json_query, 'utf-8', errors='ignore') # pylint: disable=undefined-variable
|
||
|
json_query = json.loads(json_query)
|
||
|
version_installed = []
|
||
|
if 'result' in json_query and 'version' in json_query['result']:
|
||
|
version_installed = json_query['result']['version']
|
||
|
return version_installed
|
||
|
|
||
|
|
||
|
def get_version_file_list():
|
||
|
""" Retrieve version lists from supplied version file (resources/versions.txt)
|
||
|
|
||
|
:return: all provided versions
|
||
|
:rtype: dict
|
||
|
"""
|
||
|
version_file = os.path.join(ADDON_PATH, 'resources/versions.txt')
|
||
|
with closing(xbmcvfs.File(version_file)) as open_file:
|
||
|
data = open_file.read()
|
||
|
|
||
|
if sys.version_info[0] >= 3:
|
||
|
version_query = str(data)
|
||
|
else:
|
||
|
version_query = unicode(data, 'utf-8', errors='ignore') # pylint: disable=undefined-variable
|
||
|
version_query = json.loads(version_query)
|
||
|
return version_query
|