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
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)
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)