Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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, '',
                      '')
Пример #4
0
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, '', '')
Пример #5
0
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)
Пример #6
0
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', '', '')
Пример #7
0
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
Пример #8
0
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)
Пример #9
0
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)
Пример #10
0
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]'
            )
Пример #11
0
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', '', '',
                      '')
Пример #12
0
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, '',
                      '')
Пример #13
0
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, '',
                      '')