⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chn_nos.py

📁 XOT: XBMC Online TV Framework
💻 PY
📖 第 1 页 / 共 2 页
字号:
            return items

    #============================================================================= 
    def ProcessNormalPage(self, data):
        logFile.info('starting ProcessNormalPage')
        items = []
        title = common.DoRegexFindAll('<b class="btitle">([^<]+)</b>', data)
        title = title[-1]
            
        results = common.DoRegexFindAll('<td height="40">(\d+-\d+-\d+)</td>\s+[^/]+/index.php/aflevering(\?aflID=\d+&amp;md5=[0-9a-f]+)', data)
        for result in results:
            tmp = common.clistItem(title, self.playerUrl + common.StripAmp(result[1]))
            tmp.date = result[0]
            tmp.type = 'video'
            tmp.icon = self.icon
            items.append(tmp)
        return items    
    
    #============================================================================= 
    def ProcessExtendedPages(self, data):
        try:
            logFile.info('starting ProcessExtendedPages')
            parsePB = xbmcgui.DialogProgress()
            parsePB.create('Opening Episode', 'Loading Page')
            items = []
            
            title = common.DoRegexFindAll('<b class="btitle">([^<]+)</b>', data)
            title = title[-1]
                    
            # load extended page
            percentage = 10
            parsePB.update(percentage,'Page Present. Determining number of extended pages.')
            
            # determine number of extpages
            numberOfPages = common.DoRegexFindAll('href="/index.php/serie2\?serID=\d+&amp;pgNum=(\d+)&amp;md5=', data)
            
            if numberOfPages == []:
                numberOfPages = 1
            else:
                numberOfPages = numberOfPages[-1]
            
            percentagePerPage = 90/int(numberOfPages)
            logFile.info('extra pages %s', numberOfPages)
            
            for page in range(1,int(numberOfPages)+1):
                logFile.debug("==== Starting page %s", page)
                # load new data if page is not first extended page
                if page > 1:
                    url = common.DoRegexFindAll('<a[^/]*(/index.php/serie2\?serID=\d+&amp;pgNum=\d+&amp;md5=[0-9a-f]+)"[^>]*>' + str(page) + '</a>',data)
                    pageData = uriHandler.Open(self.baseUrl + common.StripAmp(url[0]), pb=False)
                else:
                    pageData = data
                
                #logFile.debug("Pagedata: %s", pageData)
                # parse data
                percentage = percentage + percentagePerPage
                results = common.DoRegexFindAll('<a href="http://player.omroep.nl/(\?aflID=\d+&amp;md5=[a-f0-9]+)"[^>]*><[^>]+alt="bekijk uitzending: ([^(]+) \(([0-9-]*)\)" /></a>', pageData)
                for result in results:
                    parsePB.update(percentage, 'Loading '+ title, 'Parsing page ' + str(page) + ' of ' + str(numberOfPages) ,'Adding item ' + result[1] + ' from ' + result[2])
                    tmp = common.clistItem(result[1], self.playerUrl + common.StripAmp(result[0]))
                    tmp.date = result[2]
                    if tmp.date == "":
                        tmp.date = "Geen Datum"
                    tmp.type = 'video'
                    tmp.icon = self.icon
                    items.append(tmp)
                    
                # Check for cancellations
                if parsePB.iscanceled():
                    logFile.debug("Cancelling Extended page parsing")
                    break

            parsePB.close()
            return items
        except:
            logFile.error("Error parsing extended pages", exc_info=True)
            parsePB.close()
            return items
    
    #============================================================================= 
    def UpdateVideoItem(self, item):
        """
        Accepts an arraylist of results. It returns an item. 
        """
        if item.type == 'folder':
            return item
#===============================================================================
#        should be made more compact in 1 single regex
#===============================================================================
        
        _url = item.url
        logFile.info('starting UpdateVideoItem for '+ item.url)
        
        _data = uriHandler.Open(_url, pb=False)
        
        #get title
        _title = common.DoRegexFindAll('<tite>(.*)</tite>', _data)
        _title = common.ConvertHTMLEntities(_title[0])
        
        #get episode ID
        _aflevering = common.DoRegexFindAll('<aflevering id=\'([^\']*)', _data)
        
        #now create the item
        #item = common.clistItem(_title, url, type="video", parent=self)
        #item.icon = self.icon
        
        # now update item:
        item.name = _title
        item.url = _url
        item.type = "video"
        
        #get data
        _datum = common.DoRegexFindAll('<begi>(\d\d-\d\d-\d\d\d\d) ', _data)
        if _datum == []:
            _datum.append('Geen Datum')
        item.date = _datum[0]
        
        #description
        _description = common.DoRegexFindAll('<gids_tekst>(.*)</gids_tekst>', _data)
        if _description == []:
            _info = "Geen Omschrijving"
        else:
            _info = _description[0]
        item.description = common.ConvertHTMLEntities(_info)
        
        # get image
        _image = common.DoRegexFindAll('<radio_afbeelding>(http://.*/)([^/]*)</radio_afbeelding>', _data)
        if _image == []: #no image
            item.thumb = self.noImage
        else: #save image
            item.thumb = self.CacheThumb(common.ConvertHTMLEntities(str(_image[0][0]) + str(_image[0][1])))
                        
        # get the mediaurl
        item.mediaurl = common.DoRegexFindAll('<stream[^>]+compressie_kwaliteit=.bb.[^>]+compressie_formaat=.wmv.[^>]*>([^<]*)</stream>', _data)[0]

        # parse the asx
        _data = uriHandler.Open(item.mediaurl, pb=False)
        item.mediaurl = common.DoRegexFindAll('<Ref href[^"]+"([^"]+)"', _data)[0]
        
        # finish and return
        logFile.info('finishing UpdateVideoItem for '+ item.url + '. Media URL ='+ item.mediaurl)
        
        item.complete = True
        return item
    
    #==============================================================================
    # ContextMenu functions
    #==============================================================================
    def CtMnPlayMplayer(self, selectedIndex):
        item = self.listItems[selectedIndex]
        if not item.complete:
            item = self.UpdateVideoItem(item)
            # check if the list has not changed during upate:
            #if _item.guid == self.listItems[_position].guid:
            if item.Equals(self.listItems[self.getCurrentListPosition()]):
                logFile.info("Updating item (GUIDs match)")                
                self.listItems[self.getCurrentListPosition()] = item
            else:
                logFile.error("Aborting Update because of GUID mismatch")
        logFile.info("Starting playback of %s (mediaurl=%s)", item.name, item.mediaurl)
        self.ShowData(item)    
        self.PlayVideoItem(item, "mplayer")
    
    def CtMnPlayDVDPlayer(self, selectedIndex):
        item = self.listItems[selectedIndex]
        if not item.complete:
            item = self.UpdateVideoItem(item)
            # check if the list has not changed during upate:
            #if _item.guid == self.listItems[_position].guid:
            if item.Equals(self.listItems[self.getCurrentListPosition()]):
                logFile.info("Updating item (GUIDs match)")                
                self.listItems[self.getCurrentListPosition()] = item
            else:
                logFile.error("Aborting Update because of GUID mismatch")
        logFile.info("Starting playback of %s (mediaurl=%s)", item.name, item.mediaurl)
        self.ShowData(item)  
        self.PlayVideoItem(item,"dvdplayer")          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -