Example #1
0
def PatchAdvanced(name, url, description):
    if base_info.workingURL(url) == False: return False

    path = xbmc.translatePath(os.path.join('special://home/addons',
                                           'packages'))
    if not os.path.exists(path):
        os.makedirs(path)
    patchname = name
    dp = xbmcgui.DialogProgress()
    dp.create(ADDONTITLE, "", "", "[B]Advanced Settings: [/B]" + patchname)
    patchname = "advsettings"
    lib = os.path.join(path, patchname + '.zip')

    try:
        os.remove(lib)
    except:
        pass

    dialog = xbmcgui.Dialog()
    downloader.download(url, lib, dp)

    addonfolder = xbmc.translatePath(os.path.join('special://', 'home'))
    time.sleep(2)
    dp.update(0, "Extracting Zip Please Wait", "", " ")
    extract.all(lib, addonfolder, dp)
    time.sleep(1)
    try:
        os.remove(lib)
    except:
        pass
    xbmc.executebuiltin("Container.Refresh")

    dialog.ok(
        ADDONTITLE, "[COLOR snow]Advanced Settings installed![/COLOR]",
        "[COLOR white]You should now see an imporvment in buffering[/COLOR]")
def install_addon(addon_id,url):
    if xbmcgui.Dialog().yesno(addonname, 'Deseja Instalar %s?'%addon_id):
        addons = xbmcvfs.translatePath('special://home/addons')
        packages = xbmcvfs.translatePath('special://home/addons/packages')
        try:
            import ntpath
            try:
                os.mkdir(packages)
            except:
                pass
            filename = ntpath.basename(url)
            dest=os.path.join(packages, filename)            
            try:
                downloader.download(url, addon_id, dest)
            except:
                print('Wizard Builds: Falha ao baixar, link invalido ou download cancelado')
                raise Exception
            try:
                extract.extract_zip(dest,addons)
            except:
                print('Wizard Builds: Falha ao extrair arquivos.')
                raise Exception
            xbmc.sleep(1000)
            database.enable_addon(addon_id)
            xbmcgui.Dialog().ok('[B][COLOR white]AVISO[/COLOR][/B]','APERTE OK PARA FECHAR O KODI E ABRA NOVAMENTE!')   
            xbmc.executeJSONRPC('{"jsonrpc":"2.0","method":"Application.Quit","id":1}')
        except:
            notify('Falha ao Instalar Addon!')         
def install_build(name,url,skin):
    if xbmcgui.Dialog().yesno(addonname, 'Deseja Instalar %s?\nA Configuração atual do kodi será modificada'%name):
        kodi = xbmcvfs.translatePath('special://home')
        addons = xbmcvfs.translatePath('special://home/addons')
        packages = xbmcvfs.translatePath('special://home/addons/packages')
        media_kodi = xbmcvfs.translatePath('special://home/media')
        userdata_kodi = xbmcvfs.translatePath('special://home/userdata')
        download_file = resolve(url)
        try:
            if download_file.endswith(".zip"):
                # limpando kodi
                #try:
                #    clear.reset(addons)
                #except:
                #    pass
                #try:
                #    clear.reset(userdata_kodi)
                #except:
                #    pass
                #try:
                #    clear.reset(media_kodi)
                #except:
                #    pass                    
                import ntpath
                try:
                    os.mkdir(packages)
                except:
                    pass
                filename = ntpath.basename(download_file)
                dest=os.path.join(packages, filename)
                try:
                    os.remove(lib)
                except:
                    pass
                try:
                    downloader.download(download_file, name, dest)
                except:
                    print('Wizard Builds: Falha ao baixar, link invalido ou download cancelado')
                    raise Exception
                try:
                    extract.extract_zip(dest,kodi)
                except:
                    print('Wizard Builds: Falha ao extrair arquivos.')
                    raise Exception
                xbmc.sleep(1000)
                try:
                    os.remove(dest)
                except:
                    pass
                skin_folder = os.path.join(addons, skin)
                if os.path.isdir(skin_folder):
                    setskin(skin)                    
                xbmcgui.Dialog().ok('[B][COLOR white]AVISO[/COLOR][/B]','APERTE OK PARA FECHAR O KODI E ABRA NOVAMENTE!')   
                xbmc.executeJSONRPC('{"jsonrpc":"2.0","method":"Application.Quit","id":1}') 
            else:
                print('Wizard Builds: Arquivo não é zip ou não foi encontrado um link')
                raise Exception
        except:
            notify('Falha ao Instalar Build!')
Example #4
0
def wizard(name, url, description):
    ################## New code ###################################
    zipname = name.replace('\\', '').replace('/', '').replace(':', '').replace(
        '*',
        '').replace('?',
                    '').replace('"',
                                '').replace('<',
                                            '').replace('>',
                                                        '').replace('|', '')
    if not os.path.exists(PACKAGES): os.makedirs(PACKAGES)
    DP.create(ADDONTITLE, '[B]Đang Tải:[/B] %s' % (name), '',
              'Chờ Chút Nhé...')
    lib = os.path.join(PACKAGES, '%s.zip' % zipname)
    try:
        os.remove(lib)
    except:
        pass
    downloader.download(url, lib, DP)
    xbmc.sleep(500)
    title = '[B]Đang cài đặt:[/B] %s' % (name)
    DP.update(0, title, '', 'Chờ Chút Nhé...')
    percent, errors, error = extract.all(lib, HOME, DP, title=title)
    if int(float(percent)) > 0:

        wiz.log('INSTALLED %s: [ERRORS:%s]' % (percent, errors))
        try:
            os.remove(lib)
        except:
            pass
        if int(float(errors)) > 0:
            yes = DIALOG.yesno(
                ADDONTITLE,
                '[COLOR %s][COLOR %s]%s[/COLOR]' % (COLOR2, COLOR1, name),
                'Đã hoàn thành: [COLOR %s]%s%s[/COLOR] [Lỗi:[COLOR %s]%s[/COLOR]]'
                % (COLOR1, percent, '%', COLOR1, errors),
                'Bạn có muốn xem thống kê lỗi?[/COLOR]',
                nolabel='[B][COLOR red]Không cần[/COLOR][/B]',
                yeslabel='[B][COLOR green]Xem ngay[/COLOR][/B]')
            if yes:
                if isinstance(errors, unicode):
                    error = error.encode('utf-8')
                wiz.TextBox(ADDONTITLE, error)
    DP.close()
Example #5
0
 match = re.compile('<addon.+?id="%s".+?ersion="(.+?)".+?>' %
                    REPOID).findall(link)
 if len(match) == 0:
     wiz.log("Invalid URL for Repo Zip", xbmc.LOGERROR)
 else:
     installzip = '%s-%s.zip' % (REPOID, match[0])
     workingrepo = wiz.workingURL(REPOZIPURL + installzip)
     if workingrepo == True:
         DP.create(ADDONTITLE, 'Downloading Repo...', '', 'Please Wait')
         if not os.path.exists(PACKAGES): os.makedirs(PACKAGES)
         lib = os.path.join(PACKAGES, installzip)
         try:
             os.remove(lib)
         except:
             pass
         downloader.download(REPOZIPURL + installzip, lib, DP)
         extract.all(lib, ADDONS, DP)
         f = open(os.path.join(ADDONS, REPOID, 'addon.xml'),
                  mode='r').read()
         match = re.compile('<addon.+?id="%s".+?ame="(.+?)".+?>' %
                            REPOID).findall(f)
         wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, match[0]),
                       "[COLOR %s]Add-on updated[/COLOR]" % COLOR2,
                       icon=os.path.join(ADDONS, REPOID, 'icon.png'))
         DP.close()
         xbmc.sleep(500)
         wiz.forceUpdate(True)
         wiz.log("[Auto Install Repo] Successfully Installed",
                 xbmc.LOGNOTICE)
     else:
         wiz.LogNotify(
Example #6
0
	else: wiz.log('[AUTO CLEAN UP][Packages: off]')
else: wiz.log('[AUTO CLEAN UP: off]')

if AUTOINSTALL == 'Yes' and not os.path.exists(os.path.join(ADDONS, REPOID)):
	workingxml = wiz.workingURL(REPOADDONXML)
	if workingxml == True:
		link    = wiz.openURL(REPOADDONXML).replace('\n','').replace('\r','').replace('\t','')
		match   = re.compile('<addon.+?id="%s".+?ersion="(.+?)".+?>' % REPOID).findall(link)
		installzip = '%s-%s.zip' % (REPOID, match[0])
		workingrepo = wiz.workingURL(REPOZIPURL+installzip)
		if workingrepo == True:
			if not os.path.exists(PACKAGES): os.makedirs(PACKAGES)
			lib=os.path.join(PACKAGES, installzip)
			try: os.remove(lib)
			except: pass
			downloader.download(REPOZIPURL+installzip,lib)
			extract.all(lib, ADDONS)
			f = open(os.path.join(ADDONS, REPOID, 'addon.xml'), mode='r').read()
			match = re.compile('<addon.+?id="%s".+?ame="(.+?)".+?>' % REPOID).findall(f)
			wiz.LogNotify(match[0], "Add-on updated", icon=os.path.join(ADDONS, REPOID, 'icon.png'))
			xbmc.sleep(1000)
			xbmc.executebuiltin('UpdateAddonRepos()')
			xbmc.executebuiltin('UpdateLocalAddons()')
			xbmc.sleep(1000)
		else: 
			wiz.LogNotify("Repo Install Error", "Invalid url for zip!")
			wiz.log("Error: Was unable to create a working url for repository.")
	else: 
		wiz.LogNotify("Repo Install Error", "Invalid addon.xml file!")
		wiz.log("Error: Unable to read the addon.xml file.")
Example #7
0
def SDFix():

    SPORTS_DEVIL_FOLDER = xbmc.translatePath(
        os.path.join('special://home/addons', 'plugin.video.SportsDevil'))
    SPORTS_DEVIL_DATA = xbmc.translatePath(
        'special://userdata/addon_data/plugin.video.SportsDevil')
    path = xbmc.translatePath(os.path.join('special://home/addons',
                                           'packages'))

    choice = xbmcgui.Dialog().yesno(
        ADDONTITLE,
        'This option will remove all traces of Sports Devil (If Installed) and install a clean version.',
        'Would you like to continue?',
        yeslabel='[B][COLOR springgreen]YES[/COLOR][/B]',
        nolabel='[B][COLOR snow]NO[/COLOR][/B]')
    if choice == 0:
        sys.exit(1)
    dialog = xbmcgui.Dialog()
    if os.path.exists(SPORTS_DEVIL_FOLDER):
        try:
            shutil.rmtree(SPORTS_DEVIL_FOLDER)
        except:
            pass
    if os.path.exists(SPORTS_DEVIL_DATA):
        try:
            shutil.rmtree(SPORTS_DEVIL_DATA)
        except:
            pass
    purgePath = xbmc.translatePath('special://home/addons/packages')
    for root, dirs, files in os.walk(purgePath):
        file_count = 0
        file_count += len(files)
    for root, dirs, files in os.walk(purgePath):
        file_count = 0
        file_count += len(files)
        if file_count > 0:
            for f in files:
                os.unlink(os.path.join(root, f))
            for d in dirs:
                shutil.rmtree(os.path.join(root, d))

    if not os.path.exists(path):
        os.makedirs(path)

    url = ('http://repo.tantrumtv.com/dm/patches/plugin.video.SportsDevil.zip')
    dp = xbmcgui.DialogProgress()
    dp.create(ADDONTITLE, "", "", "Installing Sports Devil")
    lib = os.path.join(path, 'addon.zip')

    try:
        os.remove(lib)
    except:
        pass

    downloader.download(url, lib, dp)
    addonfolder = xbmc.translatePath(os.path.join('special://home', 'addons'))
    time.sleep(2)
    dp.update(0, "", "Extracting Zip Please Wait", "")
    extract.all(lib, addonfolder, dp)
    try:
        os.remove(lib)
    except:
        pass
    xbmc.executebuiltin("ActivateWindow(busydialog)")
    xbmc.executebuiltin("UpdateAddonRepos")
    xbmc.executebuiltin("UpdateLocalAddons")
    xbmc.executebuiltin("Dialog.Close(busydialog)")

    dialog.ok(
        ADDONTITLE,
        "[COLOR snow]The Sports Devil plugin should now be fixed and working correctly. If you have any issues please turn AUTO UPDATE OFF on Sports Devil and run this fix again.[/COLOR]"
    )
    quit()