def parse_item(self, station, title): item = "" type = station["type"] if type == "link": item = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) item.SetLabel(tools.encodeUTF8(station["text"])) item.SetPath(str(station["URL"])) item.SetProperty("icon", "folder.png") item.SetProperty("type", str(station["type"])) item.SetProperty("title", str(title)) if type == "audio": item = mc.ListItem(mc.ListItem.MEDIA_AUDIO_OTHER) item.SetLabel(tools.encodeUTF8(station["text"])) item.SetPath(str(station["URL"])) item.SetThumbnail(str(station["image"])) item.SetProperty("subtext", tools.encodeUTF8(station["subtext"])) item.SetProperty("icon", "music.png") item.SetProperty("type", str(station["type"])) item.SetProperty("title", str(title)) item.SetProperty("bitrate", str(station.get("bitrate", ""))) item.SetProperty("reliability", str(station.get("reliability", ""))) item.SetReportToServer(False) item.SetAddToHistory(False) return item
def Episode(self, stream_name, stream_id, page, totalpage): url = str(stream_id) + '/afleveringen' data = tools.urlopen(self.app, url, {'cache':3600}) if data.rfind('Programma Video') != -1: parse = '/afleveringen' else: url = str(stream_id) + '/videos' data = tools.urlopen(self.app, url, {'cache':3600}) parse = '/videos' soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES, smartQuotesTo="xml") try: submenu = soup.findAll('div', {'class' : 'subMenu'})[0] pages = submenu.findAll('li') totalpage = len(pages) except: totalpage = 1 if page != 1: i = totalpage - page id = str(pages[i].a.contents[0]) url = str(stream_id) + parse + '/' + id.replace(' ', '-') data = tools.urlopen(self.app, url, {'cache':3600}) soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES, smartQuotesTo="xml") else: try: id = str(pages[totalpage-1].a.contents[0]) except: id = '' if parse == '/afleveringen': episodes = soup.findAll('div', {'class' : 'i iMargin iEpisode iBorder'}) if not episodes: return [] episodelist = [] for item in episodes: body = item.findAll('div', {'class' : 'iBody'}) url = item.findAll('a', {'class' : 'btnSmall'}) if not url or not body: continue if not 'Video' in url[0].prettify(): continue p = body[0].findAll('p') episode = CreateEpisode() episode.name = body[0].h2.string episode.id = self.url_base + url[0]['href'] episode.thumbnails = self.url_base + item.find('img')['src'] episode.date = p[0].string episode.description = id + ' ' + tools.encodeUTF8(p[1].string) episode.page = page episode.totalpage = totalpage episodelist.append(episode) elif parse == '/videos': episodes = soup.findAll('div', {'class' : 'i iGuide iGuideSlider'}) if not episodes: return [] episodelist = [] for item in episodes: body = item.findAll('div', {'class' : 'iBody'}) url = item.findAll('a', {'class' : 'm mMargin'}) if not url or not body: continue p = body[0].findAll('p') episode = CreateEpisode() episode.name = body[0].h2.string episode.id = self.url_base + url[0]['href'] episode.thumbnails = self.url_base + item.find('img')['src'] episode.description = id episode.date = p[0].string episode.page = page episode.totalpage = totalpage episodelist.append(episode) return episodelist
def Episode(self, stream_name, stream_id, page, totalpage): url = str(stream_id) + "/afleveringen" data = tools.urlopen(self.app, url, {"cache": 3600}) if data.rfind("Programma Video") != -1: parse = "/afleveringen" else: url = str(stream_id) + "/videos" data = tools.urlopen(self.app, url, {"cache": 3600}) parse = "/videos" soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES, smartQuotesTo="xml") try: submenu = soup.findAll("div", {"class": "subMenu"})[0] pages = submenu.findAll("li") totalpage = len(pages) except: totalpage = 1 if page != 1: i = totalpage - page id = str(pages[i].a.contents[0]) url = str(stream_id) + parse + "/" + id.replace(" ", "-") data = tools.urlopen(self.app, url, {"cache": 3600}) soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES, smartQuotesTo="xml") else: try: id = str(pages[totalpage - 1].a.contents[0]) except: id = "" if parse == "/afleveringen": episodes = soup.findAll("div", {"class": "i iMargin iEpisode iBorder"}) if not episodes: return [] episodelist = [] for item in episodes: body = item.findAll("div", {"class": "iBody"}) url = item.findAll("a", {"class": "btnSmall"}) if not url or not body: continue if not "Video" in url[0].prettify(): continue p = body[0].findAll("p") episode = CreateEpisode() episode.name = body[0].h2.string episode.id = self.url_base + url[0]["href"] episode.thumbnails = self.url_base + item.find("img")["src"] episode.date = p[0].string episode.description = id + " " + tools.encodeUTF8(p[1].string) episode.page = page episode.totalpage = totalpage episodelist.append(episode) elif parse == "/videos": episodes = soup.findAll("div", {"class": "i iGuide iGuideSlider"}) if not episodes: return [] episodelist = [] for item in episodes: body = item.findAll("div", {"class": "iBody"}) url = item.findAll("a", {"class": "m mMargin"}) if not url or not body: continue p = body[0].findAll("p") episode = CreateEpisode() episode.name = body[0].h2.string episode.id = self.url_base + url[0]["href"] episode.thumbnails = self.url_base + item.find("img")["src"] episode.description = id episode.date = p[0].string episode.page = page episode.totalpage = totalpage episodelist.append(episode) return episodelist