📄 chn_nos.py
字号:
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+&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+&pgNum=(\d+)&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+&pgNum=\d+&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+&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 + -