def converItem(self, cItem):
        searchTypesOptions = []  # ustawione alfabetycznie
        hostLinks = []
        type = CDisplayListItem.TYPE_UNKNOWN
        possibleTypesOfSearch = None

        if cItem['type'] == 'category':
            if cItem['title'] == 'Wyszukaj':
                type = CDisplayListItem.TYPE_SEARCH
                possibleTypesOfSearch = searchTypesOptions
            else:
                type = CDisplayListItem.TYPE_CATEGORY
        elif cItem['type'] == 'video':
            type = CDisplayListItem.TYPE_VIDEO
            urls = cItem.get('urls', [])
            for urlItem in urls:
                hostLinks.append(CUrlItem(urlItem['name'], urlItem['url'], 0))

        title = clean_html(cItem.get('title', ''))
        description = clean_html(cItem.get('plot', ''))
        icon = cItem.get('icon', '')
        hostItem = CDisplayListItem(
            name=title,
            description=description,
            type=type,
            urlItems=hostLinks,
            urlSeparateRequest=0,
            iconimage=icon,
            possibleTypesOfSearch=possibleTypesOfSearch)
        return hostItem
Beispiel #2
0
    def convertList(self, cList):
        hostList = []

        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN

            if cItem['type'] == 'category':
                type = CDisplayListItem.TYPE_CATEGORY
            elif cItem['type'] == 'video':
                type = CDisplayListItem.TYPE_VIDEO
                page = cItem.get('page', '')
                if '' != page:
                    hostLinks.append(CUrlItem("Link", page, 1))

            title = cItem.get('title', '')
            description = cItem.get('plot', '')
            icon = cItem.get('icon', '')

            hostItem = CDisplayListItem(name=title,
                                        description=description,
                                        type=type,
                                        urlItems=hostLinks,
                                        urlSeparateRequest=1,
                                        iconimage=icon)
            hostList.append(hostItem)

        return hostList
Beispiel #3
0
 def getInitialList(self):
     self.nexSelIndex = 0
     self.prevSelList = []
     self.categoryList = []
     self.currList = []
     self.currItem = CDisplayListItem()
     self["headertext"].setText(self.getCategoryPath())
     self.requestListFromHost('Initial')
Beispiel #4
0
 def displayList(self):
     list = []
     self["title"].setText(_("Select subtitles to download"))
     self["title"].show()
     
     tmpList = self.params.get('sub_list', [])
     try:
         for item in tmpList:
             printDBG(item)
             dItem = CDisplayListItem(name = item['title'], type=CDisplayListItem.TYPE_ARTICLE)
             dItem.privateData = item
             list.append( (dItem,) )
     except Exception: 
         printExc()
     self["list"].setList(list)
     self["list"].show()
     self.setListMode(True)
Beispiel #5
0
    def convertList(self, cList):
        hostList = []
        possibleTypesOfSearch = []

        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN

            if cItem['type'] in ['main', 'sub', 'subSub', 'subSubPage']:
                type = CDisplayListItem.TYPE_CATEGORY
            elif cItem['type'] == 'video':
                type = CDisplayListItem.TYPE_VIDEO
                videoID = ''
                if 'url' in cItem:
                    url = cItem['url']
                hostLinks.append(CUrlItem('', url, 0))
            elif cItem['type'] == 'search':
                type = CDisplayListItem.TYPE_SEARCH

            name = ' '
            if 'name' in cItem:
                name = cItem['name']
            opis = ''
            if 'opis' in cItem:
                opis = cItem['opis']
            ilosc = ''
            if 'ilosc' in cItem:
                ilosc = '(' + cItem['ilosc'] + ')'
            ico = ''
            if 'ico' in cItem:
                ico = cItem['ico']
            if ico == '':
                ico = 'http://mamrodzine.pl/wp-content/uploads/2011/06/logo_transparent.png'

            hostItem = CDisplayListItem(
                name=name + ' ' + ilosc,
                description=opis,
                type=type,
                urlItems=hostLinks,
                urlSeparateRequest=1,
                iconimage=ico,
                possibleTypesOfSearch=possibleTypesOfSearch)
            hostList.append(hostItem)
        # end for

        return hostList


#host = Spryciarze()
#host.getMainCategory()
#host.getVideoList('http://kulinaria.spryciarze.pl/kategorie/dania-miesne')
#host.getVideoLinks('58763')
Beispiel #6
0
    def converItem(self, cItem):
        type = CDisplayListItem.TYPE_UNKNOWN

        if 'category' == cItem['type']:
            type = CDisplayListItem.TYPE_CATEGORY
        elif cItem['type'] == 'subtitle':
            type = CDisplayListItem.TYPE_SUBTITLE
        elif 'more' == cItem['type']:
            type = CDisplayListItem.TYPE_MORE
            
        title       =  cItem.get('title', '')
        description =  cItem.get('desc', '')
        
        return CDisplayListItem(name = title,
                                description = description,
                                type = type)
Beispiel #7
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        searchTypesOptions.append((_("Live now"), "live"))
        searchTypesOptions.append((_("Recordings"), "video"))

        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN
            possibleTypesOfSearch = None

            if 'category' == cItem['type']:
                if cItem.get('search_item', False):
                    type = CDisplayListItem.TYPE_SEARCH
                    possibleTypesOfSearch = searchTypesOptions
                else:
                    type = CDisplayListItem.TYPE_CATEGORY
            elif cItem['type'] == 'video':
                type = CDisplayListItem.TYPE_VIDEO
            elif 'more' == cItem['type']:
                type = CDisplayListItem.TYPE_MORE
            elif 'audio' == cItem['type']:
                type = CDisplayListItem.TYPE_AUDIO

            if type in [
                    CDisplayListItem.TYPE_AUDIO, CDisplayListItem.TYPE_VIDEO
            ]:
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = self.host._getStr(cItem.get('title', ''))
            description = self.host._getStr(cItem.get('desc', '')).strip()
            icon = self.host._getStr(cItem.get('icon', ''))

            hostItem = CDisplayListItem(
                name=title,
                description=description,
                type=type,
                urlItems=hostLinks,
                urlSeparateRequest=1,
                iconimage=icon,
                possibleTypesOfSearch=possibleTypesOfSearch)
            hostList.append(hostItem)

        return hostList
Beispiel #8
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        #searchTypesOptions.append(("Seriale", "seriale"))
        searchTypesOptions.append(("Filmy", "filmy"))

        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN
            possibleTypesOfSearch = None

            if cItem['type'] == 'category':
                if cItem['title'] == 'Wyszukaj':
                    type = CDisplayListItem.TYPE_SEARCH
                    possibleTypesOfSearch = searchTypesOptions
                else:
                    type = CDisplayListItem.TYPE_CATEGORY
            elif cItem['type'] == 'video':
                type = CDisplayListItem.TYPE_VIDEO
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))
            elif cItem['type'] == 'article':
                type = CDisplayListItem.TYPE_ARTICLE
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = clean_html(cItem.get('title',
                                         '').decode("utf-8")).encode("utf-8")
            description = clean_html(cItem.get(
                'plot', '').decode("utf-8")).encode("utf-8")
            icon = cItem.get('icon', '')

            hostItem = CDisplayListItem(
                name=title,
                description=description,
                type=type,
                urlItems=hostLinks,
                urlSeparateRequest=1,
                iconimage=icon,
                possibleTypesOfSearch=possibleTypesOfSearch)
            hostList.append(hostItem)

        return hostList
Beispiel #9
0
    def converItem(self, cItem):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        #searchTypesOptions.append((_("Movies"),   "movie"))
        #searchTypesOptions.append((_("TV Shows"), "series"))

        hostLinks = []
        type = CDisplayListItem.TYPE_UNKNOWN
        possibleTypesOfSearch = None

        if 'category' == cItem['type']:
            if cItem.get('search_item', False):
                type = CDisplayListItem.TYPE_SEARCH
                possibleTypesOfSearch = searchTypesOptions
            else:
                type = CDisplayListItem.TYPE_CATEGORY
        elif cItem['type'] == 'video':
            type = CDisplayListItem.TYPE_VIDEO
        elif 'more' == cItem['type']:
            type = CDisplayListItem.TYPE_MORE
        elif 'audio' == cItem['type']:
            type = CDisplayListItem.TYPE_AUDIO

        if type in [CDisplayListItem.TYPE_AUDIO, CDisplayListItem.TYPE_VIDEO]:
            url = cItem.get('url', '')
            if '' != url:
                hostLinks.append(CUrlItem("Link", url, 1))

        title = cItem.get('title', '')
        description = cItem.get('desc', '')
        icon = cItem.get('icon', '')
        if icon == '': icon = self.host.DEFAULT_ICON_URL
        isGoodForFavourites = cItem.get('good_for_fav', False)

        return CDisplayListItem(name=title,
                                description=description,
                                type=type,
                                urlItems=hostLinks,
                                urlSeparateRequest=1,
                                iconimage=icon,
                                possibleTypesOfSearch=possibleTypesOfSearch,
                                isGoodForFavourites=isGoodForFavourites)
Beispiel #10
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []

        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN
            possibleTypesOfSearch = None

            if cItem['type'] == 'category':
                if cItem['title'] == 'Wyszukaj':
                    type = CDisplayListItem.TYPE_SEARCH
                    possibleTypesOfSearch = searchTypesOptions
                else:
                    type = CDisplayListItem.TYPE_CATEGORY
            elif cItem['type'] == 'video':
                type = CDisplayListItem.TYPE_VIDEO
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))
            elif cItem['type'] == 'article':
                type = CDisplayListItem.TYPE_ARTICLE
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = cItem.get('title', '')
            description = clean_html(cItem.get('desc', ''))
            icon = self.host.getFullUrl(cItem.get('icon', ''))

            hostItem = CDisplayListItem(
                name=title,
                description=description,
                type=type,
                urlItems=hostLinks,
                urlSeparateRequest=1,
                iconimage=icon,
                possibleTypesOfSearch=possibleTypesOfSearch)
            hostList.append(hostItem)

        return hostList
Beispiel #11
0
    def converItem(self, cItem):
        hostList = []
        searchTypesOptions = [] # ustawione alfabetycznie  
        
        hostLinks = []
        type = CDisplayListItem.TYPE_UNKNOWN
        possibleTypesOfSearch = None

        if 'category' == cItem['type']:
            if cItem.get('search_item', False):
                type = CDisplayListItem.TYPE_SEARCH
                possibleTypesOfSearch = searchTypesOptions
            else:
                type = CDisplayListItem.TYPE_CATEGORY
        elif cItem['type'] == 'video':
            type = CDisplayListItem.TYPE_VIDEO
        elif 'more' == cItem['type']:
            type = CDisplayListItem.TYPE_MORE
        elif 'audio' == cItem['type']:
            type = CDisplayListItem.TYPE_AUDIO
            
        if type in [CDisplayListItem.TYPE_AUDIO, CDisplayListItem.TYPE_VIDEO]:
            url = cItem.get('url', '')
            if '' != url:
                hostLinks.append(CUrlItem("Link", url, 1))
            
        title       =  cItem.get('title', '')
        description =  cItem.get('desc', '')
        icon        =  cItem.get('icon', '')
        
        return CDisplayListItem(name = title,
                                    description = description,
                                    type = type,
                                    urlItems = hostLinks,
                                    urlSeparateRequest = 1,
                                    iconimage = icon,
                                    possibleTypesOfSearch = possibleTypesOfSearch)
    def converItem(self, cItem):
        hostLinks = []
        type = CDisplayListItem.TYPE_UNKNOWN
        possibleTypesOfSearch = None

        if cItem['type'] == 'category':
            if cItem['title'] == 'Wyszukaj':
                type = CDisplayListItem.TYPE_SEARCH
            else:
                type = CDisplayListItem.TYPE_CATEGORY
        elif cItem['type'] == 'video':
            type = CDisplayListItem.TYPE_VIDEO
        elif 'audio' == cItem['type']:
            type = CDisplayListItem.TYPE_AUDIO
        elif 'picture' == cItem['type']:
            type = CDisplayListItem.TYPE_PICTURE

        if type in [
                CDisplayListItem.TYPE_AUDIO, CDisplayListItem.TYPE_VIDEO,
                CDisplayListItem.TYPE_PICTURE
        ]:
            url = cItem.get('url', '')
            if '' != url:
                hostLinks.append(CUrlItem("Link", url, 1))

        title = clean_html(cItem.get('title', ''))
        description = clean_html(cItem.get('plot', ''))
        icon = cItem.get('icon', '')

        return CDisplayListItem(name=title,
                                description=description,
                                type=type,
                                urlItems=hostLinks,
                                urlSeparateRequest=1,
                                iconimage=icon,
                                possibleTypesOfSearch=possibleTypesOfSearch)
 def displayList(self):
     list = []
     if ":groups:" == self.menu:
         groups = self.favourites.getGroups()
         for item in groups:
             dItem = CDisplayListItem(name=item['title'],
                                      type=CDisplayListItem.TYPE_CATEGORY)
             dItem.privateData = item['group_id']
             list.append((dItem, ))
     else:
         if not self.loadGroupItems(self.menu): return
         sts, items = self.favourites.getGroupItems(self.menu)
         if not sts:
             self.session.open(MessageBox,
                               self.favourites.getLastError(),
                               type=MessageBox.TYPE_ERROR,
                               timeout=10)
             return
         for idx in range(len(items)):
             item = items[idx]
             dItem = CDisplayListItem(name=item.name, type=item.type)
             dItem.privateData = idx
             list.append((dItem, ))
     self["list"].setList(list)
    def listsItems(self, Index, url, name=''):
        printDBG('Host listsItems begin')
        valTab = []
        if name == 'main-menu':
            printDBG('Host listsItems begin name=' + name)
            #valTab.append(CDisplayListItem("Newest (HD-1080p)",  "Newest (HD-1080p)",  CDisplayListItem.TYPE_CATEGORY, ['http://trailers.apple.com/trailers/home/xml/newest_1080p.xml'],  'appletrailers-movies', '', None))
            #valTab.append(CDisplayListItem("Current (HD-1080p)", "Current (HD-1080p)", CDisplayListItem.TYPE_CATEGORY, ['http://trailers.apple.com/trailers/home/xml/current_1080p.xml'], 'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Newest (HD-720p)", "Newest (HD-720p)",
                    CDisplayListItem.TYPE_CATEGORY, [
                        'http://trailers.apple.com/trailers/home/xml/newest_720p.xml'
                    ], 'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Current (HD-720p)", "Current (HD-720p)",
                    CDisplayListItem.TYPE_CATEGORY, [
                        'http://trailers.apple.com/trailers/home/xml/current_720p.xml'
                    ], 'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Newest (HD-480p)", "Newest (HD-480p)",
                    CDisplayListItem.TYPE_CATEGORY, [
                        'http://trailers.apple.com/trailers/home/xml/newest_480p.xml'
                    ], 'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Current (HD-480p)", "Current (HD-480p)",
                    CDisplayListItem.TYPE_CATEGORY, [
                        'http://trailers.apple.com/trailers/home/xml/current_480p.xml'
                    ], 'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Newest (SD)", "Newest (SD)",
                    CDisplayListItem.TYPE_CATEGORY,
                    ['http://trailers.apple.com/trailers/home/xml/newest.xml'],
                    'appletrailers-movies', '', None))
            valTab.append(
                CDisplayListItem(
                    "Current (SD)", "Current (SD)",
                    CDisplayListItem.TYPE_CATEGORY, [
                        'http://trailers.apple.com/trailers/home/xml/current.xml'
                    ], 'appletrailers-movies', '', None))
            printDBG('Host listsItems end')
            return valTab

        # ########## #
        if 'appletrailers-movies' == name:
            printDBG('Host listsItems begin name=' + name)
            self.MAIN_URL = 'http://trailers.apple.com'
            query_data = {
                'url': url,
                'use_host': False,
                'use_cookie': False,
                'use_post': False,
                'return_data': True
            }
            try:
                data = self.cm.getURLRequestData(query_data)
            except Exception:
                printDBG('Host listsItems query error')
                printDBG('Host listsItems query error url:' + url)
                return valTab
            printDBG('Host listsItems data: ' + data)
            phMovies = re.findall(
                '<movieinfo.*?<title>(.*?)</title>.*?<runtime>(.*?)</runtime>.*?<location>(.*?)</location>.*?<large filesize=".*?">(.*?)</large>',
                data, re.S)
            if phMovies:
                for (phTitle, phRuntime, phImage, phUrl) in phMovies:
                    phUrl = urlparser.decorateUrl(
                        phUrl, {'User-Agent': 'QuickTime/7.6.2'})
                    printDBG('Host listsItems phTitle:   ' + phTitle)
                    printDBG('Host listsItems phRuntime: ' + phRuntime)
                    printDBG('Host listsItems phImage:   ' + phImage)
                    printDBG('Host listsItems phUrl:     ' + phUrl)
                    valTab.append(
                        CDisplayListItem(phTitle,
                                         '[' + phRuntime + '] ' + phTitle,
                                         CDisplayListItem.TYPE_VIDEO,
                                         [CUrlItem('', phUrl, 1)], 0, phImage,
                                         None))
            printDBG('Host listsItems end')
            return valTab

        return valTab
Beispiel #15
0
    def __init__(self, session, params={}):
        # params: vk_title, movie_title
        printDBG(
            "IPTVSubDownloaderWidget.__init__ desktop IPTV_VERSION[%s]\n" %
            (IPTVSubDownloaderWidget.IPTV_VERSION))
        self.session = session
        path = GetSkinsDir(
            config.plugins.iptvplayer.skin.value) + "/subplaylist.xml"
        if os_path.exists(path):
            try:
                with open(path, "r") as f:
                    self.skin = f.read()
                    f.close()
            except Exception:
                printExc("Skin read error: " + path)

        Screen.__init__(self, session)

        self["key_red"] = StaticText(_("Cancel"))

        self["list"] = IPTVMainNavigatorList()
        self["list"].connectSelChanged(self.onSelectionChanged)
        self["statustext"] = Label("Loading...")
        self["actions"] = ActionMap(
            [
                "IPTVPlayerListActions", "WizardActions", "DirectionActions",
                "ColorActions", "NumberActions"
            ], {
                "red": self.red_pressed,
                "green": self.green_pressed,
                "yellow": self.yellow_pressed,
                "blue": self.blue_pressed,
                "ok": self.ok_pressed,
                "back": self.back_pressed,
            }, -1)

        self["headertext"] = Label()
        self["console"] = Label()
        self["sequencer"] = Label()

        try:
            for idx in range(5):
                spinnerName = "spinner"
                if idx: spinnerName += '_%d' % idx
                self[spinnerName] = Cover3()
        except Exception:
            printExc()

        self.spinnerPixmap = [
            LoadPixmap(GetIconDir('radio_button_on.png')),
            LoadPixmap(GetIconDir('radio_button_off.png'))
        ]
        self.showHostsErrorMessage = True

        self.onClose.append(self.__onClose)
        #self.onLayoutFinish.append(self.onStart)
        self.onShow.append(self.onStart)

        #Defs
        self.params = dict(params)
        self.params['discover_info'] = self.discoverInfoFromTitle()
        self.params['movie_url'] = strwithmeta(self.params.get(
            'movie_url', ''))
        self.params['url_params'] = self.params['movie_url'].meta
        self.movieTitle = self.params['discover_info']['movie_title']

        self.workThread = None
        self.host = None
        self.hostName = ''

        self.nextSelIndex = 0
        self.currSelIndex = 0

        self.prevSelList = []
        self.categoryList = []

        self.currList = []
        self.currItem = CDisplayListItem()

        self.visible = True

        #################################################################
        #                      Inits for Proxy Queue
        #################################################################

        # register function in main Queue
        if None == asynccall.gMainFunctionsQueueTab[1]:
            asynccall.gMainFunctionsQueueTab[
                1] = asynccall.CFunctionProxyQueue(self.session)
        asynccall.gMainFunctionsQueueTab[1].clearQueue()
        asynccall.gMainFunctionsQueueTab[1].setProcFun(
            self.doProcessProxyQueueItem)

        #main Queue
        self.mainTimer = eTimer()
        self.mainTimer_conn = eConnectCallback(self.mainTimer.timeout,
                                               self.processProxyQueue)
        # every 100ms Proxy Queue will be checked
        self.mainTimer_interval = 100
        self.mainTimer.start(self.mainTimer_interval, True)

        # spinner timer
        self.spinnerTimer = eTimer()
        self.spinnerTimer_conn = eConnectCallback(self.spinnerTimer.timeout,
                                                  self.updateSpinner)
        self.spinnerTimer_interval = 200
        self.spinnerEnabled = False

        #################################################################

        self.downloadedSubItems = []
Beispiel #16
0
    def listSubtitlesProviders(self):
        printDBG("IPTVSubDownloaderWidget.listSubtitlesProviders")
        subProvidersList = []
        napisy24pl = {'title': "Napisy24.pl", 'sub_provider': 'napisy24pl'}
        openSubtitles = {
            'title': "OpenSubtitles.org API",
            'sub_provider': 'opensubtitlesorg'
        }
        openSubtitles2 = {
            'title': "OpenSubtitles.org WWW",
            'sub_provider': 'opensubtitlesorg2'
        }
        openSubtitles3 = {
            'title': "OpenSubtitles.org REST",
            'sub_provider': 'opensubtitlesorg3'
        }
        napiprojektpl = {
            'title': "Napiprojekt.pl",
            'sub_provider': 'napiprojektpl'
        }
        podnapisinet = {
            'title': "Podnapisi.net",
            'sub_provider': 'podnapisinet'
        }
        titlovi = {'title': "Titlovi.com", 'sub_provider': 'titlovicom'}
        subscene = {'title': "Subscene.com", 'sub_provider': 'subscenecom'}
        youtube = {'title': "Youtube.com", 'sub_provider': 'youtubecom'}
        popcornsubtitles = {
            'title': "PopcornSubtitles.com",
            'sub_provider': 'popcornsubtitles'
        }
        subtitlesgr = {'title': "Subtitles.gr", 'sub_provider': 'subtitlesgr'}
        prijevodi = {
            'title': "Prijevodi-Online.org",
            'sub_provider': 'prijevodi'
        }
        subsro = {'title': "Subs.ro", 'sub_provider': 'subsro'}

        defaultLang = GetDefaultLang()

        if 'youtube_id' in self.params['url_params'] and '' != self.params[
                'url_params']['youtube_id']:
            subProvidersList.append(youtube)

        if 'popcornsubtitles_url' in self.params[
                'url_params'] and '' != self.params['url_params'][
                    'popcornsubtitles_url']:
            subProvidersList.append(popcornsubtitles)

        if 'hr' == defaultLang:
            subProvidersList.append(prijevodi)

        if 'el' == defaultLang:
            subProvidersList.append(subtitlesgr)

        if 'ro' == defaultLang:
            subProvidersList.append(subsro)

        if 'pl' == defaultLang:
            subProvidersList.append(napisy24pl)
            if IsSubtitlesParserExtensionCanBeUsed():
                subProvidersList.append(napiprojektpl)

        subProvidersList.append(openSubtitles2)
        subProvidersList.append(openSubtitles3)
        subProvidersList.append(openSubtitles)
        subProvidersList.append(podnapisinet)
        subProvidersList.append(titlovi)
        subProvidersList.append(subscene)

        if 'pl' != defaultLang:
            subProvidersList.append(napisy24pl)
            if IsSubtitlesParserExtensionCanBeUsed():
                subProvidersList.append(napiprojektpl)

        if 'el' != defaultLang:
            subProvidersList.append(subtitlesgr)

        if 'hr' != defaultLang:
            subProvidersList.append(prijevodi)

        if 'ro' != defaultLang:
            subProvidersList.append(subsro)

        self.currList = []
        for item in subProvidersList:
            params = CDisplayListItem(item['title'], item.get('desc', ''),
                                      CDisplayListItem.TYPE_SUB_PROVIDER)
            params.privateData = {'sub_provider': item['sub_provider']}
            self.currList.append(params)

        idx = 0
        selIndex = 0
        for idx in range(len(self.currList)):
            if self.hostName == self.currList[idx].privateData['sub_provider']:
                selIndex = idx
                break

        self["list"].setList([(x, ) for x in self.currList])
        #restor previus selection
        if len(self.currList) > selIndex:
            self["list"].moveToIndex(selIndex)
        self.changeBottomPanel()
        self["headertext"].setText(self.getCategoryPath())
        self["statustext"].setText("")
        self["list"].show()