コード例 #1
0
    def retrieveParser(self, lang):
        parser = None

        if self.ARTE_CATEGORIE == self.PARAM_ARTE_EVENT:
            parser = EventParser(lang, self.CATEGORIES, self.VIDEOS)

        elif self.ARTE_CATEGORIE == self.PARAM_ARTE_BONUS:
            parser = BonusParser(lang, self.CATEGORIES, self.VIDEOS)

        elif self.ARTE_CATEGORIE == self.PARAM_ARTE_PROGRAMMES:
            parser = ProgrammesParser(lang, self.CATEGORIES, self.VIDEOS)

        elif self.ARTE_CATEGORIE == self.PARAM_ARTE_LIVE:
            parser = LiveParser(lang, self.CATEGORIES)

        elif self.ARTE_CATEGORIE == self.PARAM_ARTE_PLUS:
            parser = PlusParser(lang, self.VIDEOS)

        elif self.ARTE_CATEGORIE == self.PARAM_ARTE_SEARCH:
            parser = SearchParser(lang, self.VIDEOS)

        return parser
コード例 #2
0
    def select(self):
        try:
            if len(self.parameters) < 1:
                #initialisation
                self.show_menu()

            elif self.PARAM_ARTE_PLUS in self.parameters.keys():
                #on liste les videos arte+7, une page contenant au max 200 vidéos
                self.ARTE_CATEGORIE = self.PARAM_ARTE_PLUS
                self.PARSER = PlusParser(self.lang, self.VIDEOS)
                self.PARSER.parse(1, 200)
                self.show_videos(self.VIDEOS)

            elif self.PARAM_ARTE_LIVE in self.parameters.keys():
                #on liste les categories arte live
                self.ARTE_CATEGORIE = self.PARAM_ARTE_LIVE
                self.show_categories()

            elif self.PARAM_ARTE_EVENT in self.parameters.keys():
                #on liste les categories arte event
                self.ARTE_CATEGORIE = self.PARAM_ARTE_EVENT
                self.show_categories()

            elif self.PARAM_ARTE_BONUS in self.parameters.keys():
                #on liste les categories arte bonus
                self.ARTE_CATEGORIE = self.PARAM_ARTE_BONUS
                self.show_categories()

            elif self.PARAM_ARTE_PROGRAMMES in self.parameters.keys():
                #on liste les categories arte programmes
                self.ARTE_CATEGORIE = self.PARAM_ARTE_PROGRAMMES
                self.show_categories()

            elif self.PARAM_ARTE_SEARCH in self.parameters.keys():
                keyboard = xbmc.Keyboard('', __language__(30001))
                keyboard.doModal()
                if keyboard.isConfirmed() and keyboard.getText():
                    search = keyboard.getText().replace(" ", "+")
                    self.ARTE_CATEGORIE = self.PARAM_ARTE_SEARCH
                    self.PARSER = SearchParser(self.lang, self.VIDEOS)
                    self.PARSER.parse(1, 200, search)
                    self.show_videos(self.VIDEOS)

            elif self.PARAM_SHOW_CATEGORIE in self.parameters.keys(
            ) and self.PARSER is not None:
                #on liste les videos arte event
                key = self.parameters[self.PARAM_ARTE_CATEGORIE_KEY].replace(
                    'brinbrin', '&')
                value = self.parameters[self.PARAM_ARTE_CATEGORIE_VALUE]

                if isinstance(self.PARSER, LiveParser):
                    self.PARSER.get_videos_list(key, self.VIDEOS)
                else:
                    self.NEXT_PAGE_NUMBER = self.PARSER.parse(
                        value, self.PAGE_NUMBER, self.NB_VIDEOS_PER_PAGE)

                self.show_videos(self.VIDEOS)

            elif self.PARAM_NEXT_PAGE in self.parameters.keys(
            ) and self.PARSER is not None:
                #en cas de passage a la page suivante
                self.PAGE_NUMBER = self.parameters[self.PARAM_NEXT_PAGE_NUMBER]

                value = self.parameters[self.PARAM_ARTE_CATEGORIE_VALUE]
                self.NEXT_PAGE_NUMBER = self.PARSER.parse(
                    value, self.PAGE_NUMBER, self.NB_VIDEOS_PER_PAGE)

                self.show_videos(self.VIDEOS)

            elif self.PARAM_PLAY_VIDEO in self.parameters.keys(
            ) and self.PARSER is not None:
                # On lance la video
                hd = self.retrieveVideoLink(
                    link=self.parameters[self.PARAM_VIDEO_ID])

                if hd is None:
                    xbmc.executebuiltin(
                        "XBMC.Notification(%s,%s)" %
                        (__language__(30300), __language__(30301)))

                else:

                    if isinstance(self.PARSER, LiveParser):
                        hd, downloadParams = self.PARSER.decode_link(hd)

                    item = xbmcgui.ListItem(path=hd)
                    xbmcplugin.setResolvedUrl(handle=int(sys.argv[1]),
                                              succeeded=True,
                                              listitem=item)

            elif self.PARAM_DOWNLOAD_VIDEO in self.parameters.keys(
            ) and self.PARSER is not None:
                # On telecharge la video
                video = {}
                name = self.parameters[self.PARAM_VIDEO_NAME]
                hd = self.retrieveVideoLink(
                    link=self.parameters[self.PARAM_VIDEO_ID])

                if hd is None:
                    xbmc.executebuiltin(
                        "XBMC.Notification(%s,%s)" %
                        (__language__(30300), __language__(30301)))

                else:
                    video[self.PARAM_VIDEO_ID] = hd
                    video[self.PARAM_VIDEO_NAME] = name
                    self.downloadVideo(video)

            else:
                #Probleme, pas de bon parametre detecte donc on initialise
                self.show_menu()

            _end_of_directory(True)

        except Exception, msg:
            xbmc.executebuiltin("XBMC.Notification(%s,%s)" %
                                ("ERROR select", msg))
            print("Error select")
            print_exc()
            _end_of_directory(False)
コード例 #3
0
from parsers import SearchParser

print "SEARCH ARTE PLUS"

videos = []
link = ""

#Init
searchParser = SearchParser("fr", videos)

#List videos
searchParser.parse(1, 200, "Le+grand+soir")
for video in videos:
    print "%s" % (video.title)
    link = video.link

#Get video rtmp link
searchParser.lang = "fr"
hd, sd = searchParser.fetch_stream_links(link)
print "%s" % (hd)