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.")
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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
예제 #6
0
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)