示例#1
0
    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
示例#3
0
    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