def converItem(self, cItem):
        hostList = []
        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
            url = cItem.get('url', '')
            if '' != url: hostLinks.append(CUrlItem("Link", url, 1))
            
        title       =  cItem.get('title', '')
        description =  clean_html(cItem.get('desc', '')) + 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)
Esempio n. 2
0
    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 converItem(self, cItem):
        hostList = []
        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
            url = cItem.get('url', '')
            if '' != url: hostLinks.append(CUrlItem("Link", url, 1))

        title = cItem.get('title', '')
        description = clean_html(cItem.get('desc', '')) + 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)
Esempio n. 4
0
    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
    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
Esempio n. 6
0
    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)
Esempio n. 7
0
    def processCaptcha(self, key):
        post_data = None
        token = ''
        iteration = 0
        reCaptchaUrl = 'https://www.google.com/recaptcha/api/noscript?k=%s' % (key)
        while iteration < 20:
            sts, data = self.cm.getPage(reCaptchaUrl, {'header': self.HTTP_HEADER, 'raw_post_data': True}, post_data=post_data)
            if not sts:
                SetIPTVPlayerLastHostError(_('Fail to get "%s".') % reCaptchaUrl)
                return ''

            imgUrl = self.cm.ph.getSearchGroups(data, 'src="(image[^"]+?)"')[0]
            iteration += 1
            message = self.cm.ph.getSearchGroups(data, '<p[^>]*>([^<]+?)</p>')[0]
            token = self.cm.ph.getSearchGroups(data, '<textarea[^>]*>([^<]+?)</textarea>')[0]
            if '' != token:
                printDBG('>>>>>>>> Captcha token[%s]' % (token))
                break
            elif message == '':
                printDBG('>>>>>>>> Captcha Failed')
                break

            recaptcha_challenge_field = self.cm.ph.getSearchGroups(data, 'name="recaptcha_challenge_field"[^>]+?value="([^"]+)"')[0]
            imgUrl = 'https://www.google.com/recaptcha/api/%s' % (imgUrl.replace('&amp;', '&'))
            message = clean_html(message)
            accepLabel = clean_html(self.cm.ph.getSearchGroups(data, 'type="submit"[^>]+?value="([^"]+)"')[0])

            filePath = GetTmpDir('.iptvplayer_captcha.jpg')
            printDBG(">>>>>>>> Captcha message[%s]" % (message))
            printDBG(">>>>>>>> Captcha accep label[%s]" % (accepLabel))
            printDBG(">>>>>>>> Captcha imgUrl[%s] filePath[%s]" % (imgUrl, filePath))

            params = {'maintype': 'image', 'subtypes': ['jpeg'], 'check_first_bytes': ['\xFF\xD8', '\xFF\xD9']}
            ret = self.cm.saveWebFile(filePath, imgUrl, params)
            if not ret.get('sts'):
                SetIPTVPlayerLastHostError(_('Fail to get "%s".') % imgUrl)
                break

            params = deepcopy(IPTVMultipleInputBox.DEF_PARAMS)
            params['accep_label'] = _('Send')
            params['title'] = accepLabel
            params['list'] = []
            item = deepcopy(IPTVMultipleInputBox.DEF_INPUT_PARAMS)
            item['label_size'] = (300, 57)
            item['input_size'] = (300, 25)
            item['icon_path'] = filePath
            item['input']['text'] = ''
            params['list'].append(item)

            ret = 0
            retArg = self.sessionEx.waitForFinishOpen(IPTVMultipleInputBox, params)
            printDBG('>>>>>>>> Captcha response[%s]' % (retArg))
            if retArg is not None and len(retArg) and retArg[0]:
                recaptcha_response_field = retArg[0]
                printDBG('>>>>>>>> Captcha recaptcha_response_field[%s]' % (recaptcha_response_field))
                post_data = urllib.urlencode({'recaptcha_challenge_field': recaptcha_challenge_field, 'recaptcha_response_field': recaptcha_response_field, 'submit': accepLabel}, doseq=True)
            else:
                break

        return token
 def getMovieTab(self, url):
     printDBG(gettytul() + ': ' +'getMovieTab start')
     
     sts, data = self.cm.getPage(url, self.defaultParams)
     if sts:
         # check if next Page available
         nextPageparams = None
         match = re.search('Paginator[^,]+?,([^,]+?), 8, ([^,]+?),', data)
         if match:
             if int(match.group(2)) < int(match.group(1)):
                 nextpage = (int(match.group(2))+1) * 20
                 p = url.split('/')
                 if len(p) == 7:
                     newpage = self.MAINURL + "/" + p[3] + "/" + p[4] + "/" + p[5] + "/" + str(nextpage)
                 else:
                     newpage = self.MAINURL + "/" + p[3] + "/" + str(nextpage)
                 nextPageparams = {'type': 'category', 'name': 'nextpage', 'title': 'Następna strona', 'page': newpage, 'icon': ''}
         # get videos
         data = self.cm.ph.getDataBeetwenMarkers(data, 'class="kat-box-div">', '<script', False)[1].split('class="kat-box-div">')
         for item in data:
             icon = self.cm.ph.getSearchGroups(item, 'src="([^"]+?)"')[0]
             plot = clean_html(self.cm.ph.getDataBeetwenMarkers(item, 'class="div_opis">Opis:', '</div>', False)[1])
             match = self.cm.ph.getSearchGroups(item, '<a href="([^"]+?)" class="kat-box-name">([^<]+?)<', 2)
             params = {'type': 'video', 'title': match[1], 'page': self.MAINURL + match[0], 'plot': plot, 'icon': icon}
             self.currList.append(params)
                 
         if nextPageparams is not None:
             self.currList.append(nextPageparams)
    def displayList(self, activeIdx=0):
        list = []
        tmpList = self.stackList[-1]['list']
        type = self.stackList[-1]['type']

        iconType = CDisplayListItem.TYPE_CATEGORY
        if type == 'movie':
            self["title"].setText(_("Select movie"))
        if type == 'episode':
            self["title"].setText(_("Select episode"))
        elif type == "lang":
            self["title"].setText(_("Select language"))
        elif type == "sub":
            iconType = CDisplayListItem.TYPE_ARTICLE
            self["title"].setText(_("Select subtitles to download"))

        self["title"].show()

        for item in tmpList:
            dItem = CDisplayListItem(name=clean_html(item['title']),
                                     type=iconType)
            dItem.privateData = item['private_data']
            list.append((dItem, ))
        self["list"].setList(list)
        self["list"].show()
        try:
            self["list"].moveToIndex(activeIdx)
        except:
            pass

        self.setListMode(True)
Esempio n. 10
0
    def listAZItems(self, cItem, nextCategory):
        printDBG("PlayRTSIW.listAZItems cItem[%s]" % (cItem))
        type = cItem['f_type']
        if self.cacheShowsMap == []:
            if type == 'tv':
                url = self.getFullUrl('/play/v2/%s/shows' % type)
            else:
                url = self.getFullUrl(
                    '/play/radio/shows/alphabetical-sections?channelId=' +
                    cItem['f_channel_id'])
            sts, data = self.cm.getPage(url)
            if not sts:
                return

            data = clean_html(
                self.cm.ph.getDataBeetwenMarkers(
                    data, 'data-alphabetical-sections="', '"', False)[1])
            try:
                self.cacheShowsMap = byteify(json.loads(data))
            except Exception:
                printExc()

        letters = cItem.get('f_letters', '')
        try:
            for section in self.cacheShowsMap:
                if section['id'] not in letters:
                    continue
                params = dict(cItem)
                params['category'] = nextCategory
                self._listShows(params, section['showTeaserList'])
        except Exception:
            printExc()
Esempio n. 11
0
 def getLinksForVideo(self, cItem):
     printDBG("IceFilms.getLinksForVideo [%s]" % cItem)
     urlTab = []
     
     if len(self.cacheLinks.get(cItem['url'], [])):
         return self.cacheLinks[cItem['url']]
     
     rm(self.COOKIE_FILE)
     sts, data = self.getPage(cItem['url'], self.defaultParams)
     if not sts: return []
     
     url = self.getFullUrl(self.cm.ph.getSearchGroups(data, '''<iframe[^>]+?src=['"]([^"^']+?)['"]''', 1, True)[0])
     url = self.getFullUrl(url)
     
     sts, data = self.getPage(url, self.defaultParams )
     if not sts: return []
     
     data = self.cm.ph.getDataBeetwenMarkers(data, 'id="srclist"', 'These links brought')[1]
     data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'ripdiv', '</div>')
     for item in data:
         mainTitle = self.cleanHtmlStr(self.cm.ph.getDataBeetwenMarkers(item, '<b', '</b>')[1])
         
         sourcesTab = self.cm.ph.getAllItemsBeetwenMarkers(item, '<a', '</i>')
         for source in sourcesTab:
             sourceId = self.cm.ph.getSearchGroups(source, '''onclick=['"]go\((\d+)\)['"]''')[0]
             if sourceId == '': continue
             sourceName = self.cleanHtmlStr(clean_html(source.replace('</a>', ' ')))
             
             urlTab.append({'name':'[{0}] {1}'.format(mainTitle, sourceName), 'url':strwithmeta(sourceId, {'url':cItem['url']}), 'need_resolve':1})
     
     self.cacheLinks[cItem['url']] = urlTab
     return urlTab
Esempio n. 12
0
 def cleanHtmlStr(str):
     str = str.replace('<', ' <')
     str = str.replace('&nbsp;', ' ')
     str = str.replace('&nbsp', ' ')
     str = clean_html(str)
     str = str.replace('\n', ' ').replace('\r', ' ').replace('\t', ' ')
     return CParsingHelper.removeDoubles(str, ' ').strip()
Esempio n. 13
0
    def convertList(self, cList):
        hostList = []
    
        for cItem in cList:
            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
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))
                
            title       =  cItem.get('title', '')
            description =  cItem.get('plot', '')
            description = clean_html(description.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
    def getChannelsList(self):
        printDBG("SatLiveApi.getChannelsList")
        
        # login
        premium  = config.plugins.iptvplayer.satlivetv_premium.value
        login    = config.plugins.iptvplayer.satlivetv_login.value
        password = config.plugins.iptvplayer.satlivetv_password.value
        if premium:        
            if self.doLogin(login, password):
                self.loggedIn = True
                self.http_params.update({'save_cookie': True, 'load_cookie': True, 'cookiefile': self.COOKIE_FILE})
            else:
                self.sessionEx.open(MessageBox, _('Problem z zalogowanie użytkownika "%s. Sprawdź dane do logowania w konfiguracji hosta."') % login, type = MessageBox.TYPE_INFO, timeout = 10 )

        # get channels
        channelsList = []
        sts, data = self.cm.getPage(SatLiveApi.LIST_URL, self.http_params)
        if not sts:
            return []
        
        data = self.cm.ph.getDataBeetwenMarkers(data, '<div class="tab-pane active" id="live">', '<div class="tab-pane" id="all">', False)[1]
        data = data.split('</li>')
        for item in data:
            tmp = self.cm.ph.getSearchGroups(item, '<h4><a href="([^"]+?)">([^<]+?)</a></h4>', 2)
            if '' != tmp[0]:
                params = {}
                params['url']   = SatLiveApi.MAINURL + tmp[0]
                params['title'] = tmp[1]
                icon = self.cm.ph.getSearchGroups(item, '<img class="" src="([^"]+?)"')[0]
                if '' != icon:
                    params['icon']  = SatLiveApi.MAINURL + icon
                params['desc']      = self.cm.ph.removeDoubles(clean_html(item.replace('>', '> ')).replace('\t', ' '), ' ')
                channelsList.append(params)
        return channelsList
 def displayList(self, activeIdx=0):
     list = []
     tmpList = self.stackList[-1]['list']
     type    = self.stackList[-1]['type']
     
     iconType = CDisplayListItem.TYPE_CATEGORY
     if type == 'movie':
         self["title"].setText(_("Select movie"))
     if type == 'episode':
         self["title"].setText(_("Select episode"))
     elif type == "lang":
         self["title"].setText(_("Select language"))
     elif type == "sub":
         iconType = CDisplayListItem.TYPE_ARTICLE
         self["title"].setText(_("Select subtitles to download"))
     
     self["title"].show()
     
     for item in tmpList:
         dItem = CDisplayListItem(name = clean_html(item['title']), type=iconType)
         dItem.privateData = item['private_data']
         list.append( (dItem,) )
     self["list"].setList(list)
     self["list"].show()
     try: self["list"].moveToIndex(activeIdx)
     except: pass
     
     self.setListMode(True)
Esempio n. 16
0
    def listFiltered(self, cItem):
        printDBG("SonyPlayerHU.listFiltered")
        site=cItem["site"]
        if not site in self.sites: return
        sitedef=self.siteDefs[self.sites.index(site)]
        self.tryTologin(sitedef)
        page=cItem.get("page",0)
        cItem.pop("page",None)

        url = sitedef["base"]+"/views/ajax?field_video_type_tid_selective="+cItem["url"].format("&field_genre_tid_selective=","&sort_by=")+"&view_name=videos&view_display_id=all_3up&view_path=videos%2Fall&pager_element=0&page="+str(page)

        try:
            sts, data = self.cm.getPage(url, self.defaultParams)
            if not sts: raise Exception("Can't get "+url+" page")
            data = json_loads(data)
             
            episodes=data[0]["settings"].get("spti_gigya_share")
            if not episodes: return


            i=next((i for i in data if i["command"] == "insert" and i["selector"] == ".view-dom-id-"), None)

            if i: data = i["data"]
            else: data = ""

            if 'class="pager pager-load-more"' in data:
                page = page + 1
            else: page = 0

            data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'class="card video"', '</li>', False)

            for i,episode in enumerate(episodes):
                title = episode["title"]
                url = episode["url"]
                icon = episode["image"]
                desc = ""
                if i < len(data):
                    desc = self.cm.ph.getDataBeetwenMarkers(data[i], '<div class="type">', "</div>", False)[1]
                    tmp = self.cm.ph.getDataBeetwenMarkers(data[i], '<div class="meta">', "</div>", False)[1]
                    tmp = self.cm.ph.getAllItemsBeetwenMarkers(tmp, '<span>', '</span>', False)
                    if len(tmp) >= 2 and tmp[0] == "Hossz":
                        if desc: desc = desc + " "
                    desc = desc + tmp[1]
                    tmp = self.cm.ph.getDataBeetwenMarkers(data[i], '<div class="more">', "/a>", False)[1]                
                    tmp = clean_html(self.cm.ph.getDataBeetwenMarkers(tmp, ">", "<", False)[1])
                    if desc and tmp: desc = desc + '\n'
                    desc = desc + tmp
                
                params=dict(cItem)
                params.update( {"title": title, "icon": icon, "url": url, "desc": desc } )
                self.addVideo(params)

            if page > 0 and len(self.currList) > 0:
                params = dict(cItem)
                params.update({'title':_("Next page"), 'page':page})
                self.addDir(params)


        except Exception(): printExc()
Esempio n. 17
0
 def _getJItemStr(self, item, key, default=""):
     try:
         v = item.get(key, None)
     except:
         v = None
     if None == v:
         return default
     return clean_html(u"%s" % v).encode("utf-8")
Esempio n. 18
0
 def _getJItemStr(self, item, key, default=''):
     try:
         v = item.get(key, None)
         if None == v:
             return default
     except Exception:
         return default
     return clean_html('%s' % v)
Esempio n. 19
0
 def _getJItemStr(self, item, key, default=''):
     try:
         v = item.get(key, None)
     except Exception:
         v = None
     if None == v:
         return default
     return clean_html(u'%s' % v).encode('utf-8')
Esempio n. 20
0
 def _getJItemStr(self, item, key, default=''):
     try:
         v = item.get(key, None)
         if None == v:
             return default
     except:
         return default
     return clean_html(u'%s' % v).encode('utf-8')
Esempio n. 21
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
Esempio n. 22
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        searchTypesOptions.append(("Zdjęcia", "images"))
        searchTypesOptions.append(("Wideo", "video"))
        searchTypesOptions.append(("Audio", "music"))

        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'] in ['audio', 'video', 'picture']:
                if 'video' == cItem['type']:
                    type = CDisplayListItem.TYPE_VIDEO
                elif 'audio' == cItem['type']:
                    type = CDisplayListItem.TYPE_AUDIO
                else:
                    type = CDisplayListItem.TYPE_PICTURE
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = cItem.get('title', '')
            description = clean_html(cItem.get('desc', '')) + clean_html(
                cItem.get('plot', ''))
            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
Esempio n. 23
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        searchTypesOptions.append(("Zdjęcia", "images"))
        searchTypesOptions.append(("Wideo", "video"))
        searchTypesOptions.append(("Audio", "music"))

        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"] in ["audio", "video", "picture"]:
                if "video" == cItem["type"]:
                    type = CDisplayListItem.TYPE_VIDEO
                elif "audio" == cItem["type"]:
                    type = CDisplayListItem.TYPE_AUDIO
                else:
                    type = CDisplayListItem.TYPE_PICTURE
                url = cItem.get("url", "")
                if "" != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = cItem.get("title", "")
            description = clean_html(cItem.get("desc", "")) + clean_html(cItem.get("plot", ""))
            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
Esempio n. 24
0
    def listEpisodes(self, cItem):
        printDBG("SonyPlayerHU.listEpisodes")
        site=cItem["site"]
        if not site in self.sites: return
        sitedef=self.siteDefs[self.sites.index(site)]
        self.tryTologin(sitedef)
        page=cItem.get("page",0)
        cItem.pop("page",None)
        url = cItem["url"]
        try:
            sts, data = self.cm.getPage(sitedef["base"]+url+"?page="+str(page), self.defaultParams)
            if not sts: raise Exception("Can't get "+url+" page")
            if 'class="pager pager-load-more"' in data:
                page = page + 1
            else: page = 0
             
            data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'class="card video"', '</li>', False)
            for i in data:
                tmp = self.cm.ph.getDataBeetwenMarkers(i, "<div class=promo>", "</a>", False)[1]                
                url = sitedef["base"]+self.cm.ph.getDataBeetwenMarkers(tmp, 'href="', '">', False)[1]
                icon = self.cm.ph.getDataBeetwenMarkers(tmp, 'src="', '?', False)[1]
                title = clean_html(self.cm.ph.getDataBeetwenMarkers(tmp, "class=title>", "<", False)[1])

                desc = self.cm.ph.getDataBeetwenMarkers(i, '<div class=type>', "</div>", False)[1]
                tmp = self.cm.ph.getDataBeetwenMarkers(i, '<div class=meta>', "</div>", False)[1]
                tmp = self.cm.ph.getAllItemsBeetwenMarkers(tmp, '<span>', '</span>', False)
                if len(tmp) >= 2 and tmp[0] == "Hossz":
                    if desc: desc = desc + " "
                    desc = desc + tmp[1]

                tmp = self.cm.ph.getDataBeetwenMarkers(i, "<div class=more>", "/a>", False)[1]                
                tmp = clean_html(self.cm.ph.getDataBeetwenMarkers(tmp, ">", "<", False)[1])
                if desc and tmp: desc = desc + '\n'
                desc = desc + tmp
                params = dict(cItem)
                params.update( {"title": title, "url": url, "icon": icon, "desc": desc } )
                self.addVideo(params)

            if page > 0 and len(self.currList) > 0:
                params = dict(cItem)
                params.update({'title':_("Next page"), 'page':page})
                self.addDir(params)
        except Exception(): printExc()
Esempio n. 25
0
 def getArticleContent(self, Index = 0):
     listLen = len(self.host.currList)
     if listLen < Index and listLen > 0:
         printDBG( "ERROR getArticleContent - current list is to short len: %d, Index: %d" % (listLen, Index) )
         return RetHost(RetHost.ERROR, value = [])
     
     if self.host.currList[Index]["type"] != 'article':
         printDBG( "ERROR getArticleContent - current item has wrong type" )
         return RetHost(RetHost.ERROR, value = [])
     
     retlist = []
     hList = self.host.getArticleContent(Index)
     for item in hList:
         title  = clean_html( item.get('title', '') )
         text   = clean_html( item.get('text', '') )
         images = item.get("images", [])
         retlist.append( ArticleContent(title = title, text = text, images =  images) )
     
     return RetHost(RetHost.OK, value = retlist)
Esempio n. 26
0
    def getArticleContent(self, Index=0):
        listLen = len(self.host.currList)
        if listLen < Index and listLen > 0:
            printDBG("ERROR getArticleContent - current list is to short len: %d, Index: %d" % (listLen, Index))
            return RetHost(RetHost.ERROR, value=[])

        if self.host.currList[Index]["type"] != 'article':
            printDBG("ERROR getArticleContent - current item has wrong type")
            return RetHost(RetHost.ERROR, value=[])

        retlist = []
        hList = self.host.getArticleContent(Index)
        for item in hList:
            title = clean_html(item.get('title', ''))
            text = clean_html(item.get('text', ''))
            images = item.get("images", [])
            retlist.append(ArticleContent(title=title, text=text, images=images))

        return RetHost(RetHost.OK, value=retlist)
Esempio n. 27
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
Esempio n. 28
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        searchTypesOptions.append(("MUSIC", "MUSIC"))
        #searchTypesOptions.append(("TV", "TV"))
        searchTypesOptions.append(("FILM", "FILM"))
        #searchTypesOptions.append(("CHANNEL", "CHANNEL"))
        searchTypesOptions.append(("COMMUNITY", "COMMUNITY"))

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

            if cItem['type'] == 'category':
                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
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = cItem.get('title', '')
            description = clean_html(cItem.get('desc', '')) + clean_html(
                cItem.get('plot', ''))
            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
Esempio n. 29
0
 def getMoreItem(self, cUrl, data):
     moreItem = {}
     data = self.cm.ph.getDataBeetwenNodes(data, ('<div', '>', 'show_more'),
                                           ('</div', '>'))[1]
     ajaxData = clean_html(
         self.cm.ph.getSearchGroups(
             data, '''\sdata\-infiniteAjaxScroll=['"]([^'^"]+?)['"]''')[0])
     queryData = clean_html(
         self.cm.ph.getSearchGroups(
             data, '''\sdata\-query=['"]([^'^"]+?)['"]''')[0])
     try:
         data = byteify(json.loads(ajaxData))
         moreItem['params'] = data
         moreItem['query'] = queryData
         moreItem['next'] = self.getFullUrl(
             data['url'] + '?' + queryData + '&page={0}', cUrl)
         moreItem['pages'] = data.get('k', 0)
     except Exception:
         printExc()
     printDBG(moreItem)
     return moreItem
Esempio n. 30
0
 def getCategoriesList(self):
     printDBG("TvSportCdaApi.getCategoriesList")
     sts,data = self.cm.getPage(TvSportCdaApi.MAINURL)
     if not sts: return []
     data = self.cm.ph.getDataBeetwenMarkers(data, '<div id="nav">', '<div class="clear">', False)[1]
     catsList = []
     data = data.split('menu-item-ancestor">')
     if len(data): del data[0]
     for item in data:
         tmp = self.cm.ph.getSearchGroups(item, '<a[^>]*?>(.+?)</a>')[0]
         catsList.append( {'title':clean_html(tmp), 'url':tmp} )
     return catsList
Esempio n. 31
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = [] # ustawione alfabetycznie
        searchTypesOptions.append(("MUSIC", "MUSIC"))
        #searchTypesOptions.append(("TV", "TV"))
        searchTypesOptions.append(("FILM", "FILM"))
        #searchTypesOptions.append(("CHANNEL", "CHANNEL"))
        searchTypesOptions.append(("COMMUNITY", "COMMUNITY"))
    
        for cItem in cList:
            hostLinks = []
            type = CDisplayListItem.TYPE_UNKNOWN
            possibleTypesOfSearch = None

            if cItem['type'] == 'category':
                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
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))
                
            title       =  cItem.get('title', '')
            description =  clean_html(cItem.get('desc', '')) + clean_html(cItem.get('plot', ''))
            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
Esempio n. 32
0
    def convertList(self, cList):
        hostList = []
        searchTypesOptions = []  # ustawione alfabetycznie
        # searchTypesOptions.append(("Items", "items"))
        # searchTypesOptions.append(("Channel", "channel"))

        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))

            title = cItem.get("title", "")
            description = clean_html(cItem.get("desc", "")) + clean_html(cItem.get("plot", ""))
            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
Esempio n. 33
0
 def listTeaserItems(self, cItem):
     printDBG("PlayRTSIW.listTeaserItems")
     sts, data = self.cm.getPage(cItem['url'])
     if not sts: return
     
     tmp = self.cm.ph.getAllItemsBeetwenMarkers(data, 'data-teaser="', '"', False)
     for data in tmp:
         data = clean_html(data)
         try:
             data = byteify(json.loads(data))
             self._listItems(cItem, data)
         except Exception:
             printExc()
Esempio n. 34
0
 def getCategoriesList(self):
     printDBG("TvSportCdaApi.getCategoriesList")
     sts, data = self.cm.getPage(TvSportCdaApi.MAINURL)
     if not sts: return []
     data = self.cm.ph.getDataBeetwenMarkers(data, '<div id="nav">',
                                             '<div class="clear">',
                                             False)[1]
     catsList = []
     data = data.split('menu-item-ancestor">')
     if len(data): del data[0]
     for item in data:
         tmp = self.cm.ph.getSearchGroups(item, '<a[^>]*?>(.+?)</a>')[0]
         catsList.append({'title': clean_html(tmp), 'url': tmp})
     return catsList
Esempio n. 35
0
    def convertList(self, cList):
        hostList = []

        for cItem in cList:
            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
                url = cItem.get('url', '')
                if '' != url:
                    hostLinks.append(CUrlItem("Link", url, 1))

            title = cItem.get('title', '')
            title = clean_html(title.decode("utf-8")).encode("utf-8")
            description = cItem.get('plot', '')
            description = clean_html(
                description.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
Esempio n. 36
0
    def getChannelsList(self):
        printDBG("SatLiveApi.getChannelsList")

        # login
        premium = config.plugins.iptvplayer.satlivetv_premium.value
        login = config.plugins.iptvplayer.satlivetv_login.value
        password = config.plugins.iptvplayer.satlivetv_password.value
        if premium:
            if self.doLogin(login, password):
                self.loggedIn = True
                self.http_params.update({
                    'save_cookie': True,
                    'load_cookie': True,
                    'cookiefile': self.COOKIE_FILE
                })
            else:
                self.sessionEx.open(
                    MessageBox,
                    _('Problem z zalogowanie użytkownika "%s. Sprawdź dane do logowania w konfiguracji hosta."'
                      ) % login,
                    type=MessageBox.TYPE_INFO,
                    timeout=10)

        # get channels
        channelsList = []
        sts, data = self.cm.getPage(SatLiveApi.LIST_URL, self.http_params)
        if not sts:
            return []

        data = self.cm.ph.getDataBeetwenMarkers(
            data, '<div class="tab-pane active" id="live">',
            '<div class="tab-pane" id="all">', False)[1]
        data = data.split('</li>')
        for item in data:
            tmp = self.cm.ph.getSearchGroups(
                item, '<h4><a href="([^"]+?)">([^<]+?)</a></h4>', 2)
            if '' != tmp[0]:
                params = {}
                params['url'] = SatLiveApi.MAINURL + tmp[0]
                params['title'] = tmp[1]
                icon = self.cm.ph.getSearchGroups(
                    item, '<img class="" src="([^"]+?)"')[0]
                if '' != icon:
                    params['icon'] = SatLiveApi.MAINURL + icon
                params['desc'] = self.cm.ph.removeDoubles(
                    clean_html(item.replace('>', '> ')).replace('\t', ' '),
                    ' ')
                channelsList.append(params)
        return channelsList
Esempio n. 37
0
    def listsItems(self, Index, url, name = ''):
        printDBG( 'Host listsItems begin' )
        printDBG( 'Host listsItems url[%r] '% url )
        valTab = []
        if name == 'main-menu':
           printDBG( 'Host listsItems begin name='+name )
           valTab.append(CDisplayListItem('Episodes',     'http://player.dancetrippin.tv/#dj',    CDisplayListItem.TYPE_CATEGORY, ['http://player.dancetrippin.tv/video/list/dj/'],    'episodes', '', None)) 
           valTab.append(CDisplayListItem('Sol sessions', 'http://player.dancetrippin.tv/#sol',   CDisplayListItem.TYPE_CATEGORY, ['http://player.dancetrippin.tv/video/list/sol/'],   'episodes', '', None)) 
           valTab.append(CDisplayListItem('Other videos', 'http://player.dancetrippin.tv/#other', CDisplayListItem.TYPE_CATEGORY, ['http://player.dancetrippin.tv/video/list/other/'], 'episodes', '', None)) 
           valTab.append(CDisplayListItem('Ibiza Global Radio', 'http://player.dancetrippin.tv/#igr', CDisplayListItem.TYPE_CATEGORY, ['http://player.dancetrippin.tv/video/list/igr/'], 'episodes', '', None))
           return valTab

        # ########## #
        if 'episodes' == name:
           printDBG( 'Host listsItems begin name='+name )
           self.MAIN_URL = 'http://player.dancetrippin.tv' 
           try: data = self.cm.getURLRequestData({ 'url': url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True })
           except:
              printExc( 'Host listsItems query error url[%r]' % url )
              return valTab
           #printDBG( 'Host listsItems data: '+data )
           result = simplejson.loads(data)
           if result:
              for item in result:
                  '''
                  printDBG( 'Host listsItems number: '+str(item["number"]) )
                  printDBG( 'Host listsItems title: '+str(item["title"]) )
                  printDBG( 'Host listsItems venue: '+str(item["venue"]) )
                  printDBG( 'Host listsItems location: '+str(item["location"]) )
                  printDBG( 'Host listsItems party: '+str(item["party"]) )
                  printDBG( 'Host listsItems description: '+str(item["description"]) )
                  printDBG( 'Host listsItems dj: '+str(item["dj"]) )
                  '''
                  if self.getStr(item["image"]) <> "":
                     phImage = 'http://www.dancetrippin.tv/media/'+self.getStr(item["image"])
                  else:
                     phImage = "http://player.dancetrippin.tv/media/static/img/system/default_video.png"
                  #printDBG( 'Host listsItems phImage: '+phImage )
                  phUrl = self.MAIN_URL+'/video/'+self.getStr(item["slug"])+'/'
                  #printDBG( 'Host listsItems phUrl: '+phUrl )      
                  desc = '['+self.getStr(item["venue"])+']['+self.getStr(item["dj"])+']['+self.getStr(item["location"])+']['+self.getStr(item["party"])+']['+self.getStr(item["description"])
                  desc = clean_html(desc.decode("utf-8")).encode("utf-8")
                  valTab.append(CDisplayListItem(self.getStr(item["number"])+' '+self.getStr(item["title"]),desc,CDisplayListItem.TYPE_VIDEO, [CUrlItem('HIGH', phUrl+'?q=hd', 1),CUrlItem('MEDIUM', phUrl+'?q=sd', 1)], 0, phImage, None)) 
           printDBG( 'Host listsItems end' )
           return valTab

        return valTab
Esempio n. 38
0
    def getChannelsList(self):
        printDBG("SatLiveApi.getChannelsList")
        
        # login
        premium  = config.plugins.iptvplayer.satlivetv_premium.value
        login    = config.plugins.iptvplayer.satlivetv_login.value
        password = config.plugins.iptvplayer.satlivetv_password.value
        if premium:        
            if self.doLogin(login, password):
                self.loggedIn = True
                self.http_params.update({'save_cookie': True, 'load_cookie': True, 'cookiefile': self.COOKIE_FILE})
            else:
                self.sessionEx.open(MessageBox, _('Problem z zalogowanie użytkownika "%s. Sprawdź dane do logowania w konfiguracji hosta."') % login, type = MessageBox.TYPE_INFO, timeout = 10 )

        # get channels
        channelsList = []
        sts, data = self.cm.getPage(SatLiveApi.LIST_URL, self.http_params)
        if not sts:
            return []
        
        data = self.cm.ph.getDataBeetwenMarkers(data, '<div class="tab-pane active" id="live">', '<div class="tab-pane" id="all">', False)[1]
        data = data.split('</li>')
        for item in data:
            tmp = self.cm.ph.getSearchGroups(item, '<h4><a href="([^"]+?)">([^<]+?)</a></h4>', 2)
            if '' != tmp[0]:
                params = {}
                params['url']   = SatLiveApi.MAINURL + tmp[0]
                params['title'] = tmp[1]
                icon = self.cm.ph.getSearchGroups(item, '<img class="" src="([^"]+?)"')[0]
                if '' != icon:
                    params['icon']  = SatLiveApi.MAINURL + icon
                params['desc']      = self.cm.ph.removeDoubles(clean_html(item.replace('>', '> ')).replace('\t', ' '), ' ')
                channelsList.append(params)
        if True:
                                                                                                                                                                                                                                                                                        num = 1
                                                                                                                                                                                                                                                                                        m = 'eyI1NzkiOiAiVFZQIDEiLCAiNjA0IjogIlBvbHNhdCBTcG9ydCIsICI2MTgiOiAiUG9sc2F0IFNwb3J0IiwgIjU3MiI6ICJUQ00iLCAiNjA2IjogIlBvbHNhdCBTcG9ydCBFeHRyYSIsICI2MDAiOiAiQ2FuYWwrIFNwb3J0IiwgIjYwMiI6ICJQb2xzYXQiLCAiNDY5IjogIkhCTyBbSERdIiwgIjEyMCI6ICJBWE4gV2hpdGUiLCAiOTgiOiAiTmF0R2VvIiwgIjEyMiI6ICJOYXRHZW8gV2lsZCIsICI5MyI6ICJIQk8iLCAiOTQiOiAiSEJPIDIiLCAiOTciOiAiQ2luZW1heCAyIiwgIjU5MSI6ICJDYW5hbCsgW0hEXSIsICI1OTAiOiAiTWluaU1pbmkiLCAiNTkzIjogIkNhbmFsKyBGaWxtIiwgIjU5MiI6ICJDYW5hbCsiLCAiNjAxIjogIlBvbHNhdCBbSERdIiwgIjU5NCI6ICJBbGVLaW5vKyIsICI1OTciOiAiQ2FuYWwrIFNlcmlhbGUiLCAiNTk2IjogIlRlbGVUb29uIiwgIjU5OSI6ICJDYW5hbCsgRmFtaWx5IiwgIjU5OCI6ICJDYW5hbCsiLCAiMTE0IjogIkRpc2NvdmVyeSBTY2llbmNlIiwgIjExNyI6ICJEaXNuZXkgSnVuaW9yIiwgIjExMCI6ICJEaXNuZXkgWEQiLCAiMTEyIjogIkZpbG1ib3giLCAiMTE5IjogIkZPWCIsICIxMTgiOiAiVHJhdmVsIENoYW5uZWwiLCAiNTI4IjogIlR1cmJvIFh0cmEiLCAiNTg3IjogIm5TcG9ydCIsICI1ODQiOiAiVFZQIFNlcmlhbGUiLCAiNTg1IjogIlRWUCBTcG9ydCIsICI1ODIiOiAiVFZQIDIgW0hEXSIsICI1ODMiOiAiVFZQIEluZm8iLCAiNTgwIjogIlRWUCAxIFtIRF0iLCAiNTgxIjogIlRWUCAyIiwgIjYxMiI6ICJVbmtub3duIiwgIjYxMyI6ICJVbmtub3duIiwgIjYxMCI6ICJVbmtub3duIiwgIjYxMSI6ICJUVk4gMjQiLCAiNTg4IjogIm5TcG9ydCBbSERdIiwgIjU4OSI6ICJDYW5hbCsgU3BvcnQgW0hEXSIsICIxMDgiOiAiRGlzY292ZXJ5IGxpZmUiLCAiMTA5IjogIkFYTiIsICIxMDIiOiAiRXVyb3Nwb3J0IDIiLCAiMTAxIjogIkV1cm9zcG9ydCIsICIxMDYiOiAiSEJPIENvbWVkeSIsICIxMDciOiAiS2lubyBQb2xza2EiLCAiMTA0IjogIlRMQyIsICI0NzAiOiAiRGlzY292ZXJ5IFtIRF0iLCAiNDcxIjogIk5hdEdlbyBbSERdIiwgIjQ3NiI6ICJCQkMgZWFydGgiLCAiNDc0IjogIkRpc2NvdmVyeSIsICI0NzgiOiAiVmlhc2F0IE5hdHVyZSIsICI0NzkiOiAiVmlhc2F0IEhpc3RvcnkiLCAiNjE2IjogIlBvbHNhdCBIRCIsICI2MTciOiAiUG9sc2F0IiwgIjYxOSI6ICJQb2xzYXQgU3BvcnQgRXh0cmEifQ=='
                                                                                                                                                                                                                                                                                        try: m = byteify(json.loads(base64.b64decode(m)))
                                                                                                                                                                                                                                                                                        except: m = {}
                                                                                                                                                                                                                                                                                        for a in base64.b64decode('OTMsOTQsOTcsOTgsMTAxLDEwMiwxMDQsMTA2LDEwOSwxMTAsMTEyLDExNCwxMTcsMTE4LDExOSwxMjAsMTIyLDQ2OSw0NzAsNDcxLDQ3NCw0NzYsNDc4LDQ3OSw1MjgsNTcxLDU3Miw1NzksNTgwLDU4MSw1ODIsNTgzLDU4NCw1ODUsNTg3LDU4OCw1ODksNTkwLDU5MSw1OTIsNTkzLDU5NCw1OTUsNTk2LDU5Nyw1OTgsNTk5LDYwMCw2MTAsNjExLDYxMiw2MTMsNjE2LDYxNyw2MTgsNjE5').split(','):
                                                                                                                                                                                                                                                                                            channelsList.append({'title':'Test %s' % m.get(a, ''), 'url':SatLiveApi.MAINURL+'/id/%s/' % a, 'icon':'http://web-live.tv/uploads/transmissions/Transmission/live/%s.jpg?%s' % (a, time.time()), 'desc':''})
                                                                                                                                                                                                                                                                                            num += 1
        return channelsList
Esempio n. 39
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
Esempio n. 40
0
 def _cleanHtmlStr(self, str):
     str = self.cm.ph.replaceHtmlTags(str, ' ').replace('\n', ' ')
     return clean_html(
         self.cm.ph.removeDoubles(str, ' ').replace(' )', ')').strip())
 def _getStr(self, v, default=''):
     return clean_html(self._encodeStr(v, default))
Esempio n. 42
0
 def getLastApiError(self):
     self.lastApiError['message'] = clean_html(self._getStr(self.lastApiError['message'], ''))
     return self.lastApiError
Esempio n. 43
0
 def _cleanHtmlStr(self, str):
     str = self.cm.ph.replaceHtmlTags(str, " ").replace("\n", " ")
     return clean_html(self.cm.ph.removeDoubles(str, " ").replace(" )", ")").strip())
 def _cleanHtmlStr(self, str):
     str = str.replace('<', ' <').replace('\n', ' ').replace('\r', ' ').replace('\t', ' ')
     return self.cm.ph.removeDoubles(clean_html(str), ' ').strip()
 def getLastApiError(self):
     self.lastApiError['message'] = clean_html(
         self._getStr(self.lastApiError['message'], ''))
     return self.lastApiError
 def cleanHtmlStr(str):
     str = str.replace('<', ' <').replace('\n', ' ').replace('\r', ' ').replace('\t', ' ')
     return CParsingHelper.removeDoubles(clean_html(str), ' ').strip()
Esempio n. 47
0
 def _cleanHtmlStr(self, str):
         str = self.cm.ph.replaceHtmlTags(str, ' ').replace('\n', ' ')
         return clean_html(self.cm.ph.removeDoubles(str, ' ').replace(' )', ')').strip())
    def parseListBase(self, data, type='video'):
        printDBG("parseListBase----------------")
        urlPatterns = { 'video'    :    ['video'   , 'href="[ ]*?(/watch\?v=[^"]+?)"'            , ''], 
                        'channel'  :    ['category', 'href="(/[^"]+?)"'                     , ''],
                        'playlist' :    ['category', 'list=([^"]+?)"'                       , '/playlist?list='],
                        'movie'    :    ['video'   , 'data-context-item-id="([^"]+?)"'      , '/watch?v='],
                        'live'     :    ['video'   , 'href="(/watch\?v=[^"]+?)"'            , ''],
                        'tray'     :    ['video'   , 'data-video-id="([^"]+?)"'             , '/watch?v='], }
        currList = []
        for i in range(len(data)):
            #printDBG("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
            # get requaired params
            url   = urlPatterns[type][2] + self.getAttributes(urlPatterns[type][1], data[i])
            
            # get title
            title = '' #self.getAttributes('title="([^"]+?)"', data[i])
            if '' == title: title = self.getAttributes('data-context-item-title="([^"]+?)"', data[i])
            if '' == title: title = self.getAttributes('data-video-title="([^"]+?)"', data[i])
            if '' == title: sts,title = CParsingHelper.getDataBeetwenMarkers(data[i], '<h3 class="yt-lockup-title">', '</h3>', False) 
            if '' == title: sts,title = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('<span [^>]*?class="title[^>]*?>'), re.compile('</span>'), False) 
            if '' == title: sts,title = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('class="pl-video-title-link[^>]*?>'), re.compile('<'), False)
            
            if '' == title:
                titleMarker = self.cm.ph.getSearchGroups(data[i], '(<[^">]+?"yt-lockup-title[^"]*?"[^>]*?>)')[0]
                if '' != titleMarker:
                    tidx = titleMarker.find(' ')
                    if tidx > 0:
                        tmarker = titleMarker[1:tidx]
                        title = self.cm.ph.getDataBeetwenMarkers(data[i],  titleMarker, '</%s>' % tmarker)[1]
            
            if '' != title: title = CParsingHelper.removeDoubles(remove_html_markup(title, ' '), ' ')
                
            img   = self.getAttributes('data-thumb="([^"]+?\.jpg)"', data[i])
            if '' == img:  img = self.getAttributes('src="([^"]+?\.jpg)"', data[i])
            time  = self.getAttributes('data-context-item-time="([^"]+?)"', data[i])
            if '' == time: time  = self.getAttributes('class="video-time">([^<]+?)</span>', data[i])
            if '' == time: sts, time = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('pl-video-time"[^>]*?>'), re.compile('<'), False)
            if '' == time: sts, time = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('timestamp"[^>]*?>'), re.compile('<'), False)
            time = time.strip()
            # desc
            sts,desc  = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('class="video-description[^>]+?>'), re.compile('</p>'), False)
            if '' == desc: sts,desc = CParsingHelper.getDataBeetwenReMarkers(data[i], re.compile('class="yt-lockup-description[^>]+?>'), re.compile('</div>'), False)
            desc = CParsingHelper.removeDoubles(remove_html_markup(desc, ' '), ' ')
            
            urlTmp = url.split(';')
            if len(urlTmp) > 0: url = urlTmp[0]
            if type == 'video': url = url.split('&')[0] 
                
            # printDBG('url   [%s] ' % url)
            # printDBG('title [%s] ' % title)
            # printDBG('img   [%s] ' % img)
            # printDBG('time  [%s] ' % time)
            # printDBG('desc  [%s] ' % desc)
            if title != '' and url != '' and img != '':
                correctUrlTab = [url, img]
                for i in range(len(correctUrlTab)):
                    if not correctUrlTab[i].startswith('http:') and not correctUrlTab[i].startswith('https:'):
                        if correctUrlTab[i].startswith("//"):
                            correctUrlTab[i] = 'http:' + correctUrlTab[i]
                        else:
                            correctUrlTab[i] = 'http://www.youtube.com' + correctUrlTab[i]
                    else:
                        if correctUrlTab[i].startswith('https:'):
                            correctUrlTab[i] = "http:" + correctUrlTab[i][6:]

                title = clean_html(title.decode("utf-8")).encode("utf-8")
                desc  = clean_html(desc.decode("utf-8")).encode("utf-8")
                params = {'type': urlPatterns[type][0], 'category': type, 'title': title, 'url': correctUrlTab[0], 'icon': correctUrlTab[1], 'time': time, 'desc': desc}
                currList.append(params)

        return currList
Esempio n. 49
0
def decodeHtml(text):
    return clean_html(text.decode("utf-8", 'ignore')).encode("utf-8")
Esempio n. 50
0
    def listsItems(self, Index, url, name=''):
        printDBG('Host listsItems begin')
        printDBG('Host listsItems url[%r] ' % url)
        valTab = []
        if name == 'main-menu':
            printDBG('Host listsItems begin name=' + name)
            valTab.append(
                CDisplayListItem(
                    'Episodes', 'http://player.dancetrippin.tv/#dj',
                    CDisplayListItem.TYPE_CATEGORY,
                    ['http://player.dancetrippin.tv/video/list/dj/'],
                    'episodes', '', None))
            valTab.append(
                CDisplayListItem(
                    'Sol sessions', 'http://player.dancetrippin.tv/#sol',
                    CDisplayListItem.TYPE_CATEGORY,
                    ['http://player.dancetrippin.tv/video/list/sol/'],
                    'episodes', '', None))
            valTab.append(
                CDisplayListItem(
                    'Other videos', 'http://player.dancetrippin.tv/#other',
                    CDisplayListItem.TYPE_CATEGORY,
                    ['http://player.dancetrippin.tv/video/list/other/'],
                    'episodes', '', None))
            valTab.append(
                CDisplayListItem(
                    'Ibiza Global Radio', 'http://player.dancetrippin.tv/#igr',
                    CDisplayListItem.TYPE_CATEGORY,
                    ['http://player.dancetrippin.tv/video/list/igr/'],
                    'episodes', '', None))
            return valTab

        # ########## #
        if 'episodes' == name:
            printDBG('Host listsItems begin name=' + name)
            self.MAIN_URL = 'http://player.dancetrippin.tv'
            try:
                data = self.cm.getURLRequestData({
                    'url': url,
                    'use_host': False,
                    'use_cookie': False,
                    'use_post': False,
                    'return_data': True
                })
            except:
                printExc('Host listsItems query error url[%r]' % url)
                return valTab
            #printDBG( 'Host listsItems data: '+data )
            result = simplejson.loads(data)
            if result:
                for item in result:
                    '''
                  printDBG( 'Host listsItems number: '+str(item["number"]) )
                  printDBG( 'Host listsItems title: '+str(item["title"]) )
                  printDBG( 'Host listsItems venue: '+str(item["venue"]) )
                  printDBG( 'Host listsItems location: '+str(item["location"]) )
                  printDBG( 'Host listsItems party: '+str(item["party"]) )
                  printDBG( 'Host listsItems description: '+str(item["description"]) )
                  printDBG( 'Host listsItems dj: '+str(item["dj"]) )
                  '''
                    if self.getStr(item["image"]) <> "":
                        phImage = 'http://www.dancetrippin.tv/media/' + self.getStr(
                            item["image"])
                    else:
                        phImage = "http://player.dancetrippin.tv/media/static/img/system/default_video.png"
                    #printDBG( 'Host listsItems phImage: '+phImage )
                    phUrl = self.MAIN_URL + '/video/' + self.getStr(
                        item["slug"]) + '/'
                    #printDBG( 'Host listsItems phUrl: '+phUrl )
                    desc = '[' + self.getStr(
                        item["venue"]) + '][' + self.getStr(
                            item["dj"]) + '][' + self.getStr(
                                item["location"]) + '][' + self.getStr(
                                    item["party"]) + '][' + self.getStr(
                                        item["description"])
                    desc = clean_html(desc.decode("utf-8")).encode("utf-8")
                    valTab.append(
                        CDisplayListItem(
                            self.getStr(item["number"]) + ' ' +
                            self.getStr(item["title"]), desc,
                            CDisplayListItem.TYPE_VIDEO, [
                                CUrlItem('HIGH', phUrl + '?q=hd', 1),
                                CUrlItem('MEDIUM', phUrl + '?q=sd', 1)
                            ], 0, phImage, None))
            printDBG('Host listsItems end')
            return valTab

        return valTab
Esempio n. 51
0
 def _getJItemStr(self, item, key, default=''):
     v = item.get(key, None)
     if None == v:
         return default
     return clean_html(u'%s' % v).encode('utf-8')
Esempio n. 52
0
 def _cleanHtmlStr(self, str):
     str = str.replace('<',
                       ' <').replace('\n',
                                     ' ').replace('\r',
                                                  ' ').replace('\t', ' ')
     return self.cm.ph.removeDoubles(clean_html(str), ' ').strip()
def decodeHtml(text):
	return  clean_html(text.decode("utf-8", 'ignore')).encode("utf-8")
 def getLinksForVideo(self, cItem):
     printDBG("StreamComplet.getLinksForVideo [%s]" % cItem)
     urlTab = []
     
     params = dict(self.defaultParams)
     header = dict(self.HEADER)
     header['Referer'] = cItem['url']
     params['header'] = header
     
     sts, data = self.cm.getPage(cItem['url'], params)
     if not sts: return []
     
     if 0:
         adminData = self.cm.ph.getDataBeetwenMarkers(data, 'jQuery.ajax({', '});', False)[1]
         adminUrl  = self.cm.ph.getSearchGroups(adminData, "url:'([^']+?)'")[0] 
         adminUrl += '?' + self.cm.ph.getSearchGroups(adminData, "data:'([^']+?)'")[0] 
         
         header = dict(self.HEADER)
         header['X-Requested-With'] = 'XMLHttpRequest'
         header['Referer'] = cItem['url']
         paramsAdmin = dict(self.defaultParams)
         paramsAdmin['header'] = header
         sts, adminData = self.cm.getPage(adminUrl, paramsAdmin)
         printDBG('>>>>>>>>>>>>>> adminData[%s]' % adminData)
         
         projekktor_controlbar={"muted":false,"volume":0.5};
     
     mainPlayerUrl = self.cm.ph.getSearchGroups(data, 'src="(http[^"]+?player[^"]+?)"')[0]
     #printDBG(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> playerUrl[%s]" % playerUrl)
     
     movieId = self.cm.ph.getSearchGroups(mainPlayerUrl+'/', 'f=([0-9]+?)/')[0]
     
     if movieId != '':
         playerUrl = 'http://ok.ru/video/' + movieId
         tmpParams = copy.deepcopy(params) 
         tmpParams['header']['User-Agent'] = self.USER_AGENT2
         sts, data = self.cm.getPage(playerUrl, tmpParams)
         if not sts: return []
         try:
             tmp = clean_html(re.search(r'data-options=(?P<quote>["\'])(?P<player>{.+?%s.+?})(?P=quote)' % movieId, data).group('player'))
             tmp = byteify( json.loads( tmp ) )
             tmp = byteify( json.loads( tmp['flashvars']['metadata'] ) )
             for item in tmp['videos']:
                 videoUrl = self.up.decorateUrl(item['url'], {'User-Agent':self.USER_AGENT2})
                 urlTab.append({'name':item['name'], 'url':videoUrl, 'need_resolve':0})
         except:
             printExc()
         playerUrl = 'http://m.ok.ru/video/' + movieId
         tmpParams['header']['User-Agent'] = self.USER_AGENT
         sts, data = self.cm.getPage(playerUrl, tmpParams)
         if not sts: return []
         videoUrl = self.cm.ph.getSearchGroups(data, 'href="(http[^"]+?moviePlaybackRedirect[^"]+?)"')[0].replace('&amp;', '&')
         if videoUrl.startswith('http'):
             videoUrl = self.up.decorateUrl(videoUrl, {'User-Agent':self.USER_AGENT})
             urlTab.insert(0, {'name':'default', 'url':videoUrl, 'need_resolve':0})
             return urlTab
     
     playerUrl = mainPlayerUrl.replace('&#038;', '&')
     sts, data = self.cm.getPage(playerUrl, params)
     if not sts: return []
     
     printDBG(data)
     
     videoUrl = self.cm.ph.getSearchGroups(data, """src:[^'^"]+?['"]([^'^"]+?)['"]""")[0]
     if videoUrl != '' and videoUrl != 'vimplevideo.mp4':        
         videoUrl = 'http://media.vimple.me/playeryw.swf/' + videoUrl
         videoUrl = self.up.decorateUrl(videoUrl, {'User-Agent':self.USER_AGENT})
         return [{'name':'vimeo.me', 'url':videoUrl, 'need_resolve':0}]
     
     newPlayerUrl = self.cm.ph.getSearchGroups(data, '''["'](http[^"^']+?embed_player.php[^"^']+?)["']''')[0]
     if 'http%3A%2F%2F' in newPlayerUrl:
         newPlayerUrl = urllib.unquote(newPlayerUrl)
     
         
     for item in [cItem['url'], playerUrl, newPlayerUrl]:
         url = self.up.decorateUrl(item, {'Referer':cItem['url']})
         tmp = self.up.getVideoLinkExt(url)
         for item in tmp:
             item['need_resolve'] = 0
             urlTab.append(item)
     return urlTab
Esempio n. 55
0
 def getLocal(self, id, default):
     message = self._getStr(self.locales.get(id, default))
     if len(message): return clean_html(message)
     else: return default