diff options
Diffstat (limited to 'addons/service.xbmc.versioncheck/lib/common.py')
-rw-r--r-- | addons/service.xbmc.versioncheck/lib/common.py | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/addons/service.xbmc.versioncheck/lib/common.py b/addons/service.xbmc.versioncheck/lib/common.py deleted file mode 100644 index 97f4a6442a..0000000000 --- a/addons/service.xbmc.versioncheck/lib/common.py +++ /dev/null @@ -1,205 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Team-XBMC -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -import sys - -import os -import xbmc -import xbmcaddon -import xbmcgui -import xbmcvfs - -ADDON = xbmcaddon.Addon() -ADDONVERSION = ADDON.getAddonInfo('version') -ADDONNAME = ADDON.getAddonInfo('name') -if sys.version_info[0] >= 3: - ADDONPATH = ADDON.getAddonInfo('path') - ADDONPROFILE = xbmc.translatePath( ADDON.getAddonInfo('profile') ) -else: - ADDONPATH = ADDON.getAddonInfo('path').decode('utf-8') - ADDONPROFILE = xbmc.translatePath( ADDON.getAddonInfo('profile') ).decode('utf-8') -ICON = ADDON.getAddonInfo('icon') -KODI_VERSION_MAJOR = int(xbmc.getInfoLabel('System.BuildVersion')[0:2]) - -monitor = xbmc.Monitor() - -# Fixes unicode problems -def string_unicode(text, encoding='utf-8'): - try: - if sys.version_info[0] >= 3: - text = str( text ) - else: - text = unicode( text, encoding ) - except: - pass - return text - -def normalize_string(text): - try: - text = unicodedata.normalize('NFKD', string_unicode(text)).encode('ascii', 'ignore') - except: - pass - return text - -def localise(id): - string = normalize_string(ADDON.getLocalizedString(id)) - return string - -def log(txt): - if sys.version_info[0] >= 3: - message = '%s: %s' % ("Version Check", txt.encode('utf-8')) - else: - if isinstance (txt,str): - txt = txt.decode("utf-8") - message = (u'%s: %s' % ("Version Check", txt)).encode("utf-8") - xbmc.log(msg=message, level=xbmc.LOGDEBUG) - -def get_password_from_user(): - keyboard = xbmc.Keyboard("", ADDONNAME + "," +localise(32022), True) - keyboard.doModal() - if (keyboard.isConfirmed()): - pwd = keyboard.getText() - return pwd - -def message_upgrade_success(): - xbmc.executebuiltin("Notification(%s, %s, %d, %s)" %(ADDONNAME, - localise(32013), - 15000, - ICON)) - -def message_restart(): - if dialog_yesno(32014): - xbmc.executebuiltin("RestartApp") - -def dialog_yesno(line1 = 0, line2 = 0): - return xbmcgui.Dialog().yesno(ADDONNAME, - localise(line1), - localise(line2)) - -def upgrade_message(msg, oldversion, upgrade, msg_current, msg_available): - wait_for_end_of_video() - - if ADDON.getSetting("lastnotified_version") < ADDONVERSION: - xbmcgui.Dialog().ok(ADDONNAME, - localise(msg), - localise(32001), - localise(32002)) - #ADDON.setSetting("lastnotified_version", ADDONVERSION) - else: - log("Already notified one time for upgrading.") - -def upgrade_message2( version_installed, version_available, version_stable, oldversion, upgrade,): - # shorten releasecandidate to rc - if version_installed['tag'] == 'releasecandidate': - version_installed['tag'] = 'rc' - if version_available['tag'] == 'releasecandidate': - version_available['tag'] = 'rc' - # convert json-rpc result to strings for usage - msg_current = '%i.%i %s%s' %(version_installed['major'], - version_installed['minor'], - version_installed['tag'], - version_installed.get('tagversion','')) - msg_available = version_available['major'] + '.' + version_available['minor'] + ' ' + version_available['tag'] + version_available.get('tagversion','') - msg_stable = version_stable['major'] + '.' + version_stable['minor'] + ' ' + version_stable['tag'] + version_stable.get('tagversion','') - msg = localise(32034) %(msg_current, msg_available) - - wait_for_end_of_video() - - # hack: convert current version number to stable string - # so users don't get notified again. remove in future - if ADDON.getSetting("lastnotified_version") == '0.1.24': - ADDON.setSetting("lastnotified_stable", msg_stable) - - # Show different dialogs depending if there's a newer stable available. - # Also split them between xbmc and kodi notifications to reduce possible confusion. - # People will find out once they visit the website. - # For stable only notify once and when there's a newer stable available. - # Ignore any add-on updates as those only count for != stable - if oldversion == 'stable' and ADDON.getSetting("lastnotified_stable") != msg_stable: - if xbmcaddon.Addon('xbmc.addon').getAddonInfo('version') < "13.9.0": - xbmcgui.Dialog().ok(ADDONNAME, - msg, - localise(32030), - localise(32031)) - else: - xbmcgui.Dialog().ok(ADDONNAME, - msg, - localise(32032), - localise(32033)) - ADDON.setSetting("lastnotified_stable", msg_stable) - - elif oldversion != 'stable' and ADDON.getSetting("lastnotified_version") != msg_available: - if xbmcaddon.Addon('xbmc.addon').getAddonInfo('version') < "13.9.0": - # point them to xbmc.org - xbmcgui.Dialog().ok(ADDONNAME, - msg, - localise(32035), - localise(32031)) - else: - #use kodi.tv - xbmcgui.Dialog().ok(ADDONNAME, - msg, - localise(32035), - localise(32033)) - - # older skins don't support a text field in the OK dialog. - # let's use split lines for now. see code above. - ''' - msg = localise(32034) %(msg_current, msg_available) - if oldversion == 'stable': - msg = msg + ' ' + localise(32030) - else: - msg = msg + ' ' + localise(32035) - msg = msg + ' ' + localise(32031) - xbmcgui.Dialog().ok(ADDONNAME, msg) - #ADDON.setSetting("lastnotified_version", ADDONVERSION) - ''' - ADDON.setSetting("lastnotified_version", msg_available) - - else: - log("Already notified one time for upgrading.") - - -def abortRequested(): - if KODI_VERSION_MAJOR > 13: - return monitor.abortRequested() - else: - return xbmc.abortRequested - - -def waitForAbort(seconds): - if KODI_VERSION_MAJOR > 13: - return monitor.waitForAbort(seconds) - else: - for _ in range(0, seconds*1000/200): - if xbmc.abortRequested: - return True - xbmc.sleep(200) - - -def wait_for_end_of_video(): - # Don't show notify while watching a video - while xbmc.Player().isPlayingVideo() and not abortRequested(): - if waitForAbort(1): - # Abort was requested while waiting. We should exit - break - i = 0 - while i < 10 and not abortRequested(): - if waitForAbort(1): - # Abort was requested while waiting. We should exit - break - i += 1 |