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

📄 chn_nossearch.py

📁 XOT: XBMC Online TV Framework
💻 PY
字号:
import xbmc, xbmcgui
import sys, re, urllib, os.path, math
#===============================================================================
# Make global object available
#===============================================================================
import common
import config
import controls
import contextmenu

sys.path.append(os.path.join(config.rootDir, "channels", "nos"))                    
import chn_nos

logFile = sys.modules['__main__'].globalLogFile
uriHandler = sys.modules['__main__'].globalUriHandler
#===============================================================================
# register the channels
#===============================================================================
if (sys.modules.has_key('progwindow')):
    register = sys.modules['progwindow']
elif (sys.modules.has_key('plugin')):
    register = sys.modules['plugin']
#register.channelButtonRegister.append(104)
register.channelRegister.append('chn_nossearch.Channel("uzg-channelwindow.xml", config.rootDir, config.skinFolder, channelCode="nedsearch")')

#===============================================================================
# main Channel Class
#===============================================================================
class Channel(chn_nos.Channel):
	#===============================================================================
    # define class variables
    #===============================================================================
    def InitialiseVariables(self):
        """
        Used for the initialisation of user defined parameters. All should be 
        present, but can be adjusted
        """
        # call base function first to ensure all variables are there
        chn_nos.Channel.InitialiseVariables(self)
        
        self.mainListUri = ""
        self.icon = "nosicon.png"
        self.iconLarge = "noslarge.png"
        self.noImage = "nosimage.png"
        self.channelName = "Nederland Search"
        self.channelCode = "nedsearch"
        self.channelDescription = "Zoeken door alle uitzendingen van de publieke zenders"
        self.moduleName = "chn_nossearch.py"
        self.sortOrder = 4
        
        return True
	#============================================================================== 
    def ParseMainList(self):
        """ 
        accepts an url and returns an list with items of type CListItem
        Items have a name and url. 
        """

        _items = []
        
        #check for cookie:
        logFile.info("Checking for NOS cookies.")
        if uriHandler.CookieCheck('UGSES') and uriHandler.CookieCheck('CheckUGCookie'):# and uriHandler.CookieCheck('quuid'):
            logFile.info("Cookies found. Continuing")
        else:
            logFile.info("No cookies found. Opening main site")
            temp = uriHandler.Open(self.baseUrl)
    
        _keyboard = xbmc.Keyboard('')
        _keyboard.doModal()
        if (_keyboard.isConfirmed()):
            _needle = _keyboard.getText()
            if len(_needle)<4:
                _dialog = xbmcgui.Dialog()
                _dialog.ok("Uitzendinggemist","Geen geldig zoekopdracht. Een zoekopdracht\nheeft minimaal 4 characters.")
                return
            #get only first one
            logFile.info("Searching NOS for needle: "+_needle)
            _data = uriHandler.Open("http://www.uitzendinggemist.nl/index.php/search",params="searchitem=&qs_uitzending="+_needle+"&titel=&dag=&net_zender=&omroep=&genre=")
            
            _resultSet = common.DoRegexFindAll("href=\"/index.php/search\?(serID=\d+&amp;md5=[0-9a-f]+)&sq=[^\"]+\">([^<]*)<span class=\"\highlight\">([^<]+)</span>([^<]*)",_data)
        
            for _item in _resultSet: 
                _tmp = common.clistItem(_item[1]+_item[2]+_item[3], self.baseUrl + "/index.php/serie?" + common.StripAmp(_item[0]))
                _tmp.icon = self.icon
                _items.append(_tmp)
        
            #because lists are downloaded according to date (else some programs will be missing), a sort on name is performed.
            _items.sort(lambda x, y: cmp(x.name,y.name))
    
        else:
            logFile.info('user canceled search')
                    
        return _items

⌨️ 快捷键说明

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