def Popular(): link = extras.Open_URL( 'http://totalxbmc.tv/totalrevolution/Addon_Packs/addonpacks.txt' ).replace('\n', '').replace('\r', '') match = re.compile( 'name="(.+?)".+?rl="(.+?)".+?mg="(.+?)".+?anart="(.+?)".+?escription="(.+?)"' ).findall(link) for name, url, iconimage, fanart, description in match: extras.addDir('folder2', name, url, 'popularwizard', iconimage, fanart, description)
def Grab_Tutorials(url): buildsURL = 'http://totalxbmc.com/totalrevolution/TutorialPortal/sortby.php?sortx=Name&orderx=ASC&%s' % ( url) link = extras.Open_URL(buildsURL).replace('\n', '').replace('\r', '') match = re.compile( 'name="(.+?)" <br> about="(.+?)" <br> id="(.+?)" <br><br>', re.DOTALL).findall(link) extras.Sort_By(buildsURL, 'tutorials') for name, about, id in match: extras.addDir('folder', name, id, 'tutorial_final_menu', 'TotalXBMC_Guides.png', '', about)
def Grab_Hardware(url): buildsURL = 'http://totalxbmc.com/totalrevolution/HardwarePortal/sortby.php?sortx=Added&orderx=DESC&%s' % ( url) link = extras.Open_URL(buildsURL).replace('\n', '').replace('\r', '') match = re.compile( 'name="(.+?)" <br> id="(.+?)" <br> thumb="(.+?)" <br><br>', re.DOTALL).findall(link) extras.Sort_By(buildsURL, 'hardware') for name, id, thumb in match: extras.addDir('folder2', name, id, 'hardware_final_menu', thumb, '', '')
def Grab_Addons(url): if ADDON.getSetting('adult') == 'true': adult = 'yes' else: adult = 'no' buildsURL = 'http://totalxbmc.com/totalrevolution/AddonPortal/sortby.php?sortx=name&user=%s&pass=%s&adult=%s&%s' % ( username, password, adult, url) link = extras.Open_URL(buildsURL).replace('\n', '').replace('\r', '') match = re.compile( 'name="(.+?)" <br> downloads="(.+?)" <br> icon="(.+?)" <br> UID="(.+?)" <br>', re.DOTALL).findall(link) extras.Sort_By(buildsURL, 'addons') for name, downloads, icon, uid in match: extras.addDir( 'folder2', name + '[COLOR=lime] [' + downloads + ' downloads][/COLOR]', uid, 'addon_final_menu', icon, '', '')
def News_Menu(url): BaseURL = 'http://totalxbmc.com/totalrevolution/LatestNews/LatestNews.php?id=%s' % ( url) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) authormatch = re.compile('author="(.+?)"').findall(link) datematch = re.compile('date="(.+?)"').findall(link) contentmatch = re.compile('content="(.+?)###END###"').findall(link) name = namematch[0] if (len(namematch) > 0) else '' author = authormatch[0] if (len(authormatch) > 0) else '' date = datematch[0] if (len(datematch) > 0) else '' content = contentmatch[0] if (len(contentmatch) > 0) else '' clean_text = Clean_HTML(content) description = str('[COLOR=gold]Source: [/COLOR]' + author + ' [COLOR=gold]Date: [/COLOR]' + date + '[CR][CR][COLOR=lime]Details: [/COLOR][CR]' + clean_text) extras.Text_Boxes(name, description)
def Grab_News(url): buildsURL = 'http://totalxbmc.com/totalrevolution/LatestNews/sortby.php?sortx=item_date&orderx=DESC&%s' % ( url) link = extras.Open_URL(buildsURL).replace('\n', '').replace('\r', '') match = re.compile( 'name="(.+?)" <br> date="(.+?)" <br> source="(.+?)" <br> id="(.+?)" <br><br>', re.DOTALL).findall(link) for name, date, source, id in match: if "OpenELEC" in source: extras.addDir('', name + ' (' + date + ')', id, 'news_menu', 'OpenELEC.png', '', '') if "Official" in source: extras.addDir('', name + ' (' + date + ')', id, 'news_menu', 'XBMC.png', '', '') if "Raspbmc" in source: extras.addDir('', name + ' (' + date + ')', id, 'news_menu', 'Raspbmc.png', '', '') if "XBMC4Xbox" in source: extras.addDir('', name + ' (' + date + ')', id, 'news_menu', 'XBMC4Xbox.png', '', '') if "TotalXBMC" in source: extras.addDir('', name + ' (' + date + ')', id, 'news_menu', 'TOTALXBMC.png', '', '')
def Recursive_Loop(recursive_location, remote_path): print "recursive_location: " + recursive_location print "remote_path: " + remote_path if not os.path.exists(recursive_location): os.makedirs(recursive_location) link = extras.Open_URL(remote_path).replace('\n', '').replace('\r', '') match = re.compile('href="(.+?)"', re.DOTALL).findall(link) for href in match: print "href: " + href filepath = xbmc.translatePath(os.path.join(recursive_location, href)) #works if '/' not in href: try: dp.update(0, "Downloading [COLOR=yellow]" + href + '[/COLOR]', '', 'Please wait...') print "downloading: " + remote_path + href downloader.download(remote_path + href, filepath, dp) except: print "failed to install" + href if '/' in href and '..' not in href and 'http' not in href: remote_path2 = remote_path + href Recursive_Loop(filepath, remote_path2) else: pass
def Dependency_Install(name, addon_id): modulestatus = 1 status = 1 addonxml = xbmc.translatePath(os.path.join(ADDONS, addon_id, 'addon.xml')) addonsource = open(addonxml, mode='r') readxml = addonsource.read() addonsource.close() dmatch = re.compile('import addon="(.+?)"').findall(readxml) for requires in dmatch: if not 'xbmc.python' in requires: print 'Script Requires --- ' + requires dependencypath = xbmc.translatePath(os.path.join(ADDONS, requires)) if not os.path.exists(dependencypath): BaseURL = 'http://totalxbmc.com/totalrevolution/AddonPortal/dependencyinstall.php?id=%s' % ( requires) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) versionmatch = re.compile('version="(.+?)"').findall(link) repourlmatch = re.compile('repo_url="(.+?)"').findall(link) dataurlmatch = re.compile('data_url="(.+?)"').findall(link) zipurlmatch = re.compile('zip_url="(.+?)"').findall(link) repoidmatch = re.compile('repo_id="(.+?)"').findall(link) depname = namematch[0] if (len(namematch) > 0) else '' version = versionmatch[0] if (len(versionmatch) > 0) else '' repourl = repourlmatch[0] if (len(repourlmatch) > 0) else '' dataurl = dataurlmatch[0] if (len(dataurlmatch) > 0) else '' zipurl = zipurlmatch[0] if (len(zipurlmatch) > 0) else '' repoid = repoidmatch[0] if (len(repoidmatch) > 0) else '' dependencyname = xbmc.translatePath( os.path.join(packages, depname + '.zip')) print "Dependency_URL: " + repourl print "Dependency_Data_URL: " + dataurl print "Dependency_Zip_URL: " + zipurl try: downloader.download(repourl, dependencyname, dp) extract.all(dependencyname, addonfolder, dp) except: try: downloader.download(zipurl, dependencyname, dp) extract.all(dependencyname, addonfolder, dp) except: try: if not os.path.exists(dependencypath): os.makedirs(dependencypath) link = extras.Open_URL(dataurl).replace( '\n', '').replace('\r', '') match = re.compile('href="(.+?)"', re.DOTALL).findall(link) for href in match: filepath = xbmc.translatePath( os.path.join(dependencypath, href)) if addon_id not in href and '/' not in href: try: dp.update( 0, "Downloading [COLOR=yellow]" + href + '[/COLOR]', '', 'Please wait...') print "downloading: " + dataurl + href downloader.download( dataurl + href, filepath, dp) except: print "failed to install" + href if '/' in href and '..' not in href and 'http' not in href: remote_path = dataurl + href Recursive_Loop(filepath, remote_path) except: dialog.ok( "Error downloading dependency", 'There was an error downloading [COLOR=yellow]' + depname, '[/COLOR]Please consider updating the add-on portal with details', 'or report the error on the forum at [COLOR=lime][B]www.totalxbmc.tv[/COLOR][/B]' ) status = 0 modulestatus = 0 if status == 1: time.sleep(1) dp.update( 0, "[COLOR=yellow]" + depname + '[/COLOR] [COLOR=lime]Successfully Installed[/COLOR]', '', 'Please wait...') time.sleep(1) incremental = 'http://totalxbmc.com/totalrevolution/AddonPortal/downloadcount.php?id=%s' % ( requires) extras.Open_URL(incremental) dp.close() time.sleep(1)
def Install_Repo(repo_id): repostatus = 1 BaseURL = 'http://totalxbmc.com/totalrevolution/AddonPortal/dependencyinstall.php?id=%s' % ( repo_id) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) versionmatch = re.compile('version="(.+?)"').findall(link) repourlmatch = re.compile('repo_url="(.+?)"').findall(link) dataurlmatch = re.compile('data_url="(.+?)"').findall(link) zipurlmatch = re.compile('zip_url="(.+?)"').findall(link) repoidmatch = re.compile('repo_id="(.+?)"').findall(link) reponame = namematch[0] if (len(namematch) > 0) else '' version = versionmatch[0] if (len(versionmatch) > 0) else '' repourl = repourlmatch[0] if (len(repourlmatch) > 0) else '' dataurl = dataurlmatch[0] if (len(dataurlmatch) > 0) else '' zipurl = zipurlmatch[0] if (len(zipurlmatch) > 0) else '' repoid = repoidmatch[0] if (len(repoidmatch) > 0) else '' repozipname = xbmc.translatePath(os.path.join(packages, reponame + '.zip')) repolocation = xbmc.translatePath(os.path.join(ADDONS, repoid)) print "Repo_URL: " + repourl print "Repo_Data_URL: " + dataurl print "Repo_Zip_URL: " + zipurl try: downloader.download(repourl, repozipname, dp) extract.all(repozipname, addonfolder, dp) except: try: downloader.download(zipurl, repozipname, dp) extract.all(repozipname, addonfolder, dp) except: try: if not os.path.exists(repolocation): os.makedirs(repolocation) link = extras.Open_URL(dataurl).replace('\n', '').replace('\r', '') match = re.compile('href="(.+?)"', re.DOTALL).findall(link) for href in match: filepath = xbmc.translatePath( os.path.join(repolocation, href)) if addon_id not in href and '/' not in href: try: dp.update( 0, "Downloading [COLOR=yellow]" + href + '[/COLOR]', '', 'Please wait...') print "downloading: " + dataurl + href downloader.download(dataurl + href, filepath, dp) except: print "failed to install" + href if '/' in href and '..' not in href and 'http' not in href: remote_path = dataurl + href Recursive_Loop(filepath, remote_path) except: dialog.ok( "Error downloading repository", 'There was an error downloading the [COLOR=yellow]' + reponame, '[/COLOR]repository. Please consider updating the add-on portal with details', 'or report the error on the forum at [COLOR=lime][B]www.totalxbmc.tv[/COLOR][/B]' ) repostatus = 0 if repostatus == 1: time.sleep(1) dp.update( 0, "[COLOR=yellow]" + reponame + '[/COLOR] [COLOR=lime]Successfully Installed[/COLOR]', '', 'Now installing dependencies') time.sleep(1) incremental = 'http://totalxbmc.com/totalrevolution/AddonPortal/downloadcount.php?id=%s' % ( repo_id) extras.Open_URL(incremental)
def Addon_Install(name, zip_link, repo_link, repo_id, addon_id, provider_name, forum, data_path): print "############# ADDON INSTALL #################" print "repo_url: " + str(repo_link) print "zip_url: " + str(zip_link) print "repo_id: " + str(repo_id) print "name: " + name print "forum" + forum print "provider_name" + provider_name print "data_path: " + data_path repo_id = str(repo_id) status = 1 repostatus = 1 modulestatus = 1 addondownload = xbmc.translatePath(os.path.join(packages, name + '.zip')) addonlocation = xbmc.translatePath(os.path.join(ADDONS, addon_id)) dp.create("Installing Addon", "Please wait whilst your addon is installed", '', '') try: downloader.download(repo_link, addondownload, dp) extract.all(addondownload, addonfolder, dp) except: try: downloader.download(zip_link, addondownload, dp) extract.all(addondownload, addonfolder, dp) except: try: if not os.path.exists(addonlocation): os.makedirs(addonlocation) link = extras.Open_URL(data_path).replace('\n', '').replace( '\r', '') match = re.compile('href="(.+?)"', re.DOTALL).findall(link) for href in match: filepath = xbmc.translatePath( os.path.join(addonlocation, href)) if addon_id not in href and '/' not in href: try: dp.update( 0, "Downloading [COLOR=yellow]" + href + '[/COLOR]', '', 'Please wait...') print "downloading: " + data_path + href downloader.download(data_path + href, filepath, dp) except: print "failed to install" + href if '/' in href and '..' not in href and 'http' not in href: remote_path = data_path + href Recursive_Loop(filepath, remote_path) except: dialog.ok( "Error downloading add-on", 'There was an error downloading [COLOR=yellow]' + name, '[/COLOR]Please consider updating the add-on portal with details', 'or report the error on the forum at [COLOR=lime][B]www.totalxbmc.tv[/COLOR][/B]' ) status = 0 if status == 1: time.sleep(1) dp.update( 0, "[COLOR=yellow]" + name + '[/COLOR] [COLOR=lime]Successfully Installed[/COLOR]', '', 'Now installing repository') time.sleep(1) repopath = xbmc.translatePath(os.path.join(ADDONS, repo_id)) if (repo_id != 'repository.xbmc.org') and not (os.path.exists(repopath)) and ( repo_id != '') and ('superrepo' not in repo_id): Install_Repo(repo_id) incremental = 'http://totalxbmc.com/totalrevolution/AddonPortal/downloadcount.php?id=%s' % ( addon_id) extras.Open_URL(incremental) Dependency_Install(name, addon_id) xbmc.executebuiltin('UpdateLocalAddons') xbmc.executebuiltin('UpdateAddonRepos') if repostatus == 0: dialog.ok(name + " Install Complete", 'The add-on has been successfully installed but', 'there was an error installing the repository.', 'This will mean the add-on fails to update') if modulestatus == 0: dialog.ok(name + " Install Complete", 'The add-on has been successfully installed but', 'there was an error installing modules.', 'This could result in errors with the add-on.') if modulestatus != 0 and repostatus != 0 and forum != '': dialog.ok( name + " Install Complete", 'Please support the developer(s) [COLOR=dodgerblue]' + provider_name, '[/COLOR]Support for this add-on can be found at [COLOR=yellow]' + forum, '[/COLOR][CR]Remember to visit [COLOR=lime][B]www.totalxbmc.tv[/COLOR][/B] for all your Kodi needs.' ) if modulestatus != 0 and repostatus != 0 and forum == '': dialog.ok( name + " Install Complete", 'Please support the developer(s) [COLOR=dodgerblue]' + provider_name, '[/COLOR]No details of forum support have been given but', 'we\'ll be happy to help at [COLOR=lime][B]www.totalxbmc.tv[/COLOR][/B]' )
def Addon_Final_Menu(url): BaseURL = 'http://totalxbmc.com/totalrevolution/AddonPortal/addondetails.php?id=%s' % ( url) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) UIDmatch = re.compile('UID="(.+?)"').findall(link) idmatch = re.compile('id="(.+?)"').findall(link) providernamematch = re.compile('provider_name="(.+?)"').findall(link) versionmatch = re.compile('version="(.+?)"').findall(link) createdmatch = re.compile('created="(.+?)"').findall(link) contentmatch = re.compile('addon_types="(.+?)"').findall(link) updatedmatch = re.compile('updated="(.+?)"').findall(link) downloadsmatch = re.compile('downloads="(.+?)"').findall(link) # xboxmatch = re.compile('xbox_compatible="(.+?)"').findall(link) descriptionmatch = re.compile('description="(.+?)"').findall(link) devbrokenmatch = re.compile('devbroke="(.+?)"').findall(link) brokenmatch = re.compile('broken="(.+?)"').findall(link) deletedmatch = re.compile('deleted="(.+?)"').findall(link) notesmatch = re.compile('mainbranch_notes="(.+?)"').findall(link) # xboxnotesmatch = re.compile('xbox_notes="(.+?)"').findall(link) repourlmatch = re.compile('repo_url="(.+?)"').findall(link) dataurlmatch = re.compile('data_url="(.+?)"').findall(link) zipurlmatch = re.compile('zip_url="(.+?)"').findall(link) genresmatch = re.compile('genres="(.+?)"').findall(link) forummatch = re.compile('forum="(.+?)"').findall(link) repoidmatch = re.compile('repo_id="(.+?)"').findall(link) licensematch = re.compile('license="(.+?)"').findall(link) platformmatch = re.compile('platform="(.+?)"').findall(link) visiblematch = re.compile('visible="(.+?)"').findall(link) scriptmatch = re.compile('script="(.+?)"').findall(link) programpluginmatch = re.compile('program_plugin="(.+?)"').findall(link) scriptmodulematch = re.compile('script_module="(.+?)"').findall(link) videopluginmatch = re.compile('video_plugin="(.+?)"').findall(link) audiopluginmatch = re.compile('audio_plugin="(.+?)"').findall(link) imagepluginmatch = re.compile('image_plugin="(.+?)"').findall(link) repositorymatch = re.compile('repository="(.+?)"').findall(link) weatherservicematch = re.compile('weather_service="(.+?)"').findall(link) skinmatch = re.compile('skin="(.+?)"').findall(link) servicematch = re.compile('service="(.+?)"').findall(link) warningmatch = re.compile('warning="(.+?)"').findall(link) webinterfacematch = re.compile('web_interface="(.+?)"').findall(link) moviescrapermatch = re.compile('movie_scraper="(.+?)"').findall(link) tvscrapermatch = re.compile('tv_scraper="(.+?)"').findall(link) artistscrapermatch = re.compile('artist_scraper="(.+?)"').findall(link) musicvideoscrapermatch = re.compile('music_video_scraper="(.+?)"').findall( link) subtitlesmatch = re.compile('subtitles="(.+?)"').findall(link) requiresmatch = re.compile('requires="(.+?)"').findall(link) modulesmatch = re.compile('modules="(.+?)"').findall(link) iconmatch = re.compile('icon="(.+?)"').findall(link) videopreviewmatch = re.compile('video_preview="(.+?)"').findall(link) videoguidematch = re.compile('video_guide="(.+?)"').findall(link) videoguidematch1 = re.compile('video_guide1="(.+?)"').findall(link) videoguidematch2 = re.compile('video_guide2="(.+?)"').findall(link) videoguidematch3 = re.compile('video_guide3="(.+?)"').findall(link) videoguidematch4 = re.compile('video_guide4="(.+?)"').findall(link) videoguidematch5 = re.compile('video_guide5="(.+?)"').findall(link) videoguidematch6 = re.compile('video_guide6="(.+?)"').findall(link) videoguidematch7 = re.compile('video_guide7="(.+?)"').findall(link) videoguidematch8 = re.compile('video_guide8="(.+?)"').findall(link) videoguidematch9 = re.compile('video_guide9="(.+?)"').findall(link) videoguidematch10 = re.compile('video_guide10="(.+?)"').findall(link) videolabelmatch1 = re.compile('video_label1="(.+?)"').findall(link) videolabelmatch2 = re.compile('video_label2="(.+?)"').findall(link) videolabelmatch3 = re.compile('video_label3="(.+?)"').findall(link) videolabelmatch4 = re.compile('video_label4="(.+?)"').findall(link) videolabelmatch5 = re.compile('video_label5="(.+?)"').findall(link) videolabelmatch6 = re.compile('video_label6="(.+?)"').findall(link) videolabelmatch7 = re.compile('video_label7="(.+?)"').findall(link) videolabelmatch8 = re.compile('video_label8="(.+?)"').findall(link) videolabelmatch9 = re.compile('video_label9="(.+?)"').findall(link) videolabelmatch10 = re.compile('video_label10="(.+?)"').findall(link) #Need to add if broken version > current version statement name = namematch[0] if (len(namematch) > 0) else '' UID = UIDmatch[0] if (len(UIDmatch) > 0) else '' addon_id = idmatch[0] if (len(idmatch) > 0) else '' provider_name = providernamematch[0] if ( len(providernamematch) > 0) else '' version = versionmatch[0] if (len(versionmatch) > 0) else '' created = createdmatch[0] if (len(createdmatch) > 0) else '' content_types = contentmatch[0] if (len(contentmatch) > 0) else '' updated = updatedmatch[0] if (len(updatedmatch) > 0) else '' downloads = downloadsmatch[0] if (len(downloadsmatch) > 0) else '' # xbox = xboxmatch[0] if (len(xboxmatch) > 0) else '' desc = '[CR][CR][COLOR=dodgerblue]Description: [/COLOR]' + descriptionmatch[ 0] if (len(descriptionmatch) > 0) else '' devbroken = devbrokenmatch[0] if (len(devbrokenmatch) > 0) else '' broken = brokenmatch[0] if (len(brokenmatch) > 0) else '' deleted = '[CR]' + deletedmatch[0] if (len(deletedmatch) > 0) else '' notes = '[CR][CR][COLOR=dodgerblue]User Notes: [/COLOR]' + notesmatch[ 0] if (len(notesmatch) > 0) else '' # xbox_notes = xboxnotesmatch[0] if (len(xboxnotesmatch) > 0) else '' repo_url = repourlmatch[0] if (len(repourlmatch) > 0) else '' data_url = dataurlmatch[0] if (len(dataurlmatch) > 0) else '' zip_url = zipurlmatch[0] if (len(zipurlmatch) > 0) else '' genres = genresmatch[0] if (len(genresmatch) > 0) else '' forum = '[CR][CR][COLOR=dodgerblue]Support Forum: [/COLOR]' + forummatch[ 0] if (len(forummatch) > 0) else '' repo_id = repoidmatch[0] if (len(repoidmatch) > 0) else '' license = licensematch[0] if (len(licensematch) > 0) else '' platform = '[COLOR=gold] Platform: [/COLOR]' + platformmatch[0] if ( len(platformmatch) > 0) else '' visible = visiblematch[0] if (len(visiblematch) > 0) else '' script = scriptmatch[0] if (len(scriptmatch) > 0) else '' program_plugin = programpluginmatch[0] if ( len(programpluginmatch) > 0) else '' script_module = scriptmodulematch[0] if ( len(scriptmodulematch) > 0) else '' video_plugin = videopluginmatch[0] if (len(videopluginmatch) > 0) else '' audio_plugin = audiopluginmatch[0] if (len(audiopluginmatch) > 0) else '' image_plugin = imagepluginmatch[0] if (len(imagepluginmatch) > 0) else '' repository = repositorymatch[0] if (len(repositorymatch) > 0) else '' service = servicematch[0] if (len(servicematch) > 0) else '' skin = skinmatch[0] if (len(skinmatch) > 0) else '' warning = warningmatch[0] if (len(warningmatch) > 0) else '' web_interface = webinterfacematch[0] if ( len(webinterfacematch) > 0) else '' weather_service = weatherservicematch[0] if ( len(weatherservicematch) > 0) else '' movie_scraper = moviescrapermatch[0] if ( len(moviescrapermatch) > 0) else '' tv_scraper = tvscrapermatch[0] if (len(tvscrapermatch) > 0) else '' artist_scraper = artistscrapermatch[0] if ( len(artistscrapermatch) > 0) else '' music_video_scraper = musicvideoscrapermatch[0] if ( len(musicvideoscrapermatch) > 0) else '' subtitles = subtitlesmatch[0] if (len(subtitlesmatch) > 0) else '' requires = requiresmatch[0] if (len(requiresmatch) > 0) else '' modules = modulesmatch[0] if (len(modulesmatch) > 0) else '' icon = iconmatch[0] if (len(iconmatch) > 0) else '' videopreview = videopreviewmatch[0] if ( len(videopreviewmatch) > 0) else 'None' videoguide = videoguidematch[0] if (len(videoguidematch) > 0) else 'None' videoguide1 = videoguidematch1[0] if ( len(videoguidematch1) > 0) else 'None' videoguide2 = videoguidematch2[0] if ( len(videoguidematch2) > 0) else 'None' videoguide3 = videoguidematch3[0] if ( len(videoguidematch3) > 0) else 'None' videoguide4 = videoguidematch4[0] if ( len(videoguidematch4) > 0) else 'None' videoguide5 = videoguidematch5[0] if ( len(videoguidematch5) > 0) else 'None' videoguide6 = videoguidematch6[0] if ( len(videoguidematch6) > 0) else 'None' videoguide7 = videoguidematch7[0] if ( len(videoguidematch7) > 0) else 'None' videoguide8 = videoguidematch8[0] if ( len(videoguidematch8) > 0) else 'None' videoguide9 = videoguidematch9[0] if ( len(videoguidematch9) > 0) else 'None' videoguide10 = videoguidematch10[0] if ( len(videoguidematch10) > 0) else 'None' videolabel1 = videolabelmatch1[0] if ( len(videolabelmatch1) > 0) else 'None' videolabel2 = videolabelmatch2[0] if ( len(videolabelmatch2) > 0) else 'None' videolabel3 = videolabelmatch3[0] if ( len(videolabelmatch3) > 0) else 'None' videolabel4 = videolabelmatch4[0] if ( len(videolabelmatch4) > 0) else 'None' videolabel5 = videolabelmatch5[0] if ( len(videolabelmatch5) > 0) else 'None' videolabel6 = videolabelmatch6[0] if ( len(videolabelmatch6) > 0) else 'None' videolabel7 = videolabelmatch7[0] if ( len(videolabelmatch7) > 0) else 'None' videolabel8 = videolabelmatch8[0] if ( len(videolabelmatch8) > 0) else 'None' videolabel9 = videolabelmatch9[0] if ( len(videolabelmatch9) > 0) else 'None' videolabel10 = videolabelmatch10[0] if ( len(videolabelmatch10) > 0) else 'None' if deleted != '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR][COLOR=red]This add-on is depreciated, it\'s no longer available.[/COLOR]' elif broken == '' and devbroken == '' and warning == '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR][COLOR=lime]No reported problems[/COLOR]' elif broken == '' and devbroken == '' and warning != '' and deleted == '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR][COLOR=orange]Although there have been no reported problems there may be issues with this add-on, see below.[/COLOR]' elif broken == '' and devbroken != '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR]Marked as broken by the add-on developer.[CR][COLOR=dodgerblue]Developer Comments: [/COLOR]' + devbroken elif broken != '' and devbroken == '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR]Marked as broken by a member of the community at [COLOR=lime]www.totalxbmc.tv[/COLOR][CR][COLOR=dodgerblue]User Comments: [/COLOR]' + broken elif broken != '' and devbroken != '': brokenfinal = '[CR][CR][COLOR=dodgerblue]Status: [/COLOR]Marked as broken by both the add-on developer and a member of the community at [COLOR=lime]www.totalxbmc.tv[/COLOR][CR][COLOR=dodgerblue]Developer Comments: [/COLOR]' + devbroken + '[CR][COLOR=dodgerblue]User Comments: [/COLOR]' + broken description = str('[COLOR=gold]Name: [/COLOR]' + name + '[COLOR=gold] Author(s): [/COLOR]' + provider_name + '[COLOR=gold][CR][CR]Version: [/COLOR]' + version + '[COLOR=gold] Created: [/COLOR]' + created + '[COLOR=gold] Updated: [/COLOR]' + updated + '[COLOR=gold][CR][CR]Repository: [/COLOR]' + repo_id + platform + '[COLOR=gold] Add-on Type(s): [/COLOR]' + content_types + requires + brokenfinal + deleted + warning + forum + desc + notes) if (broken == '') and (devbroken == '') and (deleted == '') and (warning == ''): extras.addDir( 'addon', '[COLOR=yellow][FULL DETAILS][/COLOR][COLOR=lime] No problems reported[/COLOR]', description, 'text_guide', icon, '', '', description) if (broken != '' and deleted == '') or (devbroken != '' and deleted == '') or (warning != '' and deleted == ''): extras.addDir( 'addon', '[COLOR=yellow][FULL DETAILS][/COLOR][COLOR=orange] Possbile problems reported[/COLOR]', description, 'text_guide', icon, '', '', description) if deleted != '': extras.addDir( 'addon', '[COLOR=yellow][FULL DETAILS][/COLOR][COLOR=red] Add-on now depreciated[/COLOR]', description, 'text_guide', icon, '', '', description) if deleted == '': extras.Add_Install_Dir('[COLOR=lime][INSTALL] [/COLOR]' + name, name, '', 'addon_install', 'Install.png', '', '', desc, zip_url, repo_url, repo_id, addon_id, provider_name, forum, data_url) if videopreview != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] Preview', videoguide1, 'play_video', 'Video_Guide.png', '', '', '') if videoguide1 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel1, videoguide1, 'play_video', 'Video_Guide.png', '', '', '') if videoguide2 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel2, videoguide2, 'play_video', 'Video_Guide.png', '', '', '') if videoguide3 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel3, videoguide3, 'play_video', 'Video_Guide.png', '', '', '') if videoguide4 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel4, videoguide4, 'play_video', 'Video_Guide.png', '', '', '') if videoguide5 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel5, videoguide5, 'play_video', 'Video_Guide.png', '', '', '') if videoguide6 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel6, videoguide6, 'play_video', 'Video_Guide.png', '', '', '') if videoguide7 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel7, videoguide7, 'play_video', 'Video_Guide.png', '', '', '') if videoguide8 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel8, videoguide8, 'play_video', 'Video_Guide.png', '', '', '') if videoguide9 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel9, videoguide9, 'play_video', 'Video_Guide.png', '', '', '') if videoguide10 != 'None': extras.addDir('', '[COLOR=dodgerblue][VIDEO][/COLOR] ' + videolabel10, videoguide10, 'play_video', 'Video_Guide.png', '', '', '')
def Tutorial_Menu(url): incremental = 'http://totalxbmc.com/totalrevolution/TutorialPortal/downloadcount.php?id=%s' % ( url) extras.Open_URL(incremental) BaseURL = 'http://totalxbmc.com/totalrevolution/TutorialPortal/tutorialdetails.php?id=%s' % ( url) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) authormatch = re.compile('author="(.+?)"').findall(link) videoguide1match = re.compile('video_guide1="(.+?)"').findall(link) videoguide2match = re.compile('video_guide2="(.+?)"').findall(link) videoguide3match = re.compile('video_guide3="(.+?)"').findall(link) videoguide4match = re.compile('video_guide4="(.+?)"').findall(link) videoguide5match = re.compile('video_guide5="(.+?)"').findall(link) videolabel1match = re.compile('video_label1="(.+?)"').findall(link) videolabel2match = re.compile('video_label2="(.+?)"').findall(link) videolabel3match = re.compile('video_label3="(.+?)"').findall(link) videolabel4match = re.compile('video_label4="(.+?)"').findall(link) videolabel5match = re.compile('video_label5="(.+?)"').findall(link) aboutmatch = re.compile('about="(.+?)"').findall(link) step1match = re.compile('step1="(.+?)"').findall(link) step2match = re.compile('step2="(.+?)"').findall(link) step3match = re.compile('step3="(.+?)"').findall(link) step4match = re.compile('step4="(.+?)"').findall(link) step5match = re.compile('step5="(.+?)"').findall(link) step6match = re.compile('step6="(.+?)"').findall(link) step7match = re.compile('step7="(.+?)"').findall(link) step8match = re.compile('step8="(.+?)"').findall(link) step9match = re.compile('step9="(.+?)"').findall(link) step10match = re.compile('step10="(.+?)"').findall(link) step11match = re.compile('step11="(.+?)"').findall(link) step12match = re.compile('step12="(.+?)"').findall(link) step13match = re.compile('step13="(.+?)"').findall(link) step14match = re.compile('step14="(.+?)"').findall(link) step15match = re.compile('step15="(.+?)"').findall(link) screenshot1match = re.compile('screenshot1="(.+?)"').findall(link) screenshot2match = re.compile('screenshot2="(.+?)"').findall(link) screenshot3match = re.compile('screenshot3="(.+?)"').findall(link) screenshot4match = re.compile('screenshot4="(.+?)"').findall(link) screenshot5match = re.compile('screenshot5="(.+?)"').findall(link) screenshot6match = re.compile('screenshot6="(.+?)"').findall(link) screenshot7match = re.compile('screenshot7="(.+?)"').findall(link) screenshot8match = re.compile('screenshot8="(.+?)"').findall(link) screenshot9match = re.compile('screenshot9="(.+?)"').findall(link) screenshot10match = re.compile('screenshot10="(.+?)"').findall(link) screenshot11match = re.compile('screenshot11="(.+?)"').findall(link) screenshot12match = re.compile('screenshot12="(.+?)"').findall(link) screenshot13match = re.compile('screenshot13="(.+?)"').findall(link) screenshot14match = re.compile('screenshot14="(.+?)"').findall(link) screenshot15match = re.compile('screenshot15="(.+?)"').findall(link) name = namematch[0] if (len(namematch) > 0) else '' author = authormatch[0] if (len(authormatch) > 0) else '' videoguide1 = videoguide1match[0] if ( len(videoguide1match) > 0) else 'None' videoguide2 = videoguide2match[0] if ( len(videoguide2match) > 0) else 'None' videoguide3 = videoguide3match[0] if ( len(videoguide3match) > 0) else 'None' videoguide4 = videoguide4match[0] if ( len(videoguide4match) > 0) else 'None' videoguide5 = videoguide5match[0] if ( len(videoguide5match) > 0) else 'None' videolabel1 = videolabel1match[0] if ( len(videolabel1match) > 0) else 'None' videolabel2 = videolabel2match[0] if ( len(videolabel2match) > 0) else 'None' videolabel3 = videolabel3match[0] if ( len(videolabel3match) > 0) else 'None' videolabel4 = videolabel4match[0] if ( len(videolabel4match) > 0) else 'None' videolabel5 = videolabel5match[0] if ( len(videolabel5match) > 0) else 'None' about = aboutmatch[0] if (len(aboutmatch) > 0) else '' step1 = '[CR][CR][COLOR=dodgerblue]Step 1:[/COLOR][CR]' + step1match[0] if ( len(step1match) > 0) else '' step2 = '[CR][CR][COLOR=dodgerblue]Step 2:[/COLOR][CR]' + step2match[0] if ( len(step2match) > 0) else '' step3 = '[CR][CR][COLOR=dodgerblue]Step 3:[/COLOR][CR]' + step3match[0] if ( len(step3match) > 0) else '' step4 = '[CR][CR][COLOR=dodgerblue]Step 4:[/COLOR][CR]' + step4match[0] if ( len(step4match) > 0) else '' step5 = '[CR][CR][COLOR=dodgerblue]Step 5:[/COLOR][CR]' + step5match[0] if ( len(step5match) > 0) else '' step6 = '[CR][CR][COLOR=dodgerblue]Step 6:[/COLOR][CR]' + step6match[0] if ( len(step6match) > 0) else '' step7 = '[CR][CR][COLOR=dodgerblue]Step 7:[/COLOR][CR]' + step7match[0] if ( len(step7match) > 0) else '' step8 = '[CR][CR][COLOR=dodgerblue]Step 8:[/COLOR][CR]' + step8match[0] if ( len(step8match) > 0) else '' step9 = '[CR][CR][COLOR=dodgerblue]Step 9:[/COLOR][CR]' + step9match[0] if ( len(step9match) > 0) else '' step10 = '[CR][CR][COLOR=dodgerblue]Step 10:[/COLOR][CR]' + step10match[ 0] if (len(step10match) > 0) else '' step11 = '[CR][CR][COLOR=dodgerblue]Step 11:[/COLOR][CR]' + step11match[ 0] if (len(step11match) > 0) else '' step12 = '[CR][CR][COLOR=dodgerblue]Step 12:[/COLOR][CR]' + step12match[ 0] if (len(step12match) > 0) else '' step13 = '[CR][CR][COLOR=dodgerblue]Step 13:[/COLOR][CR]' + step13match[ 0] if (len(step13match) > 0) else '' step14 = '[CR][CR][COLOR=dodgerblue]Step 14:[/COLOR][CR]' + step14match[ 0] if (len(step14match) > 0) else '' step15 = '[CR][CR][COLOR=dodgerblue]Step 15:[/COLOR][CR]' + step15match[ 0] if (len(step15match) > 0) else '' screenshot1 = screenshot1match[0] if (len(screenshot1match) > 0) else '' screenshot2 = screenshot2match[0] if (len(screenshot2match) > 0) else '' screenshot3 = screenshot3match[0] if (len(screenshot3match) > 0) else '' screenshot4 = screenshot4match[0] if (len(screenshot4match) > 0) else '' screenshot5 = screenshot5match[0] if (len(screenshot5match) > 0) else '' screenshot6 = screenshot6match[0] if (len(screenshot6match) > 0) else '' screenshot7 = screenshot7match[0] if (len(screenshot7match) > 0) else '' screenshot8 = screenshot8match[0] if (len(screenshot8match) > 0) else '' screenshot9 = screenshot9match[0] if (len(screenshot9match) > 0) else '' screenshot10 = screenshot10match[0] if (len(screenshot10match) > 0) else '' screenshot11 = screenshot11match[0] if (len(screenshot11match) > 0) else '' screenshot12 = screenshot12match[0] if (len(screenshot12match) > 0) else '' screenshot13 = screenshot13match[0] if (len(screenshot13match) > 0) else '' screenshot14 = screenshot14match[0] if (len(screenshot14match) > 0) else '' screenshot15 = screenshot15match[0] if (len(screenshot15match) > 0) else '' description = str('[COLOR=gold]Author: [/COLOR]' + author + '[CR][CR][COLOR=lime]About: [/COLOR]' + about + step1 + step2 + step3 + step4 + step5 + step6 + step7 + step8 + step9 + step10 + step11 + step12 + step13 + step14 + step15) if step1 != '': extras.addDir('', '[COLOR=yellow][Text Guide][/COLOR] ' + name, description, 'text_guide', 'How_To.png', FANART, about, '') if videoguide1 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel1, videoguide1, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide2 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel2, videoguide2, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide3 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel3, videoguide3, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide4 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel4, videoguide4, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide5 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel5, videoguide5, 'play_video', 'Video_Guide.png', FANART, '', '')
def Hardware_Menu(url): BaseURL = 'http://totalxbmc.com/totalrevolution/HardwarePortal/hardwaredetails.php?id=%s' % ( url) link = extras.Open_URL(BaseURL).replace('\n', '').replace('\r', '') namematch = re.compile('name="(.+?)"').findall(link) manufacturermatch = re.compile('manufacturer="(.+?)"').findall(link) videoguide1match = re.compile('video_guide1="(.+?)"').findall(link) videoguide2match = re.compile('video_guide2="(.+?)"').findall(link) videoguide3match = re.compile('video_guide3="(.+?)"').findall(link) videoguide4match = re.compile('video_guide4="(.+?)"').findall(link) videoguide5match = re.compile('video_guide5="(.+?)"').findall(link) videolabel1match = re.compile('video_label1="(.+?)"').findall(link) videolabel2match = re.compile('video_label2="(.+?)"').findall(link) videolabel3match = re.compile('video_label3="(.+?)"').findall(link) videolabel4match = re.compile('video_label4="(.+?)"').findall(link) videolabel5match = re.compile('video_label5="(.+?)"').findall(link) shopmatch = re.compile('shops="(.+?)"').findall(link) descmatch = re.compile('description="(.+?)"').findall(link) screenshot1match = re.compile('screenshot1="(.+?)"').findall(link) screenshot2match = re.compile('screenshot2="(.+?)"').findall(link) screenshot3match = re.compile('screenshot3="(.+?)"').findall(link) screenshot4match = re.compile('screenshot4="(.+?)"').findall(link) screenshot5match = re.compile('screenshot5="(.+?)"').findall(link) screenshot6match = re.compile('screenshot6="(.+?)"').findall(link) screenshot7match = re.compile('screenshot7="(.+?)"').findall(link) screenshot8match = re.compile('screenshot8="(.+?)"').findall(link) screenshot9match = re.compile('screenshot9="(.+?)"').findall(link) screenshot10match = re.compile('screenshot10="(.+?)"').findall(link) screenshot11match = re.compile('screenshot11="(.+?)"').findall(link) screenshot12match = re.compile('screenshot12="(.+?)"').findall(link) screenshot13match = re.compile('screenshot13="(.+?)"').findall(link) screenshot14match = re.compile('screenshot14="(.+?)"').findall(link) addedmatch = re.compile('added="(.+?)"').findall(link) platformmatch = re.compile('platform="(.+?)"').findall(link) chipsetmatch = re.compile('chipset="(.+?)"').findall(link) guidematch = re.compile('official_guide="(.+?)"').findall(link) previewmatch = re.compile('official_preview="(.+?)"').findall(link) thumbmatch = re.compile('thumbnail="(.+?)"').findall(link) stockmatch = re.compile('stock_rom="(.+?)"').findall(link) cpumatch = re.compile('CPU="(.+?)"').findall(link) gpumatch = re.compile('GPU="(.+?)"').findall(link) rammatch = re.compile('RAM="(.+?)"').findall(link) flashmatch = re.compile('flash="(.+?)"').findall(link) wifimatch = re.compile('wifi="(.+?)"').findall(link) bluetoothmatch = re.compile('bluetooth="(.+?)"').findall(link) lanmatch = re.compile('LAN="(.+?)"').findall(link) xbmcmatch = re.compile('xbmc_version="(.+?)"').findall(link) prosmatch = re.compile('pros="(.+?)"').findall(link) consmatch = re.compile('cons="(.+?)"').findall(link) librarymatch = re.compile('library_scan="(.+?)"').findall(link) fourkmatch = re.compile('4k="(.+?)"').findall(link) teneightymatch = re.compile('1080="(.+?)"').findall(link) seventwentymatch = re.compile('720="(.+?)"').findall(link) threedmatch = re.compile('3D="(.+?)"').findall(link) dtsmatch = re.compile('DTS="(.+?)"').findall(link) reviewmatch = re.compile('total_review="(.+?)"').findall(link) cbmatch = re.compile('CB_Premium="(.+?)"').findall(link) name = namematch[0] if (len(namematch) > 0) else '' manufacturer = manufacturermatch[0] if (len(manufacturermatch) > 0) else '' videoguide1 = videoguide1match[0] if ( len(videoguide1match) > 0) else 'None' videoguide2 = videoguide2match[0] if ( len(videoguide2match) > 0) else 'None' videoguide3 = videoguide3match[0] if ( len(videoguide3match) > 0) else 'None' videoguide4 = videoguide4match[0] if ( len(videoguide4match) > 0) else 'None' videoguide5 = videoguide5match[0] if ( len(videoguide5match) > 0) else 'None' videolabel1 = videolabel1match[0] if ( len(videolabel1match) > 0) else 'None' videolabel2 = videolabel2match[0] if ( len(videolabel2match) > 0) else 'None' videolabel3 = videolabel3match[0] if ( len(videolabel3match) > 0) else 'None' videolabel4 = videolabel4match[0] if ( len(videolabel4match) > 0) else 'None' videolabel5 = videolabel5match[0] if ( len(videolabel5match) > 0) else 'None' shop = shopmatch[0] if (len(shopmatch) > 0) else '' description = descmatch[0] if (len(descmatch) > 0) else '' screenshot1 = screenshot1match[0] if (len(screenshot1match) > 0) else '' screenshot2 = screenshot2match[0] if (len(screenshot2match) > 0) else '' screenshot3 = screenshot3match[0] if (len(screenshot3match) > 0) else '' screenshot4 = screenshot4match[0] if (len(screenshot4match) > 0) else '' screenshot5 = screenshot5match[0] if (len(screenshot5match) > 0) else '' screenshot6 = screenshot6match[0] if (len(screenshot6match) > 0) else '' screenshot7 = screenshot7match[0] if (len(screenshot7match) > 0) else '' screenshot8 = screenshot8match[0] if (len(screenshot8match) > 0) else '' screenshot9 = screenshot9match[0] if (len(screenshot9match) > 0) else '' screenshot10 = screenshot10match[0] if (len(screenshot10match) > 0) else '' screenshot11 = screenshot11match[0] if (len(screenshot11match) > 0) else '' screenshot12 = screenshot12match[0] if (len(screenshot12match) > 0) else '' screenshot13 = screenshot13match[0] if (len(screenshot13match) > 0) else '' screenshot14 = screenshot14match[0] if (len(screenshot14match) > 0) else '' added = addedmatch[0] if (len(addedmatch) > 0) else '' platform = platformmatch[0] if (len(platformmatch) > 0) else '' chipset = chipsetmatch[0] if (len(chipsetmatch) > 0) else '' guide = guidematch[0] if (len(guidematch) > 0) else '' preview = previewmatch[0] if (len(previewmatch) > 0) else '' thumb = thumbmatch[0] if (len(thumbmatch) > 0) else '' stock = stockmatch[0] if (len(stockmatch) > 0) else '' CPU = cpumatch[0] if (len(cpumatch) > 0) else '' GPU = gpumatch[0] if (len(gpumatch) > 0) else '' RAM = rammatch[0] if (len(rammatch) > 0) else '' flash = flashmatch[0] if (len(flashmatch) > 0) else '' wifi = wifimatch[0] if (len(wifimatch) > 0) else '' bluetooth = bluetoothmatch[0] if (len(bluetoothmatch) > 0) else '' LAN = lanmatch[0] if (len(lanmatch) > 0) else '' xbmc_version = xbmcmatch[0] if (len(xbmcmatch) > 0) else '' pros = prosmatch[0] if (len(prosmatch) > 0) else '' cons = consmatch[0] if (len(consmatch) > 0) else '' library = librarymatch[0] if (len(librarymatch) > 0) else '' fourk = fourkmatch[0] if (len(fourkmatch) > 0) else '' teneighty = teneightymatch[0] if (len(teneightymatch) > 0) else '' seventwenty = seventwentymatch[0] if (len(seventwentymatch) > 0) else '' threed = threedmatch[0] if (len(threedmatch) > 0) else '' DTS = dtsmatch[0] if (len(dtsmatch) > 0) else '' review = reviewmatch[0] if (len(reviewmatch) > 0) else '' cb = cbmatch[0] if (len(cbmatch) > 0) else '' official_description = str( '[COLOR=gold]Available From: [/COLOR]' + shop + ' @ [COLOR=lime]www.totalboxshop.tv[/COLOR][CR][CR][COLOR=dodgerblue]Added: [/COLOR]' + added + '[CR][COLOR=dodgerblue]Manufacturer: [/COLOR]' + manufacturer + '[CR][COLOR=dodgerblue]Supported Roms: [/COLOR]' + platform + '[CR][COLOR=dodgerblue]Chipset: [/COLOR]' + chipset + '[CR][COLOR=dodgerblue]CPU: [/COLOR]' + CPU + '[CR][COLOR=dodgerblue]GPU: [/COLOR]' + GPU + '[CR][COLOR=dodgerblue]RAM: [/COLOR]' + RAM + '[CR][COLOR=dodgerblue]Flash: [/COLOR]' + flash + '[CR][COLOR=dodgerblue]Wi-Fi: [/COLOR]' + wifi + '[CR][COLOR=dodgerblue]Bluetooth: [/COLOR]' + bluetooth + '[CR][COLOR=dodgerblue]LAN: [/COLOR]' + LAN + '[CR][CR][COLOR=yellow]About: [/COLOR]' + description) official_description2 = str( '[COLOR=gold]Availability: [/COLOR]Sorry this device is currently unavailable at [COLOR=lime]www.totalboxshop.tv[/COLOR][CR][CR][COLOR=dodgerblue]Added: [/COLOR]' + added + '[CR][COLOR=dodgerblue]Manufacturer: [/COLOR]' + manufacturer + '[CR][COLOR=dodgerblue]Supported Roms: [/COLOR]' + platform + '[CR][COLOR=dodgerblue]Chipset: [/COLOR]' + chipset + '[CR][COLOR=dodgerblue]CPU: [/COLOR]' + CPU + '[CR][COLOR=dodgerblue]GPU: [/COLOR]' + GPU + '[CR][COLOR=dodgerblue]RAM: [/COLOR]' + RAM + '[CR][COLOR=dodgerblue]Flash: [/COLOR]' + flash + '[CR][COLOR=dodgerblue]Wi-Fi: [/COLOR]' + wifi + '[CR][COLOR=dodgerblue]Bluetooth: [/COLOR]' + bluetooth + '[CR][COLOR=dodgerblue]LAN: [/COLOR]' + LAN + '[CR][CR][COLOR=yellow]About: [/COLOR]' + description) total_review = str( '[COLOR=gold]Available From: [/COLOR]' + shop + ' @ [COLOR=lime]www.totalboxshop.tv[/COLOR][CR][CR][COLOR=dodgerblue]Added: [/COLOR]' + added + '[CR][COLOR=dodgerblue]Manufacturer: [/COLOR]' + manufacturer + '[CR][COLOR=dodgerblue]Supported Roms: [/COLOR]' + platform + '[CR][COLOR=dodgerblue]Chipset: [/COLOR]' + chipset + '[CR][COLOR=dodgerblue]CPU: [/COLOR]' + CPU + '[CR][COLOR=dodgerblue]GPU: [/COLOR]' + GPU + '[CR][COLOR=dodgerblue]RAM: [/COLOR]' + RAM + '[CR][COLOR=dodgerblue]Flash: [/COLOR]' + flash + '[CR][COLOR=dodgerblue]Wi-Fi: [/COLOR]' + wifi + '[CR][COLOR=dodgerblue]Bluetooth: [/COLOR]' + bluetooth + '[CR][COLOR=dodgerblue]LAN: [/COLOR]' + LAN + '[CR][CR][COLOR=yellow]About: [/COLOR]' + review + '[CR][CR][COLOR=yellow]Summary:[/COLOR][CR][CR][COLOR=dodgerblue]Pros:[/COLOR] ' + pros + '[CR][CR][COLOR=dodgerblue]Cons:[/COLOR] ' + cons + '[CR][CR][COLOR=gold]4k Playback:[/COLOR] ' + fourk + '[CR][CR][COLOR=gold]1080p Playback:[/COLOR] ' + teneighty + '[CR][CR][COLOR=gold]720p Playback:[/COLOR] ' + seventwenty + '[CR][CR][COLOR=gold]DTS Compatibility:[/COLOR] ' + DTS + '[CR][CR][COLOR=gold]Time taken to scan 100 movies:[/COLOR] ' + library) total_review2 = str( '[COLOR=gold]Availability: [/COLOR]Sorry this device is currently unavailable at [COLOR=lime]www.totalboxshop.tv[/COLOR][CR][CR][COLOR=dodgerblue]Added: [/COLOR]' + added + '[CR][COLOR=dodgerblue]Manufacturer: [/COLOR]' + manufacturer + '[CR][COLOR=dodgerblue]Supported Roms: [/COLOR]' + platform + '[CR][COLOR=dodgerblue]Chipset: [/COLOR]' + chipset + '[CR][COLOR=dodgerblue]CPU: [/COLOR]' + CPU + '[CR][COLOR=dodgerblue]GPU: [/COLOR]' + GPU + '[CR][COLOR=dodgerblue]RAM: [/COLOR]' + RAM + '[CR][COLOR=dodgerblue]Flash: [/COLOR]' + flash + '[CR][COLOR=dodgerblue]Wi-Fi: [/COLOR]' + wifi + '[CR][COLOR=dodgerblue]Bluetooth: [/COLOR]' + bluetooth + '[CR][COLOR=dodgerblue]LAN: [/COLOR]' + LAN + '[CR][CR][COLOR=yellow]About: [/COLOR]' + review + '[CR][CR][COLOR=yellow]Summary:[/COLOR][CR][CR][COLOR=dodgerblue]Pros:[/COLOR] ' + pros + '[CR][CR][COLOR=dodgerblue]Cons:[/COLOR] ' + cons + '[CR][CR][COLOR=gold]4k Playback:[/COLOR] ' + fourk + '[CR][CR][COLOR=gold]1080p Playback:[/COLOR] ' + teneighty + '[CR][CR][COLOR=gold]720p Playback:[/COLOR] ' + seventwenty + '[CR][CR][COLOR=gold]DTS Compatibility:[/COLOR] ' + DTS + '[CR][CR][COLOR=gold]Time taken to scan 100 movies:[/COLOR] ' + library) if description != '' and shop != '': extras.addDir( '', '[COLOR=yellow][Text Guide][/COLOR] Official Description', official_description, 'text_guide', 'TotalXBMC_Guides.png', FANART, '', '') if description != '' and shop == '': extras.addDir( '', '[COLOR=yellow][Text Guide][/COLOR] Official Description', official_description2, 'text_guide', 'TotalXBMC_Guides.png', FANART, '', '') if review != '' and shop != '': extras.addDir('', '[COLOR=yellow][Text Guide][/COLOR] TotalXBMC Review', total_review, 'text_guide', 'TotalXBMC_Guides.png', FANART, '', '') if review != '' and shop == '': extras.addDir('', '[COLOR=yellow][Text Guide][/COLOR] TotalXBMC Review', total_review2, 'text_guide', 'TotalXBMC_Guides.png', FANART, '', '') if preview != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] Official Video Preview', preview, 'play_video', 'Video_Guide.png', FANART, '', '') if guide != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] Official Video Guide', guide, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide1 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel1, videoguide1, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide2 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel2, videoguide2, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide3 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel3, videoguide3, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide4 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel4, videoguide4, 'play_video', 'Video_Guide.png', FANART, '', '') if videoguide5 != 'None': extras.addDir('', '[COLOR=lime][VIDEO][/COLOR] ' + videolabel5, videoguide5, 'play_video', 'Video_Guide.png', FANART, '', '')