def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace(''', '\'').replace('’', '\'') sPattern = '<img width=".+?" height=".+?" src="([^<]+)" class="attachment-loop wp-post-image" alt=".+?" />.+?<h3 class="loop-title"><a href="([^<]+)" rel="bookmark">([^<]+)</a></h3>.+?<div class="mh-excerpt">(.+?)<a' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[2])) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0])) oGui.addMisc(SITE_IDENTIFIER, 'showHosters', aEntry[2], '', aEntry[0], aEntry[3], oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films Nouveautés', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, 'showGenre', 'Films par Genres', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Series Nouveautés', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_NEWS[1], 'Animes Nouveautés', 'news.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): oGui = cGui() # oOutputParameterHandler = cOutputParameterHandler() # oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') # oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Séries (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VFS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VFS[1], 'Séries (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VOSTFRS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VOSTFRS[1], 'Séries (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def ShowContent_old(self): oInputParameterHandler = cInputParameterHandler() sFolder = oInputParameterHandler.getValue("folder") oGui = cGui() files = os.listdir(sFolder) for file in files: if os.path.isdir(sFolder + file): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter("folder", sFolder + file + "/") oGui.addDir(SITE_IDENTIFIER, "ShowContent", file, "download.png", oOutputParameterHandler) elif ".strm" in file: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter("sFile", sFolder + file) sTitle = file.split(".")[0] oGuiElement = cGuiElement() oGuiElement.setFunction("") oGuiElement.setTitle(sTitle) # oGuiElement.setIcon('download.png') # oGuiElement.setFanart(cConfig().getRootArt()+'download_fanart.jpg') oGuiElement.setMeta(0) # oGuiElement.setThumbnail(thumbnail) # menu contextuel oGui.CreateSimpleMenu( oGuiElement, oOutputParameterHandler, "cLibrary", "cLibrary", "Delfile", "Supprimer ce fichiert" ) oGui.addFolder(oGuiElement, oOutputParameterHandler, False) oGui.setEndOfDirectory()
def showLang(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sType2 = oInputParameterHandler.getValue('type2') sTitle = oInputParameterHandler.getValue('title') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('version', 0) oOutputParameterHandler.addParameter('type2', sType2) oGui.addDir(SITE_IDENTIFIER, 'showAZ', sTitle+' A-Z', 'lang.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('version', 1) oOutputParameterHandler.addParameter('type2', sType2) oGui.addDir(SITE_IDENTIFIER, 'showAZ', sTitle+' A-Z VF', 'lang.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('version', 2) oOutputParameterHandler.addParameter('type2', sType2) oGui.addDir(SITE_IDENTIFIER, 'showAZ', sTitle+' A-Z VOSTFR', 'lang.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def getDownload(self): oGui = cGui() sPluginHandle = cPluginHandler().getPluginHandle() sPluginPath = cPluginHandler().getPluginPath() sItemUrl = '%s?site=%s&function=%s&title=%s' % (sPluginPath, SITE_IDENTIFIER, 'StartDownloadList', 'tittle') meta = {'title': 'Demarrer la liste'} item = xbmcgui.ListItem('Demarrer la liste', iconImage=cConfig().getRootArt()+'download.png') item.setProperty("Fanart_Image", cConfig().getSetting('images_downloads')) #item.setInfo(type="Video", infoLabels = meta) #item.setProperty("Video", "false") #item.setProperty("IsPlayable", "false") xbmcplugin.addDirectoryItem(sPluginHandle,sItemUrl,item,isFolder=False) oOutputParameterHandler = cOutputParameterHandler() oGui.addDir(SITE_IDENTIFIER, 'StopDownloadList', 'Arreter les Téléchargements', 'download.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oGui.addDir(SITE_IDENTIFIER, 'getDownloadList', 'Liste de Téléchargement', 'download.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oGui.addDir(SITE_IDENTIFIER, 'CleanDownloadList', 'Nettoyer la liste (Fichiers finis)', 'download.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): #function charger automatiquement par l'addon l'index de votre navigation. oGui = cGui() #ouvre l'affichage oOutputParameterHandler = cOutputParameterHandler() #apelle la function pour sortir un parametre oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') # sortis du parametres siteUrl oublier pas la Majuscule oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) #Ajoute lien dossier (identifant, function a attendre, nom, icon, parametre de sortis) #Puisque nous ne voulont pas atteindre une url on peux mettre ceux qu'on veut dans le parametre siteUrl oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Films Nouveautés', 'news.png', oOutputParameterHandler) #ici la function showMovies a besoin d'une url ici le racourcis MOVIE_NEWS oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showGenre', 'Films Genre', 'genres.png', oOutputParameterHandler) #showGenre n'a pas besoin d'une url pour cette methode oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_SERIES) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Series', 'series.png', oOutputParameterHandler) oGui.setEndOfDirectory() #ferme l'affichage
def showReplay(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = "<img src='([^<]+)' width='.+?px' height='.+?px'>.+?<a href=\"([^<]+)\"><span style='font-size:.+?px; color:#2793E9'>(.+?)</span></a>" oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sTitle = aEntry[2].decode('latin-1').encode("utf-8") oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0])) if 'Videos' in sUrl: oGui.addMisc(SITE_IDENTIFIER, 'showHosters2', sTitle, '', aEntry[0], '', oOutputParameterHandler) else: oGui.addMisc(SITE_IDENTIFIER, 'showHosters', sTitle, '', aEntry[0], '', oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showReplay', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def resultSearch(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = "<a href='([^<]+)' title=.([^<]+).>.*?<img src='([^<]+)' width='160px'.+?" oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[2])) oGui.addMisc(SITE_IDENTIFIER, 'showHosters', aEntry[1], '', aEntry[2], '', oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'resultSearch', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def __parseSite(sHtmlContent, sSiteUrl, iCurrentPage): oGui = cGui() sPattern = '<a href="/channel/(.*?)">.*?<span class="img"><img.*?rel="([^"]+)".*?<span>(.*?)</span>.*?<span class="liveViewers">(.*?)</span>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setThumbnail(str(aEntry[1])) oGuiElement.setFunction('showHoster') sTitle = __createTitle(aEntry[2], aEntry[3]) oGuiElement.setTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sSiteUrl', URL_MAIN + '/channel/' + str(aEntry[0])) oGui.addFolder(oGuiElement, oOutputParameterHandler) iNextPage = __checkForNextPage(sHtmlContent, iCurrentPage) if (iNextPage != False): oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showLiveVideos') oGuiElement.setTitle('next..') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sSiteUrl', sSiteUrl) oOutputParameterHandler.addParameter('iPage', str(iNextPage)) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH[0]) oGui.addDir(SITE_IDENTIFIER, 'showSerieSearch', 'Recherche Séries', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_SERIES[0]) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Séries Nouveautés', 'series.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Séries Les plus Vues', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_COMMENTS[0]) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Séries Les plus Commentés', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NOTES[0]) oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Séries Les mieux Notés', 'films.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showAnimAlpha(sLettre = ''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sTitle = oInputParameterHandler.getValue('sMovieTitle') dialog = cConfig().createDialog(SITE_NAME) if 'ABCDEF' in sUrl: for i in range(0,27) : cConfig().updateDialog(dialog, 27) if dialog.iscanceled(): break sTitle = chr(64+i) if sTitle == '@': sTitle = '[0-9]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sTitle) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'showSeriesAlpha','[COLOR teal] Lettre [COLOR red]'+ sTitle +'[/COLOR][/COLOR]','', '', '', oOutputParameterHandler) else: sLettre = sUrl sUrl = 'http://www.dpstream.net/liste-mangas-en-streaming.html' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<a class="b" href="([^<]+)">(' + str(sLettre) + '.+?)<.a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) print aResult if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break sTitle = aEntry[1] #Unicode convertion sTitle = unicode(sTitle,'iso-8859-1') sTitle = unicodedata.normalize('NFD', sTitle).encode('ascii', 'ignore') sTitle = unescape(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(URL_MAIN)+ str(aEntry[0]) ) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'seriesHosters',sTitle,'', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def ShowContent_old(self): oInputParameterHandler = cInputParameterHandler() sFolder = oInputParameterHandler.getValue('folder') oGui = cGui() files = os.listdir(sFolder) for file in files: if os.path.isdir(sFolder + file): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('folder', sFolder + file + '/') oGui.addDir(SITE_IDENTIFIER, 'ShowContent', file, 'download.png', oOutputParameterHandler) elif '.strm' in file: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sFile', sFolder + file) sTitle = file.split('.')[0] oGuiElement = cGuiElement() oGuiElement.setFunction('') oGuiElement.setTitle(sTitle) #oGuiElement.setIcon('download.png') #oGuiElement.setFanart(cConfig().getRootArt()+'download_fanart.jpg') oGuiElement.setMeta(0) #oGuiElement.setThumbnail(thumbnail) #menu contextuel oGui.CreateSimpleMenu(oGuiElement,oOutputParameterHandler,'cLibrary','cLibrary','Delfile','Supprimer ce fichiert') oGui.addFolder(oGuiElement, oOutputParameterHandler, False) oGui.setEndOfDirectory()
def load(): cGui().showInfo('HS', SITE_NAME, 5) return False oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_ANIME_LIST) oOutputParameterHandler.addParameter('nextFunction', 'showSeries') __createMenuEntry(oGui, 'showCharacters', 'Animes von A - Z', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MOVIES) oOutputParameterHandler.addParameter('nextFunction', 'showMovies') __createMenuEntry(oGui, 'showCharacters', 'Movies', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_OVA) oOutputParameterHandler.addParameter('nextFunction', 'showOvas') __createMenuEntry(oGui, 'showCharacters', 'Ovas', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH) __createMenuEntry(oGui, 'showSearch', 'Suche', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch sPattern = 'fullstreaming">.*?<img src="(.+?)".+?<h3.+?><a href="(.+?)">(.+?)<\/a><\/h3>.+?(?:<a href=".quality.+?">(.+?)<\/a>.+?)*Regarder<\/a>' else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') #sPattern = 'fullstreaming">.*?<img src="(.+?)".+?<h3.+?><a href="(.+?)">(.+?)<\/a><\/h3>.+?(?:.+?<a href=".quality.+?">(.+?)<\/a><.div>)(?:.+?<span style="font-family.+?>(.+?)<\/span>)' sPattern = 'fullstreaming">.*?<img src=".+?src=(.+?)".+?<h3.+?><a href="(.+?)">(.+?)<\/a><\/h3>.+?(?:<a href=".quality.+?">(.+?)<\/a>.+?)*Regarder<\/a>(?:.+?<span style="font-family.+?>(.+?)</span>|)' #recuperation de la page oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) #print aResult if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break sThumb = str(aEntry[0]).replace('&w=240&;h=320','') sTitle = aEntry[2] if aEntry[3] : sTitle = sTitle + ' (' + aEntry[3] + ')' # if not 'http' in sThumb: # sThumb = URL_MAIN + sThumb if sSearch: sCom = '' else: sCom = aEntry[4] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumb) if '/seriestv/' in sUrl or 'saison' in aEntry[1]: oGui.addTV(SITE_IDENTIFIER, 'serieHosters', sTitle, '', sThumb,sCom, oOutputParameterHandler) elif '/mangas/' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'serieHosters', sTitle, '', sThumb, sCom, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, sCom, oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) liste = [] liste.append( ["Top Vidéo","http://www.videobuzzy.com/top-video.php"] ) liste.append( ["Insolite","http://www.videobuzzy.com/Insolite.htm"] ) liste.append( ["Football","http://www.videobuzzy.com/Football.htm"] ) liste.append( ["Humour","http://www.videobuzzy.com/Humour.htm"] ) liste.append( ["Animaux","http://www.videobuzzy.com/Animaux.htm"] ) liste.append( ["Télévision","http://www.videobuzzy.com/Television.htm"] ) liste.append( ["Music","http://www.videobuzzy.com/Musique.htm"] ) liste.append( ["Sport","http://www.videobuzzy.com/Sport.htm"] ) liste.append( ["Cinema","http://www.videobuzzy.com/Cinema.htm"] ) for sTitle,sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'doc.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def __parseMovieSimpleList(sHtmlContent, iPage): oGui = cGui() sPattern = '<TR>.*?<a href="([^"]+)">(.*?)</a>.*?<img border=0 src="http://www.movie2k.com/img/(.*?).png' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showHoster') sTitle = aEntry[1].strip().replace('\t', '') + __getLanmguage(aEntry[2]) oGuiElement.setTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sUrl', aEntry[0]) oGui.addFolder(oGuiElement, oOutputParameterHandler) sNextUrl = __checkForNextPage(sHtmlContent, iPage) if (sNextUrl != False): oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('parseMovieSimpleList') oGuiElement.setTitle('next ..') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sUrl', sNextUrl) oOutputParameterHandler.addParameter('iPage', int(iPage) + 1) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) #rajout listage film nouveauté oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films Nouveautés', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_MOVIE[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_MOVIE[1], 'Films', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films Genres', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_SERIES[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_SERIES[1], 'Séries', 'series.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) liste = [] liste.append( ["Films Documentaires Reportages Enquetes","http://www.notre-ecole.net/c/documentaires/"] ) liste.append( ["Ecologie - Environnement","http://www.notre-ecole.net/c/ecologie-environnement/"] ) liste.append( ["Economie - Finance","http://www.notre-ecole.net/c/economie-finance/"] ) liste.append( ["Histoire","http://www.notre-ecole.net/c/histoire/"] ) liste.append( ["Philosophie","http://www.notre-ecole.net/c/philosophie/"] ) liste.append( ["Politique","http://www.notre-ecole.net/c/politique/"] ) liste.append( ["Politique - France","http://www.notre-ecole.net/c/politique/politique-france/"] ) liste.append( ["Politique - Union Européenne","http://www.notre-ecole.net/c/politique/union-europeenne/"] ) liste.append( ["Médias - Publicité","http://www.notre-ecole.net/c/medias-publicite/"] ) liste.append( ["Société","http://www.notre-ecole.net/c/societe/"] ) liste.append( ["Santé et sanitaire","http://www.notre-ecole.net/c/sante-sanitaire/"] ) liste.append( ["Guerres","http://www.notre-ecole.net/c/guerres/"] ) liste.append( ["Pétitions","http://www.notre-ecole.net/c/petition/"] ) for sTitle,sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'doc.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH[0]) oGui.addDir(SITE_IDENTIFIER, 'showMoviesSearch', 'Recherche', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films Nouveautes', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VIEWS[1], 'Films Les Plus Vus', 'films.png', oOutputParameterHandler) #oOutputParameterHandler = cOutputParameterHandler() #oOutputParameterHandler.addParameter('siteUrl', 'http://venom') #oGui.addDir(SITE_IDENTIFIER, 'showGenre', 'Films Genres', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Series Nouveautes', 'series.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_NEWS[1], 'Animes Nouveautes', 'series.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() #Magouille pour virer les 3 ligne en trop en cas de recherche if sSearch: sHtmlContent = sHtmlContent.replace('quelle-est-votre-serie-preferee','<>') sHtmlContent = sHtmlContent.replace('top-series-du-moment','<>') sHtmlContent = sHtmlContent.replace('listes-des-series-annulees-et-renouvelees','<>') oParser = cParser() sPattern = '<div class="moviefilm"> *<a href=".+?"> *<img src="([^<>"]+)".+?\/><\/a><div class="movief"><a href="([^<]+)">([^<]+)<\/a><\/div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break sTitle = aEntry[2] sTitle = sTitle.replace(' [Streaming]','') sTitle = sTitle.replace(' [Telecharger]','') sTitle = sTitle.replace(' [Complète]','') sTitle = sTitle.replace(' [Complete]','') sDisplayTitle = cUtil().DecoTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0])) if 'series' in sUrl or re.match('.+?saison [0-9]+',sTitle,re.IGNORECASE): oGui.addTV(SITE_IDENTIFIER, 'showSeries', sDisplayTitle, '', aEntry[0], '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', aEntry[0], '', oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_COMMENTS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_COMMENTS[1], 'Films (Les plus commentés)', 'comments.png', oOutputParameterHandler) # Résultat des comments et des views identiques # oOutputParameterHandler = cOutputParameterHandler() # oOutputParameterHandler.addParameter('siteUrl', MOVIE_VIEWS[0]) # oGui.addDir(SITE_IDENTIFIER, MOVIE_VIEWS[1], 'Films (Les plus vus)', 'views.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NOTES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NOTES[1], 'Films (Les mieux notés)', 'notes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showActors(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addParameters('api_key', API_KEY) oRequestHandler.addParameters('language', 'fr') oRequestHandler.addParameters('page', iPage) sHtmlContent = oRequestHandler.request(); result = json.loads(sHtmlContent) total = len(sHtmlContent) if (total > 0): for i in result['results']: print i['name'] sName, sThumbnail = i['name'], i['profile_path'] if sThumbnail: sThumbnail = POSTER_URL+sThumbnail else: sThumbnail = '' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMisc(SITE_IDENTIFIER, 'showActors', '[COLOR red]'+str(sName)+'[/COLOR]', '', sThumbnail, '', oOutputParameterHandler) for i in i['known_for']: sId, sTitle, sOtitle, sThumbnail, sFanart = i['id'], i['title'], i['original_title'], i['poster_path'], i['backdrop_path'] if sThumbnail: sThumbnail = POSTER_URL+sThumbnail else: sThumbnail = '' sTitle = sTitle.encode("utf-8") oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str('none')) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('disp', '') oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, '', oOutputParameterHandler) if (iPage > 0): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) oGui.addDir(SITE_IDENTIFIER, 'showActors', '[COLOR teal]Page '+str(iNextPage)+' >>>[/COLOR]', 'next.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('[MULTI]','').replace('[STREAMING]','').replace('[DDL]','') sPattern = 'class="story_c">.+?<a href="([^<]+)">([^<]+)</a>.+?class="movie_teaser_poster"><img src="(.+?)".+?/>.+?class="info_animes2">(.+?)</div>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[2])) oGui.addTV(SITE_IDENTIFIER, 'showHosters', aEntry[1], '', aEntry[2], aEntry[3], oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<a class="clip-link" data-id=".+?" title="([^<]+)" href="([^<]+)">.+?<img src="([^<]+)" alt=".+?"/>.+?<p class="desc">(.+?)</p>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sTitle= aEntry[0] sThumbnail = 'http:'+str(aEntry[2]) sUrl = URL_MAIN+str(aEntry[1]) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, aEntry[3], oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showEpisode(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<li style.+?>(.+?)</li>|<li title=""><a href="([^<]+)">([^<]+)</a></li>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if aEntry[0]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sMovieTitle', str(sMovieTitle)) oGui.addDir(SITE_IDENTIFIER, 'showEpisode', '[COLOR red]'+str(aEntry[0])+'[/COLOR]', 'films.png', oOutputParameterHandler) else: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[2])) oGui.addDir(SITE_IDENTIFIER, 'showHosters', sMovieTitle+' - '+aEntry[2], 'films.png', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch : sUrl = sSearch sPattern = SEARCHPATTERN else : oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sPattern = NORMALPATTERN # if (sUrl == URL_MAIN) : # sPattern = NORMALPATTERN # else: # sPattern = NORMALPATTERN #print sUrl oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) #print aResult if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break sTitle2 = aEntry[1] sTitle2 = re.sub('<font color="#[0-9]{6}" *><i>HD<\/i><\/font>', '[HD]',sTitle2) sUrl2 = aEntry[0] #not found better way #sTitle = unicode(sTitle, errors='replace') #sTitle = sTitle.encode('ascii', 'ignore').decode('ascii') sDisplayTitle = cUtil().DecoTitle(sTitle2) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(URL_MAIN) + str(sUrl2)) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle2)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) liste = [] liste.append( ["Reportage","http://www.reportagestv.com/"] ) liste.append( ["Canal+","http://www.reportagestv.com/category/canal-plus/"] ) liste.append( ["D8","http://www.reportagestv.com/category/d8/"] ) liste.append( ["France 2","http://www.reportagestv.com/category/france-2/"] ) liste.append( ["TF1","http://www.reportagestv.com/category/tf1/"] ) liste.append( ["TMC","http://www.reportagestv.com/category/tmc/"] ) for sTitle,sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'doc.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showGenre', 'Emmisions', 'doc.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch sUrl = sUrl.replace('%20','+') else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() sPattern = '<div class="moviefilm"><a href=".+?".+?<img src="([^<"]+)".+?<a href="([^<]+)">([^<]+)<\/a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break #Si recherche et trop de resultat, on nettoye if sSearch and total > 2: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0],''),aEntry[2]) == 0: continue sTitle = aEntry[2] sDisplayTitle = cUtil().DecoTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0])) if '/serie/' in aEntry[1] or '/manga/' in aEntry[1]: oGui.addTV(SITE_IDENTIFIER, 'showEpisode', sDisplayTitle, '', aEntry[0], '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, '', aEntry[0], '', oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('&w=210&h=280','') sPattern = 'full-stream-view-hover"><img src=".+?src=(.+?)" alt="(.+?)".+?<h2><a href="(.+?)">.+?</a></h2>.+?<b>Résumé</b>(.+?)</div>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[2])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0])) if '/seriestv/' in sUrl or 'saison' in aEntry[2]: oGui.addTV(SITE_IDENTIFIER, 'serieHosters', aEntry[1], '', aEntry[0], aEntry[3], oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', aEntry[1], '', aEntry[0], aEntry[3], oOutputParameterHandler) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() if '/latest-episodes/' in sUrl: sPattern = '<a href="([^"]+)" class="anm" title="([^"]+)">[^<]+<\/a>.+?<img src="([^"]+)" alt="(.+?)">' #news else: sPattern = '<h2><a href="([^<]+)">([^<]+)</a></h2>.+?<img src="(.+?)"' #populaire et search aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl = aEntry[0] sThumb = aEntry[2] sThumb = urllib.quote(sThumb, safe=':/') sLang = '' if 'vostfr' in sUrl or 'Vostfr' in sUrl: sLang = 'VOSTFR' elif 'VF' in sUrl or 'vf' in sUrl: sLang = 'VF' else: sLang = 'VOSTFR' sTitle = aEntry[1] + ' (' + sLang + ')' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) # oOutputParameterHandler.addParameter('sMovieTitle', sTitle) # oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sTitle, 'animes.png', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HD1080[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD1080[1], 'Bluray 1080P', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_4K[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_4K[1], 'Bluray 4K', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VOSTFR[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VOSTFR[1], 'Films (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_720[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_720[1], 'Bluray 720P', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_1080X265[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_1080X265[1], 'Bluray 1080P H265/HEVC', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_BLURAYVOSTFR[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_BLURAYVOSTFR[1], 'Bluray VOSTFR', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_3D[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_3D[1], 'Bluray 3D', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_FULL1080P[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_FULL1080P[1], 'REMUX 1080P', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_FULL3D[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_FULL3D[1], 'REMUX 3D', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_FULL4K[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_FULL4K[1], 'REMUX 4K', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_LIGHT720[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_LIGHT720[1], 'HD light 720P', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_LIGHT1080[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_LIGHT1080[1], 'HD light 1080P', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_LIGHTBDRIP[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_LIGHTBDRIP[1], 'HD light BDRIP', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_BDRIP[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_BDRIP[1], 'Films BDRIP/DVDRIP', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_OLDDVD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_OLDDVD[1], 'Ancien DVDRIP', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_FILMO[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_FILMO[1], 'Filmographie', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_CLASSIQUE_HD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_CLASSIQUE_HD[1], 'Films Classique HD', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_CLASSIQUE_SD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_CLASSIQUE_SD[1], 'Films Classique SD', 'films.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sHtmlContent = oParser.abParse(sHtmlContent, '<section class="box"', '<div class="pagination-fix"') sPattern = 'data-v-.+?<a href="([^"]+)".+?<img src="(.+?)" alt="(.+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) sUrl2 = URL_MAIN[:-1] + aEntry[0] sThumb = str(aEntry[1]) if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb sTitle = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if ('/series/' in sUrl2): oGui.addTV(SITE_IDENTIFIER, 'showSaisons', sTitle, '', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, '', oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sYear = oInputParameterHandler.getValue('sYear') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # Vire les bandes annonces sHtmlContent = sHtmlContent.replace('src="https://www.youtube.com/', '') sPattern = '<div class="tabs_header">.+?<a.+?>([^<]+)</b><tr>|(?:<a class="" rel="noreferrer" href="([^"]+)".+?<img src="/templates/Flymix/images/(.+?).png" /> *</a>|<a href="([^"]+)" >([^"]+)</a>)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oGui.addText(SITE_IDENTIFIER, sMovieTitle) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if aEntry[0]: oGui.addText( SITE_IDENTIFIER, '[COLOR red]' + aEntry[0].replace(" ", "") + '[/COLOR]') else: if aEntry[3]: try: sHost, sTitle = aEntry[4].split('-', 1) sHost = '[COLOR coral]' + sHost + '[/COLOR]' sUrl = aEntry[3] except ValueError: sHost = '[COLOR coral]' + aEntry[4].capitalize( ) + '[/COLOR]' sHost = re.sub('\.\w+', '', sHost) sUrl = aEntry[3] else: sHost = '[COLOR coral]' + aEntry[2].capitalize( ) + '[/COLOR]' sHost = re.sub('\.\w+', '', sHost) sUrl = aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addLink(SITE_IDENTIFIER, 'Display_protected_link', sHost, sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: if URL_SEARCH[0] in sSearch: sUrl = sSearch else: sUrl = URL_SEARCH[0] + sSearch sUrl = sUrl.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'class="poster.+?img src="([^"]+)".+?class="quality">([^<]+)<\/div>.+?class="title"><a href="([^"]+)".+?title="([^"]+)".+?class="label">Ann.+?<a href.+?>([^<]+)</a>.+?class="shortStory">([^<]+)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[2] sThumb = aEntry[0] if sThumb.startswith('//'): sThumb = 'http:' + sThumb sTitle = aEntry[3] sQual = aEntry[1] sYear = aEntry[4] sDesc = aEntry[5] sDisplayTitle = ('%s [%s]') % (sTitle, sQual) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) number = re.search('page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + number + ' >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') bGlobal_Search = False if sSearch: if URL_SEARCH[0] in sSearch: bGlobal_Search = True sSearch = sSearch.replace(URL_SEARCH[0], '') query_args = (('do', 'search'), ('subaction', 'search'), ('story', sSearch), ('titleonly', '0'), ('full_search', '1')) data = urlEncode(query_args) oRequestHandler = cRequestHandler(URL_SEARCH[0]) oRequestHandler.setRequestType(1) oRequestHandler.addParametersLine(data) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Referer', URL_SEARCH[0]) oRequestHandler.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequestHandler.addHeaderEntry('Content-Length', str(len(data))) sHtmlContent = oRequestHandler.request() else: oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() if "/films/" in sUrl: sPattern = '<article class="short__story.+?href="([^"]+).+?data-src="([^"]+)" alt="([^"]+).+?pg">([^<]+).+?text">([^<]+)' else: sPattern = '<article class="short__story.+?href="([^"]+).+?data-src="([^"]+)" alt="([^"]+).+?pg">([^<]+).+?cat">([^<]+).+?text">([^<]+)' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[0] sThumb = aEntry[1] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb if "/films/" in sUrl: sTitle = aEntry[2] sQual = aEntry[3] sDesc = aEntry[4] sLang = "" else: sLang = aEntry[2].split(" ")[-1] sTitle = re.sub( 'Saison \d+', '', aEntry[2][:aEntry[2].rfind('')].replace( sLang, "")) + " " + aEntry[4] sQual = aEntry[3] sDesc = aEntry[5] sDisplayTitle = ('%s [%s] (%s)') % (sTitle, sQual, sLang.upper()) oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('referer', sUrl) oGui.addAnime(SITE_IDENTIFIER, 'ShowSxE', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) sNumPage = re.search('/page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sNumPage, oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') if sSearch: if URL_SEARCH[0] in sSearch: sSearch = sSearch.replace(URL_SEARCH[0], '') sPattern = '<a class=\'asp_res_image_url\' href=\'([^>]+)\'.+?url\("([^"]+)"\).+?\'>([^.]+)d{2}.+?<span.+?class="asp_res_text">([^<]+)' oRequestHandler = cRequestHandler(URL_SEARCH[0]) oRequestHandler.setRequestType(1) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ) oRequestHandler.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3') oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate') oRequestHandler.addHeaderEntry( 'Referer', "https://www.asia-insane.biz/recherche-avancee-asia-insane/") oRequestHandler.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequestHandler.addParameters('action', "ajaxsearchpro_search") oRequestHandler.addParameters('asid', "1") oRequestHandler.addParameters('aspp', sSearch) oRequestHandler.addParameters('asp_inst_id', "1_1") oRequestHandler.addParameters( 'options', "current_page_id=413&qtranslate_lang=0&asp_gen%5B%5D=title&customset%5B%5D=amy_movie&customset%5B%5D=amy_tvshow&termset%5Bamy_director%5D%5B%5D=-1&termset%5Bamy_actor%5D%5B%5D=-1" ) sHtmlContent = oRequestHandler.request() elif '/amy_genre/' in sUrl or '/date/' in sUrl: oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'item-poster">.+?src="(http[^"]+).+?href="([^"]+)">([^<]+)d{2}.+?desc"><p>([^<]+)' else: oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'front">.+?src="(http[^"]+).+?field-title"><a href="([^"]+)">([^<]+)d{2}.+?field-desc"><p>([^<]+).+?(?:|/version/([^/]+).+?)(?:|/date/([^/]+).+?)Genre:' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if sSearch: sUrl2 = aEntry[0] sThumb = aEntry[1] sTitle = aEntry[2] sDesc = aEntry[3] sDisplayTitle = ('%s') % (sTitle) elif '/amy_genre/' in sUrl or '/date/' in sUrl: sThumb = aEntry[0] sUrl2 = aEntry[1] sTitle = aEntry[2] sDesc = aEntry[3] sDisplayTitle = ('%s') % (sTitle) else: sThumb = aEntry[0] sUrl2 = aEntry[1] sTitle = aEntry[2] sDesc = aEntry[3] sQual = aEntry[4].upper() sYear = aEntry[5] sDisplayTitle = ('%s [%s] (%s)') % (sTitle, sQual, sYear) oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/dramas/' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'ShowSerieEpisodes', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch.replace(' ', '+') else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # derniers épisodes if 'derniere-et-meilleures-serie-en-streaming' in sUrl: sPattern = '<a href="([^"]+)" class="list-group-item.+?>(.+?)<b>(.+?)</b>' sHtmlContent = oParser.abParse(sHtmlContent, "<h4>Les derniers episodes", "les plus vues") #reste else: sPattern = '<a class="image" title="(.+?)" href="([^"]+)".+?src="([^"]+)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Derniers épisodes if 'derniere-et-meilleures-serie-en-streaming' in sUrl: sUrl2 = aEntry[0] sTitle = aEntry[1].replace(' - ', ' ') + aEntry[2].replace(' ','') sThumb = 'news.png' else: sTitle = aEntry[0].replace('Streaming', '') sUrl2 = aEntry[1] sThumb = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if 'derniere-et-meilleures-serie-en-streaming' in sUrl: oGui.addDir(SITE_IDENTIFIER, 'showLink', sTitle, sThumb, oOutputParameterHandler) else: oGui.addTV(SITE_IDENTIFIER, 'showS_E', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) number = re.search('page=([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + number + ' >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showSeriesHosters(): # VSlog('showSeriesHosters') oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') try: sDesc = unicodedata.normalize('NFD', sDesc).encode( 'ascii', 'ignore').decode('unicode_escape') sDesc = sDesc.encode('latin-1') except: pass sHtmlContent = Stormwall().GetHtml(sUrl) if "zt-protect" in sUrl: # Dl Protect present aussi a cette étape. oParser = cParser() sPattern = '<form action="(.+?)".+?type="hidden" name="_token" value="(.+?)">' result = oParser.parse(sHtmlContent, sPattern) if (result[0]): RestUrl = str(result[1][0][0]) try: token = str(result[1][0][1], 'utf-8') except: token = result[1][0][1] sHtmlContent = Stormwall().GetHtml(RestUrl + "?_token" + token) # Pour les series on fait l'inverse des films on vire les liens premiums if 'Premium' in sHtmlContent or 'PREMIUM' in sHtmlContent or 'premium' in sHtmlContent: sHtmlContent = CutPremiumlinks(sHtmlContent) sPattern = '<div style="font-weight:bold;color:.+?">(.+?)</div>|<a class="btnToLink".+?href="(.+?)">(.+?)</a></b>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: if aEntry[0]: if 'Télécharger' in aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR olive]' + aEntry[0] + '[/COLOR]') else: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0] + '[/COLOR]') else: sName = aEntry[2] sName = sName.replace('Télécharger', '') sName = sName.replace('pisodes', 'pisode') sUrl2 = aEntry[1] sTitle = sMovieTitle + ' ' + sName oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('baseUrl', sUrl) oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addEpisode(SITE_IDENTIFIER, 'Display_protected_link', sTitle, '', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory()
def showEpisodes(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') # sThumb = oInputParameterHandler.getValue('sThumb') # sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #thumb et syno sThumb = '' sDesc = '' try: sPattern = '<img class="cvr" src="([^"]+)".+?<b>Synopsis</b>:<br */>([^<]+)<\/p>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sThumb = aResult[1][0][0] sDesc = aResult[1][0][1] except: pass sPattern = '<a class="lst" href="([^"]+)" title="([^"]+(?<!Episode Date)(?<!Episode News))"><b class="val">' #vire les non épisode aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break p = re.search(r'(\d+)[ +](\d+)', aEntry[1]) if p: sTitle = re.sub(r'(\d+)[ +](\d+)', p.group(1) + '-' + p.group(2), aEntry[1]) else: sTitle = aEntry[1] iliste = ['Ep-', '-Vostfr', 'Vostfr-', '-Non-Censure', 'VF-', ' -'] for item in iliste: if item in aEntry[1]: sTitle = sTitle.replace(item, '') sUrl = aEntry[0] sThumb = sThumb.replace(' ', '%20') sTitle = sTitle.replace('Episode SP', '[ Episode Spécial ] episode').replace( ' + ', '-').replace('Episode New-', 'Episode') sTitle = sTitle.replace('Episode ONA', '[ Episode ONA ] episode').replace( 'Episode OVA', '[ Episode OVA ] episode').replace( 'Episode NC', 'Episode') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addTV(SITE_IDENTIFIER, 'showLinks', sTitle, 'animes.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMoviesLinks(): # VSlog('mode film') oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sDisplayTitle = oInputParameterHandler.getValue('sDisplayTitle') if not sDisplayTitle: # Si on arrive par un marque-page sDisplayTitle = sMovieTitle sThumb = oInputParameterHandler.getValue('sThumb') sUrl = oInputParameterHandler.getValue('siteUrl') sHtmlContent = Stormwall().GetHtml(sUrl) if "zt-protect" in sUrl: # Dl Protect present aussi a cette étape. oParser = cParser() sPattern = '<form action="(.+?)".+?type="hidden" name="_token" value="(.+?)">' result = oParser.parse(sHtmlContent, sPattern) if (result[0]): RestUrl = str(result[1][0][0]) try: token = str(result[1][0][1], 'utf-8') except: token = result[1][0][1] sHtmlContent = Stormwall().GetHtml(RestUrl + "?_token" + token) # Affichage du texte oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Qualités disponibles :[/COLOR]') # récupération du Synopsis et de l'année sDesc = '' sYear = '' try: sPattern = '(<u>Date de .+</u>.+(\d{4}(-| *<))|<u>Critiques.+?</u>).+synopsis.+?>(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: aEntry = aResult[1][0] sYear = aEntry[1] sDesc = cUtil().removeHtmlTags(aEntry[3]) except: pass # la qualité courante est le lien en cours ici-même oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addLink(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, sThumb, sDesc, oOutputParameterHandler) # on regarde si dispo dans d'autres qualités sPattern = '<a href="([^"]+)"><span class="otherquality"><span style="color:#.{6}"><b>([^<]+)</b></span><span style="color:#.{6}"><b>([^<]+)</b></span>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = URL_MAIN[:-1] + aEntry[0] sQual = aEntry[1] sLang = aEntry[2] sTitle = ('%s [%s] %s') % (sMovieTitle, sQual, sLang) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sDisplayTitle', sTitle) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addLink(SITE_IDENTIFIER, 'showMoviesLinks', sTitle, sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory()
#Si recherche et trop de resultat, on nettoye if sSearch and total > 2: if cUtil().CheckOccurence(sSearch, aEntry[1]) == 0: continue #sTitle = aEntry[2].decode('latin-1').encode("utf-8") #sThumbnail = 'http:'+str(aEntry[2]) #sUrl = URL_MAIN+str(aEntry[1]) sThumbnail = str(aEntry[0]) if not 'http://www.vkstreamingfilm' in sThumbnail: sThumbnail = 'http://www.vkstreamingfilm.fr' + sThumbnail #print sThumbnail oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[2])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', aEntry[1], '', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler)
def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_EXCLUS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_EXCLUS[1], 'Exclus (Films populaires)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD[1], 'Blu-rays (720p & 1080p)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_3D[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_3D[1], 'Films (3D)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HDLIGHT[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HDLIGHT[1], 'Films (x265 & x264)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_4K[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_4K[1], 'Films (4k)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_ANIME[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_ANIME[1], 'Dessins Animés (Derniers ajouts)', 'animes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_BDRIP[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_BDRIP[1], 'Films (BDRIP)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_TS_CAM[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_TS_CAM[1], 'Films (TS, CAM, R5, DVDSCR)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VFSTFR[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VFSTFR[1], 'Films en francais sous titre francais (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_MKV[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_MKV[1], 'Films (dvdrip mkv)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VO[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VO[1], 'Films en Version original (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_INTEGRAL[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_INTEGRAL[1], 'Intégral de films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showSeriesLinks(): # VSlog('mode serie') oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sUrl = oInputParameterHandler.getValue('siteUrl') sHtmlContent = Stormwall().GetHtml(sUrl) if "zt-protect" in sUrl: # Dl Protect present aussi a cette étape. oParser = cParser() sPattern = '<form action="(.+?)".+?type="hidden" name="_token" value="(.+?)">' result = oParser.parse(sHtmlContent, sPattern) if (result[0]): RestUrl = str(result[1][0][0]) try: token = str(result[1][0][1], 'utf-8') except: token = result[1][0][1] sHtmlContent = Stormwall().GetHtml(RestUrl + "?_token" + token) # Affichage du texte oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Qualités disponibles :[/COLOR]') # récupération du Synopsis sDesc = sMovieTitle # Ne pas laisser vide sinon un texte automatique faux va être calculé try: sPattern = 'synopsis.+(alt="">|<!--dle_image_end-->)(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = cUtil().removeHtmlTags(aResult[1][0][1]) except: pass # on recherche d'abord la qualité courante sPattern = '<div style="[^"]+?">.+?Qualité (.+?) [|] (.+?)<.+?img src="(([^"]+))"' aResult = oParser.parse(sHtmlContent, sPattern) sQual = '' sLang = '' if (aResult[1]): aEntry = aResult[1][0] sQual = aEntry[0] sLang = aEntry[1] sThumb = aEntry[ 2] # change pour chaque saison, il faut la rechercher si on navigue entre saisons sDisplayTitle = ('%s [%s] (%s)') % (sMovieTitle, sQual, sLang) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addEpisode(SITE_IDENTIFIER, 'showSeriesHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) # on regarde si dispo dans d'autres qualités sHtmlContent1 = CutQual(sHtmlContent) sPattern1 = 'href="([^"]+)"><span class="otherquality"><span style="color:#.{6}"><b>([^<]+)</b></span><span style="color:#.{6}"><b>([^<]+)' aResult1 = oParser.parse(sHtmlContent1, sPattern1) if (aResult1[0] == True): for aEntry in aResult1[1]: if 'animes' in sUrl: sUrl = URL_MAIN + 'animes' + aEntry[0] else: sUrl = URL_MAIN + 'telecharger-serie' + aEntry[0] sQual = aEntry[1] sLang = aEntry[2] sDisplayTitle = ('%s [%s] %s') % (sMovieTitle, sQual, sLang) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addEpisode(SITE_IDENTIFIER, 'showSeriesLinks', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) # on regarde si dispo d'autres saisons # Une ligne par saison, pas besoin d'afficher les qualités ici saisons = [] sHtmlContent2 = CutSais(sHtmlContent) sPattern2 = 'href="([^"]+)"><span class="otherquality">([^<]+)<b>([^<]+)<span style="color:#.{6}">([^<]+)</span><span style="color:#.{6}">([^<]+)' aResult2 = oParser.parse(sHtmlContent2, sPattern2) # Affichage du texte if (aResult2[0] == True): oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Autres saisons disponibles :[/COLOR]') for aEntry in aResult2[1]: sSaison = aEntry[2].strip() if sSaison in saisons: continue saisons.append(sSaison) if 'animes' in sUrl: sUrl = URL_MAIN + 'animes' + aEntry[0] else: sUrl = URL_MAIN + 'telecharger-serie' + aEntry[0] sMovieTitle = aEntry[1] + aEntry[2] sTitle = '[COLOR skyblue]' + sMovieTitle + '[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oGui.addEpisode(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, 'series.png', sThumb, sMovieTitle, oOutputParameterHandler) oGui.setEndOfDirectory()
def showEpisode(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = 'line-height:200px;font-size:26px;text-align:center;">L.anime est licencié<.p>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): dialog = cConfig().createDialog(SITE_NAME) cConfig().updateDialog(dialog, 1) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sMovieTitle', str(sMovieTitle)) oGui.addDir(SITE_IDENTIFIER, 'showEpisode', '[COLOR red]' + 'Animé licencié' + '[/COLOR]', 'films.png', oOutputParameterHandler) cConfig().finishDialog(dialog) else: #sPattern = '<li style.+?>(.+?)</li>|<li title=""><a href="([^<]+)">([^<]+)</a></li>' sPattern = '<li style.+?>(.+?)<.li>|<li title=".*?"><a href="([^<]+)">([^<]+)<.a><.li>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break if aEntry[0]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter( 'sMovieTitle', str(sMovieTitle)) oGui.addDir(SITE_IDENTIFIER, 'showEpisode', '[COLOR red]' + str(aEntry[0]) + '[/COLOR]', 'films.png', oOutputParameterHandler) else: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter( 'siteUrl', str(aEntry[1])) oOutputParameterHandler.addParameter( 'sMovieTitle', str(sMovieTitle)) oGui.addTV(SITE_IDENTIFIER, 'showHosters', sMovieTitle + ' - ' + aEntry[2], 'films.png', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('index.php', '') if sSearch: sUrl = sSearch sHtmlContent = Stormwall().GetHtml(sUrl) sPattern = '<img class="mainimg.+?src="([^"]+)(?:.|\s)+?<a href="([^"]+)">([^<]+)</a>.+?<span class=".+?<b>([^<]*)</span>.+?">([^<]+)</span>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) titles = set() if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = aEntry[0] sUrl2 = aEntry[1] sTitle = aEntry[2] sQual = aEntry[3] sLang = aEntry[4] # on vire le tiret des series sTitle = sTitle.replace(' - Saison', ' Saison').replace('COMPLETE', 'Complete') if '[Complete]' not in sTitle: sTitle = sTitle.replace('COMPLETE', '[Complete]') # nettoyage du titre sTitle = sTitle.replace('Complete', 'Complète') sTitle = re.sub('\[\w+]', '', sTitle) try: sTitle = str(sTitle.encode('latin-1'), encoding="utf-8") except: pass # Enlever les films en doublons (même titre et même pochette) # il s'agit du même film dans une autre qualité qu'on retrouvera au moment du choix de la qualité key = sTitle + "-" + sThumb if key in titles: continue titles.add(key) sDisplayTitle = ('%s [%s] %s') % (sTitle, sQual, sLang) if not sThumb.startswith('https'): sThumb = URL_MAIN + sThumb if not sUrl2.startswith('https'): sUrl2 = URL_MAIN + sUrl2 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sDisplayTitle', sDisplayTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if 'anime' in sUrl or 'anime' in sUrl2: oGui.addAnime(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif 'serie' in sUrl or 'serie' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif DOC_NEWS[0] in sUrl or TV_NEWS[0] in sUrl or SPECT_NEWS[ 0] in sUrl or CONCERT_NEWS[0] in sUrl: oGui.addMisc(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif 'collection' in sUrl or 'integrale' in sUrl: oGui.addMoviePack(SITE_IDENTIFIER, 'showMoviesLinks', sDisplayTitle, '', sThumb, '', oOutputParameterHandler) elif ' Saison ' in sTitle: oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showMoviesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: if 'controller.php' in sUrl: sPattern = '<a href="#" class="nav" data-cstart="([^"]+)">Suivant</a></div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter( 'siteUrl', re.sub('cstart=(\d+)', 'cstart=' + str(aResult[1][0]), sUrl)) number = re.search('([0-9]+)', aResult[1][0]).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + number, oOutputParameterHandler) else: sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging, oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ', '+') sPattern = '<div class="image">.+?<a href="([^"]+)">.+?<img src="([^"]+)" alt="([^"]+)".+?<p>(.+?)<\/p>' else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sPattern = '<article id="post-\d+".+?img src="([^"]+)" alt="([^"]+)".+?(?:|class="quality">([^<]+)<.+?)<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sQual = '' sDesc = '' if sSearch: sUrl2 = aEntry[0] sThumb = aEntry[1] sTitle = aEntry[2] sDesc = aEntry[3] else: sThumb = aEntry[0] sTitle = aEntry[1] if aEntry[2]: sQual = aEntry[2] sUrl = aEntry[3] if aEntry[4]: sDesc = aEntry[4] sDisplayTitle = ('%s [%s]') % (sTitle, sQual) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/serie' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showSxE', sTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLink', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch.replace(' ', '+') else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #réécriture pour prendre les séries dans le menu des genres sHtmlContent = sHtmlContent.replace( '<span class="Qlty">TV</span></div><h3', '</div><h3') #fh = open('d:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() if 'letters' in sUrl: sPattern = '<td class="MvTbImg"> *<a href="([^"]+)".+?(?:<img |data-wpfc-original-)src="([^"]+)".+?strong>([^<]+)<.+?span class="Qlty">([^<]+)<' else: sPattern = 'class="TPost C">.+?href="([^"]+)">.+?<img.+?src="([^"]+)".+?<h3 class="Title">([^<]+)</h3> .+?class="Qlty">([^<]+)<.+?<p>.+?streaming,([^<]+)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if 'letters' in sUrl: sDesc = '' else: sDesc = aEntry[4] siteUrl = aEntry[0] sThumb = aEntry[1].replace('w92', 'w342') if sThumb.startswith('//'): sThumb = 'https:' + sThumb sTitle = aEntry[2] sQual = aEntry[3] sDisplayTitle = ('%s [%s]') % (sTitle, sQual) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) if '/serie/' in siteUrl: oGui.addTV(SITE_IDENTIFIER, 'ShowSaisonEpisodes', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ', '+') pdata = 'do=search&subaction=search&story=' + sUrl + '&titleonly=3&all_word_seach=1&catlist[]=1' oRequest = cRequestHandler(URL_SEARCH[0]) # oRequest.setRequestType(1) oRequest.addHeaderEntry('User-Agent', UA) oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Origin', URL_MAIN) oRequest.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8') oRequest.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3') oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequest.addParametersLine(pdata) sHtmlContent = oRequest.request() else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'mov clearfix.+?src="([^"]*)" *alt="([^"]*).+?link="([^"]+).+?(?:|bloc1">([^<]+).+?)(?:|bloc2">([^<]*).+?)' sPattern += 'ml-desc"> (.+?)</div.+?Synopsis:.+?ml-desc">(.+?)</div' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = aEntry[0] sTitle = aEntry[1].replace(' wiflix', '') sUrl = aEntry[2] sLang = aEntry[3] Squal = aEntry[4] sYear = aEntry[5] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + aEntry[0] # Nettoyage du titre sDesc = str(aEntry[6]) sDesc = sDesc.replace('en streaming ', '') sDesc = sDesc.replace('Regarder film ' + sTitle + ';', '') sDesc = sDesc.replace('Regarder film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir film ' + sTitle + ';', '') sDesc = sDesc.replace('Voir film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir Film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir film ' + sTitle + ' :', '') sDesc = sDesc.replace('Regarder ' + sTitle + ';', '') sDesc = sDesc.replace('Regarder ' + sTitle + ' :', '') sDesc = sDesc.replace('Regarder ' + sTitle + ':', '') sDesc = sDesc.replace('voir ' + sTitle + ';', '') sDesc = sDesc.replace('voir ' + sTitle + ':', '') sDesc = sDesc.replace('Voir ' + sTitle + ':', '') sDesc = sDesc.replace('Regarder film ', '') sDesc = sDesc.strip() sDisplaytitle = '%s [%s] (%s)' % (sTitle, Squal, sLang) oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplaytitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) # number = re.search('/page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sVersion = oInputParameterHandler.getValue('version') sType2 = oInputParameterHandler.getValue('type2') liste = [] liste.append([ 'Action', 'http://www.adkami.com/video?recherche=&genre3=1&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Aventure', 'http://www.adkami.com/video?recherche=&genre3=2&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Amour & Amitié', 'http://www.adkami.com/video?recherche=&genre3=3&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Combat', 'http://www.adkami.com/video?recherche=&genre3=4&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Comédie', 'http://www.adkami.com/video?recherche=&genre3=5&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Contes & Récits', 'http://www.adkami.com/video?recherche=&genre3=6&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Cyber & Mecha', 'http://www.adkami.com/video?recherche=&genre3=7&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Dark Fantasy', 'http://www.adkami.com/video?recherche=&genre3=8&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Drame', 'http://www.adkami.com/video?recherche=&genre3=9&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Ecchi', 'http://www.adkami.com/video?recherche=&genre3=10&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Educatif', 'http://www.adkami.com/video?recherche=&genre3=11&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Énigme & Policier', 'http://www.adkami.com/video?recherche=&genre3=12&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Épique & Héroique', 'http://www.adkami.com/video?recherche=&genre3=13&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Espace & Sci-Fiction', 'http://www.adkami.com/video?recherche=&genre3=14&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Familial & Jeunesse', 'http://www.adkami.com/video?recherche=&genre3=15&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Fantastique & Mythe', 'http://www.adkami.com/video?recherche=&genre3=16&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Hentai', 'http://www.adkami.com/video?recherche=&genre3=17&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Historique', 'http://www.adkami.com/video?recherche=&genre3=18&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Horreur', 'http://www.adkami.com/video?recherche=&genre3=19&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Magical Girl', 'http://www.adkami.com/video?recherche=&genre3=20&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Musical', 'http://www.adkami.com/video?recherche=&genre3=21&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Psychologique', 'http://www.adkami.com/video?recherche=&genre3=22&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Sport', 'http://www.adkami.com/video?recherche=&genre3=23&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Tranche de vie', 'http://www.adkami.com/video?recherche=&genre3=24&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Shôjo-Ai', 'http://www.adkami.com/video?recherche=&genre3=25&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Shônen-Ai', 'http://www.adkami.com/video?recherche=&genre3=26&type2=' + str(sType2) + '&version=' + str(sVersion) ]) liste.append([ 'Yaoi /BL', 'http://www.adkami.com/video?recherche=&genre3=27&type2=' + str(sType2) + '&version=' + str(sVersion) ]) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showWeb(infile = None):#Code qui s'occupe de liens TV du Web oGui = cGui() oInputParameterHandler = cInputParameterHandler() if infile == None: sUrl = oInputParameterHandler.getValue('siteUrl') playlist = parseM3U(sUrl=sUrl) else: playlist = parseM3U(infile=infile) if (oInputParameterHandler.exist('AZ')): sAZ = oInputParameterHandler.getValue('AZ') string = filter(lambda t: t.title.strip().capitalize().startswith(sAZ), playlist) playlist = sorted(string, key = lambda t: t.title.strip().capitalize()) else : playlist = sorted(playlist, key = lambda t: t.title.strip().capitalize()) if not playlist: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://') oGui.addText(SITE_IDENTIFIER, '[COLOR red]Problème de lecture avec la playlist[/COLOR]') else: total = len(playlist) progress_ = progress().VScreate(SITE_NAME) for track in playlist: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = track.icon if not sThumb: sThumb = 'tv.png' #les + ne peuvent pas passer url2 = track.path.replace('+', 'P_L_U_S') if not xbmc.getInfoLabel('system.buildversion')[0:2] >= '19': if not '[' in url2 and not ']' in url2 and not '.m3u8' in url2 and not 'dailymotion' in url2: url2 = 'plugin://plugin.video.f4mTester/?url=' + QuotePlus(url2) + '&streamtype=TSDOWNLOADER&name=' + Quote(track.title) thumb = '/'.join([sRootArt, sThumb]) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', url2) oOutputParameterHandler.addParameter('sMovieTitle', track.title) oOutputParameterHandler.addParameter('sThumbnail', thumb) #oGui.addDirectTV(SITE_IDENTIFIER, 'play__', track.title, 'tv.png' , sRootArt + '/tv/' + sThumb, oOutputParameterHandler) oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('play__') oGuiElement.setTitle(track.title) oGuiElement.setFileName(track.title) oGuiElement.setIcon('tv.png') oGuiElement.setMeta(0) oGuiElement.setThumbnail(thumb) oGuiElement.setDirectTvFanart() oGuiElement.setCat(6) oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, SITE_IDENTIFIER, SITE_IDENTIFIER, 'direct_epg', 'Guide tv Direct') oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, SITE_IDENTIFIER, SITE_IDENTIFIER, 'soir_epg', 'Guide tv Soir') oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, SITE_IDENTIFIER, SITE_IDENTIFIER, 'enregistrement', 'Enregistrement') oGui.createContexMenuFav(oGuiElement, oOutputParameterHandler) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showSeries(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ', '+') pdata = 'do=search&subaction=search&story=' + sUrl + '&titleonly=3&all_word_seach=1&catlist[]=31' oRequest = cRequestHandler(URL_SEARCH[0]) # oRequest.setRequestType(1) oRequest.addHeaderEntry('User-Agent', UA) oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8') oRequest.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3') oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequest.addParametersLine(pdata) sHtmlContent = oRequest.request() else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'mov clearfix.+?src="([^"]+)" *alt="([^"]+).+?data-link="([^"]+).+?block-sai">([^<]+).+?ml-desc">(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + aEntry[0] sTitle = aEntry[1].replace('- Saison', 'Saison').replace(' wiflix', '') sLang = re.sub('Saison \d+', '', aEntry[3]).replace(' ', '') sDisplaytitle = ('%s (%s)') % (sTitle, sLang) sUrl = aEntry[2] sDesc = aEntry[4] oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sDisplaytitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showSeries', 'Page ' + sPaging, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oOutputParameterHandler.addParameter('type', 'film') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche de films', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_SD_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_SD_VIEWS[1], 'Films SD (Les plus vus)', 'films_views.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_SD_DVDRIP[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_SD_DVDRIP[1], 'Films SD DVDRIP & BDRIP (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_SD_CAM[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_SD_CAM[1], 'Films SD CAM & DVDScr (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_SD_VOSTFR[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_SD_VOSTFR[1], 'Films SD VOSTFR (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_SD_CLASSIQUE[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_SD_CLASSIQUE[1], 'Films SD Classiques (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD[1], 'Films HD 720p & 1080p (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HDLIGHT[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD[1], 'Films HDLight (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_3D[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_3D[1], 'Films 3D (Derniers ajouts)', 'films_news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HD_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD_VIEWS[1], 'Films HD (Les plus vus)', 'films_views.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES_SD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES_SD[1], 'Films SD (Genres)', 'films_genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES_HD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES_HD[1], 'Films HD (Genres)', 'films_genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_ANNEES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_ANNEES[1], 'Films (Par Années)', 'films_annees.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oParser = cParser() oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() cook = oRequestHandler.GetCookies() try: #récupération du Synopsis sDesc = '' sPattern = '<p>(.+?)<\/p>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] sDesc = sDesc.replace('…', '...') except: pass sPattern = "domain=(.+?)\".+?document.getElementsByName\(\'iframe\'\).+?src\'.+?\'(.+?)\'\);.+?<td>(.+?)<\/td>" aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sHost = str(aEntry[0]).replace('.com', '').replace( '.co', '').replace('.tv', '').replace('.sx', '').replace('.org', '').replace('.ch', '') if 'nowvideo' in sHost or 'youvid' in sHost: continue sHost = sHost.capitalize() sUrl2 = str(aEntry[1]) sLang = str(aEntry[2]) sTitle = ('%s (%s) [COLOR coral]%s[/COLOR]') % (sMovieTitle, sLang, sHost) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sCook', cook) #oGui.addTV(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, sDesc, oOutputParameterHandler) oGui.addLink(SITE_IDENTIFIER, 'showHosters', sTitle, sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #recuperation nom de la release if 'elease :' in sHtmlContent: sPattern = 'elease :([^<]+)<' else: sPattern = '<br /> *([^<]+)</p></center>' aResult1 = oParser.parse(sHtmlContent, sPattern) #print aResult1 if (aResult1[0] == True): if 'Forced' in aResult1[1][0]: aResult1[1][0]='' #cut de la zone des liens if 'Lien Premium' in sHtmlContent: sPattern = 'Lien Premium(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: return sHtmlContent = aResult[1][0] if 'Interchangeables' in sHtmlContent: #cut de restes de liens non premiums sPattern = '--(.+?)Interchangeables' aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: return sHtmlContent = aResult[1][0] else: sPattern = '<div id="link">(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: return sHtmlContent = aResult[1][0] sHtmlContent = sHtmlContent.replace(' ', '') if '-multi' in sHtmlContent: sPattern = '<a href="link.php\?lien\=([^"]+)"' else: sPattern = '<b>(.+?)<\/b>.+?<a href="link.php\?lien\=([^"]+)" target="_blank" *><b>Cliquer ici pour Télécharger' aResult = oParser.parse(sHtmlContent, sPattern) #print aResult if (aResult[0] == True): for aEntry in aResult[1]: if '-multi' in aEntry: sHostName = 'Liens Multi' else: sHostName = aEntry[0] sHostName = cUtil().removeHtmlTags(sHostName) oOutputParameterHandler = cOutputParameterHandler() sTitle = '[COLOR skyblue]' + sHostName + '[/COLOR]' if '-multi' in aEntry: oOutputParameterHandler.addParameter('siteUrl', aEntry) else: oOutputParameterHandler.addParameter('siteUrl', aEntry[1]) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addMovie(SITE_IDENTIFIER, 'Display_protected_link', sTitle, '', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory()
def parseM3U(sUrl=None, infile=None):#Traite les m3u local oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') if infile == None: if 'iptv4sat' in sUrl or '.zip' in sUrl: sHtmlContent = getHtml(sUrl) zip_files = ZipFile(io.BytesIO(sHtmlContent)) files = zip_files.namelist() for Title in files: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sMovieTitle', Title) oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'unZip', Title, 'tv.png', oOutputParameterHandler) oGui.setEndOfDirectory() return elif not '#EXTM3U' in sUrl: site = infile headers = {'User-Agent': UA} oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addHeaderEntry('User-Agent', UA) inf = oRequestHandler.request() if 'drive.google' in inf: inf = unGoogleDrive(inf) inf = inf.split('\n') else: inf = infile else: inf = infile try: line = inf.readline() except: pass playlist = [] song = track(None, None, None, None) ValidEntry = False for line in inf: if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19': try: line = line.decode('utf-8') except AttributeError: pass line = line.strip() if line.startswith('#EXTINF:'): length, title = line.split('#EXTINF:')[1].split(',', 1) try: licon = line.split('#EXTINF:')[1].partition('tvg-logo=')[2] icon = licon.split('"')[1] except: icon = 'tv.png' ValidEntry = True song = track(length, title, None, icon) elif (len(line) != 0): if (ValidEntry) and (not (line.startswith('!') or line.startswith('#'))): ValidEntry = False song.path = line playlist.append(song) #VSlog(playlist) song=track(None, None, None, None) try: inf.close() except: pass return playlist
def seriesLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('sUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #refomatage url sUrl = ReformatUrl(sUrl) oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/','').replace('<iframe src=\'http://creative.rev2pub.com','') oParser = cParser() #Gros calcul donc on delimite la zone sPattern = 'Choisissez une langue(.+?)Postez votre commentaires ici' aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0] == True): print 'erreur de regex' return sHtmlContent = aResult[1][0] #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() sPattern = 'class="separateur_qualite">([^<>]+?)<\/td>.+?data-fancybox-type="ajax" href="(.+?)" class="fancybox fancybox\.iframe">.+?Regarder sur:<\/span> <b>(.+?)<\/b>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): sPattern2 = 'class=[\'|"]separateur_qualite[^<>]+?>([^<>]+?)<\/td>.+?<a class="fancybox" href="(.+?)" data-fancybox-type="ajax"' aResult = oParser.parse(sHtmlContent, sPattern2) if (aResult[0] == True): total = len(aResult[1]) dialog = cConfig().createDialog(SITE_NAME) for aEntry in aResult[1]: cConfig().updateDialog(dialog, total) if dialog.iscanceled(): break sUrlLink = aEntry[1] if not URL_MAIN in sUrlLink: sUrlLink = URL_MAIN + sUrlLink sLang = aEntry[0] sLang = cUtil().removeHtmlTags(sLang) sDisplayTitle = '(' + sLang + ')' + sMovieTitle sDisplayTitle = cUtil().DecoTitle(sDisplayTitle) if len(aEntry) > 2: sDisplayTitle = sDisplayTitle + ' [COLOR skyblue]' + aEntry[ 2] + '[/COLOR]' else: sDisplayTitle = sDisplayTitle + ' [COLOR skyblue]' + '???' + '[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sUrl', sUrlLink) oOutputParameterHandler.addParameter('sMovieTitle', str(sMovieTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showSeriesHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() #recuperation nom de la release sPattern = '</span> ([^<]+)</strong> :.' aResult1 = oParser.parse(sHtmlContent, sPattern) #cut de la zone des liens if 'Lien Premium' in sHtmlContent: sPattern = 'Lien Premium *--(.+?)</div>' else: sPattern = '<div id="link">(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) sHtmlContent = aResult[1][0] sHtmlContent = re.sub('<font color="[^"]+">', '', sHtmlContent) sHtmlContent = re.sub('</font>', '', sHtmlContent) #sHtmlContent = re.sub('link.php\?lien\=', '', sHtmlContent) if '-multi' in sHtmlContent: sPattern = '<a href="link.php\?lien\=([^"]+)"' else: sPattern = '<b>(.+?)</b> </br> <a href="link.php\?lien\=([^"]+)" target="_blank" ><b>Cliquer ici pour Télécharger</b></a>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oGui.addText(SITE_IDENTIFIER, sMovieTitle + aResult1[1][0]) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break oOutputParameterHandler = cOutputParameterHandler() if total == 1: sTitle = '[COLOR skyblue]' + 'Liens Premium' + '[/COLOR]' oOutputParameterHandler.addParameter('siteUrl', aEntry) else: sTitle = '[COLOR skyblue]' + aEntry[0] + '[/COLOR]' oOutputParameterHandler.addParameter('siteUrl', aEntry[1]) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addMovie(SITE_IDENTIFIER, 'Display_protected_link', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() liste = [] liste.append( ['Action', 'http://www.libertyland.tv/films/genre/action.html']) liste.append( ['Animation', 'http://www.libertyland.tv/films/genre/animation.html']) liste.append( ['Aventure', 'http://www.libertyland.tv/films/genre/aventure.html/']) liste.append( ['Biopic', 'http://www.libertyland.tv/films/genre/biopic.html']) liste.append( ['Comedie', 'http://www.libertyland.tv/films/genre/comedie.html']) liste.append([ 'Comedie Dramatique', 'http://www.libertyland.tv/films/genre/comedie-dramatique.html' ]) liste.append([ 'Comedie Musicale', 'http://www.libertyland.tv/films/genre/comedie-musicale.html' ]) liste.append(['Drame', 'http://www.libertyland.tv/films/genre/drame.html']) liste.append([ 'Epouvante Horreur', 'http://www.libertyland.tv/films/genre/epouvante-horreur.html' ]) liste.append([ 'Espionnage', 'http://www.libertyland.tv/films/genre/espionnage.html' ]) liste.append( ['Famille', 'http://www.libertyland.tv/films/genre/famille.html']) liste.append([ 'Fantastique', 'http://www.libertyland.tv/films/genre/fantastique.html' ]) liste.append( ['Guerre', 'http://www.libertyland.tv/films/genre/guerre.html']) liste.append([ 'Historique', 'http://www.libertyland.tv/films/genre/historique.html' ]) liste.append([ 'Judiciaire', 'http://www.libertyland.tv/films/genre/historique.html' ]) liste.append( ['Medical', 'http://www.libertyland.tv/films/genre/musical.html']) liste.append( ['Policier', 'http://www.libertyland.tv/films/genre/policier.html']) liste.append( ['Peplum', 'http://www.libertyland.tv/films/genre/peplum.html']) liste.append( ['Romance', 'http://www.libertyland.tv/films/genre/romance.html']) liste.append([ 'Science Fiction', 'http://www.libertyland.tv/films/genre/science-fiction.html' ]) liste.append( ['Thriller', 'http://www.libertyland.tv/films/genre/thriller.html']) liste.append( ['Western', 'http://www.libertyland.tv/films/genre/western.html']) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showSearchResult(sSearch = ''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = sSearch HD = 0 SD = 0 #uniquement si c'est la premiere page if sSearch: sType = oInputParameterHandler.getValue('type') loop = 1 if sType: if sType == "film": sUrl = sUrl + '&rech_cat=video' loop = 2 if sType == "serie": sUrl = sUrl + '&rech_cat=serie' loop = 2 if sType == "anime": sUrl = sUrl + '&rech_cat=Animations' else: sUrl = oInputParameterHandler.getValue('siteUrl') loop = 1 SD = HD = -1 oParser = cParser() aResult = [] NextPage = [] while (loop): oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sHtmlContent = sHtmlContent.replace('<span style="background-color: yellow;"><font color="red">','') sPattern = '<b><p style="font-size: 18px;"><A href="([^"]+)">(.+?)<\/A.+?<td align="center">\s*<img src="([^"]+)".+?<b>Description : <\/b><\/br><\/br>(.+?)<' aResult1 = oParser.parse(sHtmlContent, sPattern) if (aResult1[0] == False): oGui.addText(SITE_IDENTIFIER) if aResult1[0]: aResult = aResult + aResult1[1] sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): n = '[COLOR teal]Next >>>[/COLOR]' if sSearch: n = '[COLOR teal]Next SD >>>[/COLOR]' if loop == 2: n ='[COLOR teal]Next HD >>>[/COLOR]' NextPage.append((n, sNextPage)) loop = loop - 1 if (loop == 1): HD = len(aResult) if sUrl.endswith('video'): sUrl = sUrl.replace('=video', '=Films+HD') if sUrl.endswith('serie'): sUrl = sUrl.replace('=serie', '=seriehd') if (aResult): i = 0 for aEntry in aResult: #titre ? if i == SD: oGui.addText(SITE_IDENTIFIER,'[COLOR olive]Qualitee SD[/COLOR]') if i == HD: oGui.addText(SITE_IDENTIFIER,'[COLOR olive]Qualitee HD[/COLOR]') i = i + 1 sQual = 'SD' if '-hd/' in aEntry[0] or 'bluray' in aEntry[0] or 'hdlight' in aEntry[0]: sQual = 'HD' if '-3d/' in aEntry[0]: sQual = '3D' sTitle = str(aEntry[1]) sTitle = cUtil().removeHtmlTags(sTitle) sUrl2 = URL_MAIN + aEntry[0] sDesc = aEntry[3] sDesc = sDesc.decode("unicode_escape").encode("latin-1") sThumb = aEntry[2] sDisplayTitle = '(' + sQual + ') ' + sTitle oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) if 'series-' in sUrl or '-Saison' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) for n, u in NextPage: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', u) oGui.addNext(SITE_IDENTIFIER, 'showSearchResult', n, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()