def Update(name, REMOTE_PLUGIN_COMMITS, REMOTE_PLUGIN_DOWNLOADS, silent): log('%s - Search for update ' % name, LOGNOTICE) try: ADDON_DIR = translatePath( addon(name).getAddonInfo('profile')).decode('utf-8') LOCAL_PLUGIN_VERSION = os.path.join(ADDON_DIR, "update_sha") LOCAL_FILE_NAME_PLUGIN = os.path.join(ADDON_DIR, 'update-' + name + '.zip') if not os.path.exists(ADDON_DIR): os.mkdir(ADDON_DIR) path = addon(name).getAddonInfo('Path') commitXML = _getXmlString(REMOTE_PLUGIN_COMMITS) if commitXML: isTrue = commitUpdate(commitXML, LOCAL_PLUGIN_VERSION, REMOTE_PLUGIN_DOWNLOADS, path, name, LOCAL_FILE_NAME_PLUGIN, silent) if isTrue == True: log('%s - Update successful.' % name, LOGNOTICE) if silent == False: Dialog().ok(PLUGIN, name + " - Update erfolgreich.") return elif isTrue == None: log('%s - no new update ' % name, LOGNOTICE) if silent == False: Dialog().ok(PLUGIN, name + " - Kein Update verfügbar.") return log('%s - Update error ' % name, LOGERROR) Dialog().ok(PLUGIN, 'Fehler beim ' + name + " - Update.") return except: log('%s - Update error ' % name, LOGERROR) Dialog().ok(PLUGIN, 'Fehler beim ' + name + " - Update.")
def Update(username, plugin_id, branch, token, silent): REMOTE_PLUGIN_COMMITS = "https://api.github.com/repos/%s/%s/commits/%s" % (username, plugin_id, branch) REMOTE_PLUGIN_DOWNLOADS = "https://api.github.com/repos/%s/%s/zipball/%s" % (username, plugin_id, branch) auth = HTTPBasicAuth(username, token.decode('base64')) xbmc.log('%s - Search for update ' % plugin_id, LOGNOTICE) try: ADDON_DIR = translatePath(addon(plugin_id).getAddonInfo('profile')).decode('utf-8') LOCAL_PLUGIN_VERSION = os.path.join(ADDON_DIR, "update_sha") LOCAL_FILE_NAME_PLUGIN = os.path.join(ADDON_DIR, 'update-' + plugin_id + '.zip') if not os.path.exists(ADDON_DIR): os.mkdir(ADDON_DIR) #ka - Update erzwingen if addon().getSetting('enforceUpdate') == 'true': if silent == False and os.path.exists(LOCAL_PLUGIN_VERSION): os.remove(LOCAL_PLUGIN_VERSION) path = addon(plugin_id).getAddonInfo('Path') commitXML = _getXmlString(REMOTE_PLUGIN_COMMITS, auth) if commitXML: isTrue = commitUpdate(commitXML, LOCAL_PLUGIN_VERSION, REMOTE_PLUGIN_DOWNLOADS, path, plugin_id, LOCAL_FILE_NAME_PLUGIN, silent, auth) if isTrue == True: xbmc.log('%s - Update successful.' % plugin_id, LOGNOTICE) if silent == False: Dialog().ok(PLUGIN_NAME, plugin_id + " - Update erfolgreich.") return True elif isTrue == None: xbmc.log('%s - no new update ' % plugin_id, LOGNOTICE) if silent == False: Dialog().ok(PLUGIN_NAME, plugin_id + " - Kein Update verfügbar.") return None xbmc.log('%s - Update error ' % plugin_id, LOGERROR) Dialog().ok(PLUGIN_NAME, 'Fehler beim Update vom ' + plugin_id) return False except: xbmc.log('%s - Update error ' % plugin_id, LOGERROR) Dialog().ok(PLUGIN_NAME, 'Fehler beim Update vom ' + plugin_id)
def devUpdates(): try: resolverupdate = False pluginupdate = False options = ['Beide', PLUGIN_NAME, 'URL Resolver'] result = Dialog().select('Welches Update ausführen?', options) if result == 0: resolverupdate = True pluginupdate = True elif result == 1: pluginupdate = True elif result == 2: resolverupdate = True if pluginupdate == True: try: pluginVideoInfinity(False) except: pass if resolverupdate == True: try: urlResolverUpdate(False) except: pass #ka - reset enforce Update if addon().getSetting('enforceUpdate') == 'true': addon().setSetting('enforceUpdate', 'false') return except Exception as e: xbmc.log(e)
def devAutoUpdates(silent=False): try: status1 = status2 = None if addon().getSetting('githubUpdateInfinity') == 'true': status1 = pluginVideoInfinity(silent) if addon().getSetting('githubUpdateUrlResolver') == 'true': status2 = urlResolverUpdate(silent) if status1 == status2: return status1 elif status1 == False or status2 == False: return False elif (status1 == True or status2 == True) and (status1 == None or status2 == None): return True except Exception as e: xbmc.log(e)
def log(msg, level=LOGDEBUG): DEBUGPREFIX = '[ ' + addon().getAddonInfo('name') + ' DEBUG ] : ' # override message level to force logging when addon logging turned on level = LOGNOTICE try: if isinstance(msg, unicode): msg = '%s (ENCODED)' % (msg.encode('utf-8')) xbmc.log('%s: %s' % (DEBUGPREFIX, msg), level) except Exception as e: try: xbmc.log('Logging Failure: %s' % (e), level) except: pass # just give up
from requests.auth import HTTPBasicAuth import xbmc from xbmc import LOGDEBUG, LOGERROR, LOGFATAL, LOGINFO, LOGNONE, LOGNOTICE, LOGSEVERE, LOGWARNING from xbmc import translatePath from xbmcgui import Dialog from xbmcaddon import Addon as addon ## Android K18 ZIP Fix. if xbmc.getCondVisibility('system.platform.android') and int(xbmc.getInfoLabel('System.BuildVersion')[:2]) >= 18: import fixetzipfile as zipfile else: import zipfile # Text/Überschrift im Dialog PLUGIN_NAME = addon().getAddonInfo('name') # ist z.B. 'INFINITY' PLUGIN_ID = addon().getAddonInfo('id') # ist z.B. 'plugin.video.infinity' ## URLRESOLVER def urlResolverUpdate(silent=False): username = '******' ### Repo plugin_id = 'script.module.urlresolver' branch = 'master' token = 'ZmY3OGNmMGU0NjgzOWQ2ODA0ZTgwNTZkZDM3MTllNWEzMTQ1OTM2Yw==' try: return Update(username, plugin_id, branch, token, silent) except Exception as e: xbmc.log('Exception Raised: %s' % str(e), xbmc.LOGERROR)