📄 chn_nossearch.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+&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 + -