Esempio n. 1
0
    def getLastTvShow(self, streamItem=False):
        """
            Method to get all last tv show
            @return a list of StreamItem
        """
        href = '/'
        # ___ Initialize the list to return
        elementList = []

        # ___ Get the response
        response = self.openPage(href)
        if response and response.getcode() == 200:
            content = response.read()

            linksPattern = re.compile(
                '(.*)(window\.__NUXT__=)(.*?)(;</script>)(.*)', re.DOTALL)
            match = linksPattern.match(content)
            if match is not None:
                jsonEl = json.loads(match.group(3))

                for movie in jsonEl['data'][0]['nouveaux']['series']:

                    title = movie['name']

                    href = '/series/' + strUtil.remove_special_char(
                        title).replace(' ', '-').lower() + '-' + str(
                            movie['customID']) + '.html'
                    year = movie['releaseYear']
                    quality = movie['quality']
                    langClass = movie['language']
                    lang = None
                    subtitle = None
                    if langClass == 'vf':
                        lang = 'FR'
                    else:
                        lang = 'VO'
                        subtitle = 'FR'

                    title = strUtil.cleanTitle(title)
                    title = strUtil.deleteAccent(title)
                    self.__LOGGER__.log("Clean title: " + str(title),
                                        xbmc.LOGDEBUG)

                    # __ Create the element
                    element = StreamItem(title)
                    element.setHref(href)
                    element.setYear(year)
                    element.setQuality(quality)
                    element.setLang(lang)
                    if subtitle is not None:
                        element.setSubTitle(subtitle)
                    element.setSourceId(self.ID)
                    element.setId(str(movie['customID']))
                    element.setIconImage(movie['poster'])
                    element.setTvShowName(title)
                    element.setType(StreamItem.TYPE_TVSHOW)
                    element.setAction(StreamItem.ACTION_DISPLAY_SEASONS)
                    elementList.append(element)

        return elementList
Esempio n. 2
0
    def getMovieList(self, streamItem=False):
        """
            Method to get a list of movie
            @return a list of StreamItem        
        """
        href = '/categories/films/page/1'
        page = 1
        if streamItem and streamItem.isPage():
            page = streamItem.getPage()
            href = streamItem.getHref()

        # ___ Initialize the list to return
        elementList = []

        # ___ Get the response
        response = self.openPage(href)
        if response and response.getcode() == 200:
            content = response.read()

            linksPattern = re.compile(
                '(.*)(window\.__NUXT__=)(.*?)(;</script>)(.*)', re.DOTALL)
            match = linksPattern.match(content)
            if match is not None:
                jsonEl = json.loads(match.group(3))

                for movie in jsonEl['data'][0]['elements']:

                    href = '/films/' + strUtil.remove_special_char(
                        movie['name']).replace(' ', '-').lower() + '-' + str(
                            movie['customID']) + '.html'
                    year = movie['releaseYear']
                    quality = movie['quality']
                    langClass = movie['language']
                    lang = None
                    subtitle = None
                    if langClass == 'vf':
                        lang = 'FR'
                    else:
                        lang = 'VO'
                        subtitle = 'FR'

                    title = strUtil.cleanTitle(movie['name'])
                    title = strUtil.deleteAccent(title)
                    self.__LOGGER__.log("Clean title: " + str(title),
                                        xbmc.LOGDEBUG)

                    # __ Create the element
                    element = StreamItem(title)
                    element.setHref(href)
                    element.setYear(year)
                    element.setQuality(quality)
                    element.setLang(lang)
                    if subtitle is not None:
                        element.setSubTitle(subtitle)
                    element.setAction(StreamItem.ACTION_DISPLAY_LINKS)
                    element.setType(StreamItem.TYPE_MOVIE)
                    element.setSourceId(self.ID)
                    element.setId(str(movie['customID']))
                    element.setIconImage(movie['poster'])
                    elementList.append(element)

                if streamItem:
                    element = streamItem.copy()
                    page = page + 1
                    element.setType(StreamItem.TYPE_PAGE)
                    element.setPage(page)
                    element.setTitle('Page ' + str(element.getPage()))
                    element.setHref('/categories/films/page/' + str(page))
                    elementList.append(element)
                else:
                    page = page + 1
                    element = StreamItem('Page ' + str(element.getPage()))
                    element.setType(StreamItem.TYPE_PAGE)
                    element.setPage(page)
                    element.setTitle('Page ' + str(element.getPage()))
                    element.setAction(StreamItem.ACTION_DISPLAY_TYPE_LIST)
                    element.setSubType(StreamItem.SUBTYPE_LIST)
                    element.setHref('/categories/films/page/' + str(page))
                    elementList.append(element)

        return elementList
Esempio n. 3
0
    def getMovieContent(self, streamItem, page, response):
        """
            Generic method to get movie content
            @param response: the html response
            @param subtype: the subtype for streamItem 
        """
        elementList = []
        if response and response.getcode() == 200:
            content = response.read()
            soup = BeautifulSoup(content)
            if soup is not None:
                movies = soup.find('section', {
                    'class': 'box'
                }).findAll(
                    'div',
                    {'class': 'column is-one-quarter-desktop is-half-mobile'})

                for movie in movies:

                    title = movie.find(
                        'img', {'class': 'image-fix'})['alt'].encode('UTF-8')
                    title = strUtil.unescapeHtml(str(title))

                    self.__LOGGER__.log("Finded title: " + title,
                                        xbmc.LOGDEBUG)
                    href = movie.find('a')['href']
                    year = strUtil.getYearFromTitle(title)
                    quality = movie.find(
                        'div', {
                            'class': re.compile('(media-content)(.*)')
                        }).text.encode('UTF-8')
                    langClass = movie.find('img',
                                           {'class': 'language-image'})['src']
                    lang = None
                    subtitle = None
                    if langClass == '/vf.png':
                        lang = 'FR'
                    else:
                        lang = 'VO'
                        subtitle = 'FR'
                    title = strUtil.cleanTitle(title)
                    self.__LOGGER__.log("Clean title: " + str(title),
                                        xbmc.LOGDEBUG)

                    # __ Create the element
                    element = StreamItem(title)
                    element.setHref(href)
                    element.setYear(year)
                    element.setQuality(quality)
                    element.setLang(lang)
                    element.setSubTitle(subtitle)
                    element.setAction(StreamItem.ACTION_DISPLAY_LINKS)
                    element.setType(StreamItem.TYPE_MOVIE)
                    element.setSourceId(self.ID)
                    element.setIconImage(
                        movie.find('img', {'class': 'image-fix'})['src'])

                    # __ Add the element to the list
                    elementList.append(element)

            nextPage = StreamItem(constant.__addon__.getLocalizedString(70010))
            nextPage.setIconImage(icons.getIcon('nextpage'))
            nextPage.setType(StreamItem.TYPE_MOVIE)
            nextPage.setAction(StreamItem.ACTION_DISPLAY_TYPE_LIST)
            nextPage.setSubType(streamItem.getSubType())
            nextPage.setPage(int(page) + 1)
            elementList.append(nextPage)

        return elementList