def Favourite_Select(installed_content=''):
    import re
    import urllib
    import HTMLParser

    html_parser = HTMLParser.HTMLParser()
    final_array = []
    dialog_array = []
    favourites_path = xbmc.translatePath('special://profile/favourites.xml')
    if os.path.exists(favourites_path):
        contents = Text_File(favourites_path, 'r')
        match = re.compile('<favourite name="(.+?)".+?>(.+?)<\/favourite>',
                           re.DOTALL).findall(contents)
        for name, command in match:

            if '-fav~%s~%s\n' % (
                    String(30326) % html_parser.unescape(name),
                    html_parser.unescape(command)) not in installed_content:
                final_array.append('-fav~%s~%s\n' %
                                   (String(30326) % html_parser.unescape(name),
                                    html_parser.unescape(command)))
                dialog_array.append(html_parser.unescape(name))
        choice = dialog.select(String(30323), dialog_array)
        if choice >= 0:
            return final_array[choice]
    else:
        dialog.ok(String(30324), String(30325))

    return ''
def Remove_Content(id_array=[]):
    remove_list = []

    # If Super Favourites exist add option to remove a social share
    sf_path = xbmc.translatePath(
        'special://profile/addon_data/plugin.program.super.favourites/Super Favourites/%s'
        % settings_clean)
    if len(os.listdir(sf_path)) > 0:
        remove_list.append(String(30354))

    my_text = Text_File(redirect_file, 'r')
    for item in id_array:
        if item[0] == 'apk':
            remove_list.append(String(30304) % item[1])
        elif item[0] == 'addon':
            remove_list.append(String(30305) % item[1])
        elif item[0] == '-exec' or item[0] == '-fav':
            remove_list.append(item[1])
    choice = dialog.select(String(30307), remove_list)
    if choice >= 0:
        if remove_list[choice] != String(30354):
            remove_line = '%s~%s~%s\n' % (
                id_array[choice][0], id_array[choice][1], id_array[choice][2])
            if remove_line in my_text:
                replace_file = my_text.replace(remove_line, '')
                Text_File(redirect_file, 'w', replace_file)
            else:
                dialog.ok(
                    'DEFAULT ITEM',
                    'It\'s only possible to delete items you\'ve added, you cannot delete default items. If you want to create your own custom list set this menu as a custom list via the main +- button'
                )
    # Social share removal
        else:
            default.Share_Removal(settings_clean)
Exemple #3
0
def check(direct):
    try:
        os.makedirs(path)
        os.removedirs(path)
        OK_Dialog(String(30334), String(30335))
        if direct != 'maintenance':
            Open_Settings()

    except:
        OK_Dialog(String(30336), String(30337))
        Open_Settings()
Exemple #4
0
def Remove_Content(id_array=[]):
    remove_list = []
    my_text = Text_File(redirect_file, 'r')

    for item in id_array:
        if item[0] == 'apk':
            remove_list.append(String(30304) % item[1])
        elif item[0] == 'addon':
            remove_list.append(String(30305) % item[1])
        elif item[0] == '-exec' or item[0] == '-fav':
            remove_list.append(item[1])
    choice = dialog.select(String(30307), remove_list)
    if choice >= 0:
        remove_line = '%s~%s~%s\n' % (id_array[choice][0], id_array[choice][1],
                                      id_array[choice][2])
        if remove_line in my_text:
            replace_file = my_text.replace(remove_line, '')
            Text_File(redirect_file, 'w', replace_file)
        else:
            dialog.ok(
                'DEFAULT ITEM',
                'It\'s only possible to delete items you\'ve added, you cannot delete default items. If you want to create your own custom list set this menu as a custom list via the main +- button'
            )
def epgtools():
    from koding import String
    dialog_array = []
    exec_array = []
    enable_selector = koding.Addon_Setting(setting='usecustom',
                                           addon_id='script.trtv')
    custom_config = koding.Addon_Setting(setting='custom.config.links',
                                         addon_id='script.trtv')
    custom_reset = koding.Addon_Setting(setting='custom.reset',
                                        addon_id='script.trtv')
    custom_settings = koding.Addon_Setting(setting='custom.settings',
                                           addon_id='script.trtv')
    custom_update = koding.Addon_Setting(setting='custom.update.links',
                                         addon_id='script.trtv')
    custom_url = koding.Addon_Setting(setting='custom.url',
                                      addon_id='script.trtv')
    custom_vpn = koding.Addon_Setting(setting='custom.vpn',
                                      addon_id='script.trtv')
    if enable_selector == 'true':
        if custom_vpn == 'true' and xbmc.getCondVisibility(
                'System.HasAddon(service.vpn.manager)'):
            exec_array.append(
                'xbmc.executebuiltin(\'ActivateWindow(10025,"plugin://service.vpn.manager/?toplevel",return)\')'
            )
            dialog_array.append(String(code=30842, source='script.trtv'))
        if 'http' in custom_url:
            dialog_array.append(String(code=30829, source='script.trtv'))
            exec_array.append(
                'xbmc.executebuiltin("RunScript(special://home/addons/plugin.program.tbs/epg.py,listings,silent)")'
            )
        if custom_update == 'true':
            dialog_array.append(String(code=30825, source='script.trtv'))
            exec_array.append(
                'xbmc.executebuiltin("RunScript(special://home/addons/script.trtv/updateini.py)")'
            )
        if custom_config == 'true':
            dialog_array.append(String(code=30826, source='script.trtv'))
            exec_array.append(
                'xbmc.executebuiltin(\'ActivateWindow(10025,"plugin://plugin.video.addons.ini.creator",return)\')'
            )
        if custom_reset == 'true':
            dialog_array.append(String(code=30827, source='script.trtv'))
            if sys.argv[-1] == 'epg':
                exec_array.append(
                    'xbmc.executebuiltin("RunScript(special://home/addons/script.trtv/deleteDB.py,wipeEPG)");xbmc.executebuiltin("ActivateWindow(home)");xbmc.executebuiltin("StopScript(script.trtv)")'
                )
            else:
                exec_array.append(
                    'xbmc.executebuiltin("RunScript(special://home/addons/script.trtv/deleteDB.py,wipeEPG)")'
                )
        if custom_settings == 'true':
            dialog_array.append(String(code=30828, source='script.trtv'))
            exec_array.append(
                'xbmc.executebuiltin("RunScript(special://home/addons/script.trtv/openSettings.py,std)")'
            )
        if len(dialog_array) > 0:
            choice = dialog.select(String(code=30805, source='script.trtv'),
                                   dialog_array)
            if choice >= 0:
                exec(exec_array[choice])
    else:
        dialog.ok(String(code=30830, source='script.trtv'),
                  String(code=30831, source='script.trtv'))
        koding.Open_Settings(addon_id='script.trtv', focus='3.11', click=True)
def showlist_sf():
    from operator import itemgetter
    runcode_array = runcode.splitlines()
    genre_array = []
    final_array = []
    sf_path = xbmc.translatePath(
        'special://profile/addon_data/plugin.program.super.favourites/Super Favourites/%s'
        % settings_clean)
    for item in os.listdir(sf_path):
        fullpath = os.path.join(sf_path, item)
        if os.path.isdir(fullpath):
            genre_array.append('share~' + item.replace('_', ' ') + '~' + item)

# Add genre list to our custom list
    runcode_array += genre_array

    if 'HOME_LIVE_TV_TVG_DIALOG_PLUS' in redirect_setting:
        final_array.append([
            '-exec',
            String(code=30993, source='script.trtv'),
            "xbmc.executebuiltin('RunScript(special://home/addons/script.trtv/addon.py)')"
        ])

    for line in runcode_array:
        if '~' in line:
            raw_split = line.split('~')
            app_type = raw_split[0]
            clean_name = raw_split[1]

            # Make an exception for paths which contain tilda
            raw_split.pop(0)
            raw_split.pop(0)
            app_id = ''
            for item in raw_split:
                app_id += item

            final_array.append([app_type, clean_name, app_id])

    app_array = []
    if len(final_array) > 0:
        final_array = sorted(final_array, key=itemgetter(0, 1))
        for item in final_array:
            app_array.append(String(30565) % item[1])
        app_array.append('------------------------------')
        final_array.append(['blank', '------------------------------', ''])
    app_array.append(String(30301))
    final_array.append(
        ['add', String(30301),
         'Share_Install("%s")' % settings_clean])
    app_array.append(String(30302))
    final_array.append(
        ['remove',
         String(30302),
         'Share_Removal("%s")' % settings_clean])

    choice = dialog.select(cleanname.upper().replace('_', ' '), app_array)
    if choice < 0:
        return
    else:
        run_app = final_array[choice]
        if run_app[0] == 'share':
            xbmc.executebuiltin(
                'ActivateWindow(10001,"plugin://plugin.program.super.favourites/?folder=%s/%s",return)'
                % (settings_clean, run_app[2]))
            SF_Single_Entry()
        else:
            exec(run_app[2])
def showlist(usenan=False):
    from operator import itemgetter
    myapps = koding.My_Apps()
    runcode_array = runcode.splitlines()
    delete_array = []
    final_array = []
    genre_array = []
    id_array = []

    sf_path = xbmc.translatePath(
        'special://profile/addon_data/plugin.program.super.favourites/Super Favourites/%s'
        % settings_clean)
    if os.path.exists(sf_path):
        for item in os.listdir(sf_path):
            fullpath = os.path.join(sf_path, item)
            if os.path.isdir(fullpath):
                genre_array.append('share~' + item.replace('_', ' ') + '~' +
                                   item)

    if usenan:
        dolog('mymenu: %s' % mymenu)
        try:
            addon_list = Addon_Genre(genre=mymenu,
                                     custom_url=BASE + 'addons/addon_list.txt')
        except:
            try:
                addon_list = Addon_Genre(genre=mymenu)
            except:
                addon_list = {}
        dolog('addon_list: %s' % addon_list)
        if addon_list:
            for item in addon_list.items():
                if item[0] != '':
                    name = koding.Cleanup_String(item[0])
                    genre_array.append('addon~' + name + '~' + item[1])

# Add genre list to our custom list
    runcode_array += genre_array

    if 'HOME_LIVE_TV_TVG_DIALOG_PLUS' in redirect_setting:
        final_array.append([
            '-exec',
            String(code=30993, source='script.trtv'),
            "xbmc.executebuiltin('RunScript(special://home/addons/script.trtv/addon.py)')"
        ])

    for line in runcode_array:
        if '~' in line:
            raw_split = line.split('~')
            app_type = raw_split[0]
            clean_name = raw_split[1]

            # Make an exception for paths which contain tilda
            raw_split.pop(0)
            raw_split.pop(0)
            app_id = ''
            for item in raw_split:
                app_id += item

            if app_type == '-exec':
                final_array.append([app_type, clean_name, app_id])
                delete_array.append([app_type, clean_name, app_id])

            if app_type == 'share':
                final_array.append([app_type, clean_name, app_id])

            if app_type == '-fav':
                final_array.append([app_type, clean_name, app_id])
                delete_array.append([app_type, clean_name, app_id])

# Check the addon is installed, if it is add to the list
            if app_type == 'addon':
                try:
                    myaddon = xbmcaddon.Addon(app_id)
                    name = myaddon.getAddonInfo('name')
                    final_array.append([app_type, clean_name, app_id])
                    if not line in genre_array:
                        delete_array.append([app_type, clean_name, app_id])
                    id_array.append(app_id)
                except:
                    pass

            if app_type == 'apk' and app_id in myapps:
                final_array.append([app_type, clean_name, app_id])

    app_array = []
    if len(final_array) > 0:
        final_array = sorted(final_array, key=itemgetter(0, 1))
        for item in final_array:
            if item[0] == 'apk':
                app_array.append(String(30304) % item[1])
            elif item[0] == 'share':
                app_array.append(String(30565) % item[1])
            elif item[0] == 'addon':
                app_array.append(String(30305) % item[1])
            elif item[0] == '-exec' or item[0] == '-fav':
                app_array.append(item[1])
        app_array.append('------------------------------')
        final_array.append(['blank', '------------------------------', ''])
    app_array.append(String(30301))
    final_array.append(
        ['add', String(30301),
         'Add_Content(id_array=%s)' % id_array])
    app_array.append(String(30302))
    final_array.append([
        'remove',
        String(30302),
        'Remove_Content(id_array=%s)' % delete_array
    ])

    choice = dialog.select(cleanname.upper().replace('_', ' '), app_array)
    if choice < 0:
        return
    else:
        run_app = final_array[choice]
        if run_app[0] == 'apk':
            xbmc.executebuiltin('StartAndroidActivity(%s)' % run_app[2])
        elif run_app[0] == 'addon':
            xbmc.executebuiltin('RunAddon(%s)' % run_app[2])
        elif run_app[0] == 'share':
            xbmc.executebuiltin(
                'ActivateWindow(10001,"plugin://plugin.program.super.favourites/?folder=%s/%s",return)'
                % (settings_clean, run_app[2]))
            SF_Single_Entry()
        else:
            try:
                exec(run_app[2])
            except:
                xbmc.executebuiltin(run_app[2])
def Add_Content(id_array):
    dolog('id_array: %s' % id_array)
    choice = dialog.select(
        String(30314),
        [String(30170),
         String(30323),
         String(30313),
         String(30354)])
    if choice >= 0:
        my_text = Text_File(redirect_file, 'r')
        if choice == 0:
            if dialog.yesno(String(30507),
                            String(30508),
                            yeslabel=String(30510),
                            nolabel=String(30509)):
                addon_id = Keyboard(String(30511))
                dolog('SEARCHING ONLINE FOR: %s' % addon_id)
                Sleep_If_Function_Active(function=Install_Addons,
                                         args=[encryptme('e', addon_id)],
                                         show_busy=False,
                                         kill_time=120)
                # xbmc.executebuiltin('UpdateLocalAddons')
                Toggle_Addons(addon=addon_id)
                if xbmc.getCondVisibility('System.HasAddon(%s)' % addon_id):
                    dialog.ok(String(30334), String(30512) % addon_id)
            else:
                include_list = Addon_Browser(browser_type='list',
                                             header=String(30306),
                                             skiparray=id_array)
                dolog('include_list: %s' % include_list)
                for item in include_list:
                    if not my_text.endswith('\n'):
                        my_text += '\n'
                    my_text += 'addon~%s~%s\n' % (item[0], item[1])
        elif choice == 1:
            my_text += Favourite_Select(my_text)
        elif choice == 2:
            # List of QP modes
            full_array = [
                String(30318),
                String(30315),
                String(30319),
                String(30316),
                String(30320),
                String(30321),
                String(30317),
                String(30322)
            ]
            qp_dict = {
                String(30318):
                'RunScript(script.qlickplay,info=list,type=movie)',
                String(30315):
                'RunScript(script.qlickplay,info=list,type=movie,query=qqqqq)',
                String(30319):
                'RunScript(script.qlickplay,info=list,type=tv)',
                String(30316):
                'RunScript(script.qlickplay,info=list,type=tv,query=qqqqq)',
                String(30320):
                'RunScript(script.qlickplay,info=list,type=video)',
                String(30321):
                'RunScript(script.qlickplay,info=list,type=video,query=qqqqq)',
                String(30317):
                'RunScript(script.qlickplay,info=list,type=channel)',
                String(30322):
                'RunScript(script.qlickplay,info=list,type=channel,query=qqqqq)'
            }

            my_array = []

            # Populate the list of QP items but don't show ones already installed
            for item in full_array:
                dolog('full_array: ' + repr(item))
                if not item in my_text:
                    my_array.append(item)

            choice = dialog.select(String(30314), my_array)
            if choice >= 0:
                my_text += '-exec~%s~%s\n' % (my_array[choice],
                                              qp_dict[my_array[choice]])
        elif choice == 3:
            dolog('%s - running share_install' % settings_clean)
            Share_Install(settings_clean)
    Text_File(redirect_file, 'w', my_text)
Exemple #9
0
def showlist(usenan=False):
    from operator import itemgetter
    myapps = koding.My_Apps()
    runcode_array = runcode.splitlines()
    delete_array = []
    final_array = []
    genre_array = []
    id_array = []
    cust_array = []
    if os.path.exists(redirect_file + '_CUST'):
        temp_array = Text_File(redirect_file + '_CUST', 'r').splitlines()
        for line in temp_array:
            cust_array.append(line + '~custom')

    sf_path = Physical_Path(
        'special://profile/addon_data/plugin.program.super.favourites/Super Favourites/%s'
        % settings_clean)
    if os.path.exists(sf_path):
        for item in os.listdir(sf_path):
            fullpath = os.path.join(sf_path, item)
            if os.path.isdir(fullpath):
                genre_array.append('share~' + item.replace('_', ' ') + '~' +
                                   item)
    if usenan:
        try:
            addon_list = Addon_Genre(genre=mymenu,
                                     custom_url=BASE +
                                     'addons/addon_list_new.txt')
        except:
            try:
                addon_list = Addon_Genre(genre=mymenu)
            except:
                addon_list = {}
        if addon_list:
            my_addons = Get_Contents(path=ADDONS,
                                     exclude_list=['packages', 'temp'],
                                     full_path=False)
            addons_matching_genre = List_From_Dict(addon_list)
            for item in my_addons:
                try:
                    addon_id = Get_Addon_ID(item)
                    if addon_id in addons_matching_genre:
                        name = koding.Cleanup_String(addon_list[addon_id])
                        genre_array.append('addon~' + name + '~' + addon_id)
                except:
                    pass
# Add genre list to our custom list
    runcode_array += genre_array
    runcode_array += cust_array
    xbmc.log(repr(runcode_array), 2)
    if 'HOME_LIVE_TV_TVG_DIALOG_PLUS' in redirect_setting:
        final_array.append([
            '-exec',
            String(code=30993, source='script.trtv'),
            "xbmc.executebuiltin('RunScript(special://home/addons/script.trtv/addon.py)')"
        ])

    for line in runcode_array:
        if '~' in line:
            raw_split = line.split('~')
            app_type = raw_split[0]
            clean_name = raw_split[1]

            # Make an exception for paths which contain tilda
            raw_split.pop(0)
            raw_split.pop(0)
            app_id = ''
            for item in raw_split:
                if item != 'custom':
                    app_id += item

            if app_type == '-exec':
                final_array.append([app_type, clean_name, app_id])
                if '~custom' in line:
                    delete_array.append([app_type, clean_name, app_id])

            if app_type == 'share':
                final_array.append([app_type, clean_name, app_id])

            if app_type == '-fav':
                final_array.append([app_type, clean_name, app_id])
                if '~custom' in line:
                    delete_array.append([app_type, clean_name, app_id])

# Check the addon is installed, if it is add to the list
            if app_type == 'addon':
                try:
                    myaddon = xbmcaddon.Addon(app_id)
                    name = myaddon.getAddonInfo('name')
                    if realname == 'true':
                        clean_name = name
                    final_array.append([app_type, clean_name, app_id])
                    if '~custom' in line:
                        delete_array.append([app_type, clean_name, app_id])
                    id_array.append(app_id)
                except:
                    pass

            if app_type == 'apk' and app_id in myapps:
                final_array.append([app_type, clean_name, app_id])

    app_array = []
    if len(final_array) > 0:
        final_array = sorted(final_array, key=itemgetter(0, 1))
        for item in final_array:
            if item[0] == 'apk':
                app_array.append(String(30304) % item[1])
            elif item[0] == 'share':
                app_array.append(String(30565) % item[1])
            elif item[0] == 'addon':
                app_array.append(String(30305) % item[1])
            elif item[0] == '-exec' or item[0] == '-fav':
                app_array.append(item[1])
        app_array.append('------------------------------')
        final_array.append(['blank', '------------------------------', ''])
    app_array.append(String(30301))
    final_array.append(
        ['add', String(30301),
         'Add_Content(id_array=%s)' % id_array])
    app_array.append(String(30302))
    final_array.append([
        'remove',
        String(30302),
        'Remove_Content(id_array=%s)' % delete_array
    ])

    choice = dialog.select(Skin_String(cleanname.replace('_', '')), app_array)
    xbmc.log('delete array: %s' % delete_array, 2)
    if choice < 0:
        return
    else:
        run_app = final_array[choice]
        if run_app[0] == 'apk':
            xbmc.executebuiltin('StartAndroidActivity(%s)' % run_app[2])
        elif run_app[0] == 'addon':
            xbmc.executebuiltin('RunAddon(%s)' % run_app[2])
        elif run_app[0] == 'share':
            xbmc.executebuiltin(
                'ActivateWindow(10001,"plugin://plugin.program.super.favourites/?folder=%s/%s",return)'
                % (settings_clean, urllib.quote_plus(run_app[2])))
            SF_Single_Entry()
        else:
            try:
                exec(run_app[2])
            except:
                xbmc.executebuiltin(run_app[2])
Exemple #10
0
def showlist(usenan=False):
    from operator import itemgetter
    myapps = koding.My_Apps()
    runcode_array = runcode.splitlines()
    delete_array = []
    final_array = []
    genre_array = []
    id_array = []

    if usenan:
        addon_list = koding.Addon_Genre(genre=mymenu,
                                        custom_url=binascii.unhexlify(BASE2) +
                                        'boxer/addon_list.php?g=%s' % mymenu)
        if not addon_list:
            addon_list = koding.Addon_Genre(
                genre=mymenu,
                custom_url=BASE + 'boxer/addon_list.php?g=%s' % mymenu)
        for item in addon_list.items():
            name = koding.Cleanup_String(item[0])
            genre_array.append('addon~' + name + '~' + item[1])

# Add genre list to our custom list
    runcode_array += genre_array

    if 'HOME_LIVE_TV_TVG_DIALOG_PLUS' in redirect_setting:
        final_array.append([
            '-exec',
            String(code=30993, source='script.trtv'),
            "xbmc.executebuiltin('RunScript(special://home/addons/script.trtv/addon.py)')"
        ])

    for line in runcode_array:
        if '~' in line:
            raw_split = line.split('~')
            app_type = raw_split[0]
            clean_name = raw_split[1]

            # Make an exception for paths which contain tilda
            raw_split.pop(0)
            raw_split.pop(0)
            app_id = ''
            for item in raw_split:
                app_id += item
            dolog(app_id, 2)

            if app_type == '-exec':
                final_array.append([app_type, clean_name, app_id])
                delete_array.append([app_type, clean_name, app_id])

            if app_type == '-fav':
                final_array.append([app_type, clean_name, app_id])
                delete_array.append([app_type, clean_name, app_id])

# Check the addon is installed, if it is add to the list
            if app_type == 'addon':
                try:
                    myaddon = xbmcaddon.Addon(app_id)
                    name = myaddon.getAddonInfo('name')
                    final_array.append([app_type, clean_name, app_id])
                    if not line in genre_array:
                        delete_array.append([app_type, clean_name, app_id])
                    id_array.append(app_id)
                except:
                    pass

            if app_type == 'apk' and app_id in myapps:
                final_array.append([app_type, clean_name, app_id])

    app_array = []
    if len(final_array) > 0:
        final_array = sorted(final_array, key=itemgetter(0, 1))
        for item in final_array:
            if item[0] == 'apk':
                app_array.append(String(30304) % item[1])
            elif item[0] == 'addon':
                app_array.append(String(30305) % item[1])
            elif item[0] == '-exec' or item[0] == '-fav':
                app_array.append(item[1])
        app_array.append('------------------------------')
        final_array.append(['blank', '------------------------------', ''])
    app_array.append(String(30301))
    final_array.append(
        ['add', String(30301),
         'Add_Content(id_array=%s)' % id_array])
    app_array.append(String(30302))
    final_array.append([
        'remove',
        String(30302),
        'Remove_Content(id_array=%s)' % delete_array
    ])

    choice = dialog.select(cleanname.upper().replace('_', ' '), app_array)
    if choice < 0:
        return
    else:
        run_app = final_array[choice]
        if run_app[0] == 'apk':
            xbmc.executebuiltin('StartAndroidActivity(%s)' % run_app[2])
        elif run_app[0] == 'addon':
            xbmc.executebuiltin('RunAddon(%s)' % run_app[2])
        else:
            try:
                exec(run_app[2])
            except:
                xbmc.executebuiltin(run_app[2])
Exemple #11
0
# -*- coding: utf-8 -*-

# plugin.program.tbs
# Total Revolution Maintenance (c) by whufclee ([email protected])

# Total Revolution Maintenance is licensed under a
# Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

# You should have received a copy of the license along with this
# work. If not, see http://creativecommons.org/licenses/by-nc-nd/4.0.

import requests
import koding

from koding import Network_Settings, Sleep_If_Playback_Active, String, YesNo_Dialog

isplaying = xbmc.Player().isPlaying()
Sleep_If_Playback_Active()
try:
    r = requests.get('http://google.com')
    code = r.status_code
except:
    if YesNo_Dialog(String(30332), String(30333)):
        Network_Settings()