def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('src="http://full-streamvk.com/','') sPattern = '<div class="fstory-video-block" id=".+?">.+?<iframe.+?src=[\'|"](.+?)[\'|"]' oParser = cParser() #print aResult 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 sHosterUrl = str(aEntry) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def getAvailablePlugins(self): oConfig = cConfig() sFolder = self.getRootFolder() sFolder = os.path.join(sFolder, 'resources/sites') # xbox hack sFolder = sFolder.replace('\\', '/') cConfig().log("Sites Folder " + sFolder) aFileNames = self.__getFileNamesFromFolder(sFolder) aPlugins = [] for sFileName in aFileNames: cConfig().log("Load Plugin " + str(sFileName)) # wir versuchen das plugin zu importieren aPlugin = self.__importPlugin(sFileName) if (aPlugin[0] != False): sSiteName = aPlugin[0] sPluginSettingsName = aPlugin[1] sSiteDesc = aPlugin[2] # existieren zu diesem plugin die an/aus settings bPlugin = oConfig.getSetting(sPluginSettingsName) if (bPlugin != ''): # settings gefunden if (bPlugin == 'true'): aPlugins.append(self.__createAvailablePluginsItem(sSiteName, sFileName, sSiteDesc)) else: # settings nicht gefunden, also schalten wir es trotzdem sichtbar aPlugins.append(self.__createAvailablePluginsItem(sSiteName, sFileName, sSiteDesc)) return aPlugins
def serieHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') sPattern = 'href="([^<]+)" target="_blank">.+?</a>' oParser = cParser() aResult = oParser.parse(sUrl, 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 sHosterUrl = str(aEntry) #oHoster = __checkHoster(sHosterUrl) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showAlpha(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() dialog = cConfig().createDialog(SITE_NAME) for i in range(0,27) : cConfig().updateDialog(dialog, 27) if dialog.iscanceled(): break sTitle = chr(64+i) sUrl = 'http://xn--official-film-illimit-v5b.fr/film-de-a-a-z/lettre-' + chr(96+i) + '/' if sTitle == '@': sTitle= '[0-9]' sUrl = 'http://xn--official-film-illimit-v5b.fr/film-de-a-a-z/0-9/' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'showMovies','[COLOR teal] Lettre [COLOR red]'+ sTitle +'[/COLOR][/COLOR]','', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def run(self, oGuiElement, sTitle, sUrl): sPluginHandle = cPluginHandler().getPluginHandle(); #meta = oGuiElement.getInfoLabel() meta = {'label': sTitle, 'title': sTitle} item = xbmcgui.ListItem(path=sUrl, iconImage="DefaultVideo.png", thumbnailImage=self.sThumbnail) item.setInfo( type="Video", infoLabels= meta ) if (cConfig().getSetting("playerPlay") == '0'): sPlayerType = self.__getPlayerType() xbmcPlayer = xbmc.Player(sPlayerType) xbmcPlayer.play( sUrl, item ) xbmcplugin.endOfDirectory(sPluginHandle, True, False, False) else: xbmcplugin.setResolvedUrl(sPluginHandle, True, item) timer = int(cConfig().getSetting('param_timeout')) xbmc.sleep(timer) while not xbmc.abortRequested: try: self.currentTime = self.getTime() self.totalTime = self.getTotalTime() except: break xbmc.sleep(1000)
def epHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('streaming','') sPattern = '<a href="([^<]+)" title="([^<]+)" class="tilink sinactive"><i class="fa fa-youtube-play"></i>.+?</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 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(URL_MAIN+aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addTV(SITE_IDENTIFIER, 'showHosters', aEntry[1], '', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showSeries(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') sUrl = sUrl+'100/' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<a href="([^<]+)"><span>(.+?)</span></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 sTitle = sMovieTitle+' - '+aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMisc(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def AlphaSearch(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') dialog = cConfig().createDialog(SITE_NAME) for i in range(0,36) : cConfig().updateDialog(dialog, 36) if dialog.iscanceled(): break if (i < 10): sTitle = chr(48+i) else: sTitle = chr(65+i-10) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl + sTitle.lower() + '.html' ) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addDir(SITE_IDENTIFIER, 'AlphaDisplay', '[COLOR teal] Lettre [COLOR red]'+ sTitle +'[/COLOR][/COLOR]', 'genres.png', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def AlphaDisplay(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') print sUrl #recuperation de la page oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<a href="(.+?)" class="list-name">»(.+?)<\/a>' 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] sDisplayTitle = cUtil().DecoTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', aEntry[0]) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'serieHosters', sDisplayTitle, '', '','', oOutputParameterHandler) cConfig().finishDialog(dialog) 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 = '<li><a href="([^<]+)">.+?<span class="bold">(.+?)</span></p>' 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 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) if 'type2=1' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showEpisode', aEntry[1], 'series.png', '', '', oOutputParameterHandler) else: oGui.addTV(SITE_IDENTIFIER, 'showEpisode', aEntry[1], 'animes.png', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) if not sSearch: oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/','') sPattern = '<iframe.+?src=[\'|"](.+?)[\'|"]' 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) sHosterUrl = str(aEntry) #oHoster = __checkHoster(sHosterUrl) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def download(self, sUrl, sTitle): self.__processIsCanceled = False sTitle = self.__createTitle(sUrl, sTitle) self.__sTitle = self.__createDownloadFilename(sTitle) oGui = cConfig() self.__sTitle = oGui.showKeyBoard(self.__sTitle) if (self.__sTitle != False and len(self.__sTitle) > 0): #chemin de sauvegarde sPath2 = cConfig().getSetting('Download_Folder') dialog = xbmcgui.Dialog() sPath = dialog.browse(3, 'Downloadfolder', 'files', '', False, False , sPath2) if (sPath != ''): cConfig().setSetting('Download_Folder',sPath) sDownloadPath = xbmc.translatePath(sPath + '%s' % (self.__sTitle, )) try: cConfig().log("Telechargement " + str(sUrl)) self.__createProcessDialog() self.__download(urllib2.urlopen(sUrl), sDownloadPath) except: #print_exc() cConfig().showInfo('Telechargement impossible', self.__sTitle) cConfig().log("Telechargement impossible") pass self.__oDialog.close()
def resultSearch(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<td class="wrapper_pic_td"><img src="(.+?)" border="0" alt="(.+?)\sStreaming".+?></td>.+?<span class="std">(.+?)</span>' 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 sThumbnail = URL_MAIN+str(aEntry[0]) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sMovieTitle', str(aEntry[1])) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', aEntry[1], 'films.png', sThumbnail, aEntry[2], oOutputParameterHandler) cConfig().finishDialog(dialog) if not sSearch: oGui.setEndOfDirectory()
def AddtoDownloadList(self): oInputParameterHandler = cInputParameterHandler() sHosterIdentifier = oInputParameterHandler.getValue('sHosterIdentifier') sMediaUrl = oInputParameterHandler.getValue('sMediaUrl') #bGetRedirectUrl = oInputParameterHandler.getValue('bGetRedirectUrl') sFileName = oInputParameterHandler.getValue('sFileName') #if (bGetRedirectUrl == 'True'): # sMediaUrl = self.__getRedirectUrl(sMediaUrl) cConfig().log("Telechargement " + sMediaUrl) meta = {} meta['url'] = sMediaUrl meta['cat'] = oInputParameterHandler.getValue('sCat') meta['title'] = sFileName meta['icon'] = xbmc.getInfoLabel('ListItem.Art(thumb)') if (self.AddDownload(meta)): #telechargement direct ou pas ? if not self.isDownloading(): row = cDb().get_Download(meta) if row: self.StartDownloadOneFile(row[0]) return
def seriesHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/','').replace('<iframe src=\'http://creative.rev2pub.com','').replace('<iframe src=\'http://creative.ad120m.com/', '') sPattern = '<dd><a href="([^<]+)" class="zoombox.+?" title="(.+?)"><button class="btn">.+?</button></a></dd>' 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) sHosterUrl = str(aEntry[0]) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): sTitle=re.sub(r'\[.*\]',r'',aEntry[1]) oHoster.setDisplayName(sTitle) oHoster.setFileName(sTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) 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 StopDownloadList(self): #oInputParameterHandler = cInputParameterHandler() #path = oInputParameterHandler.getValue('sPath') #status = oInputParameterHandler.getValue('sStatus') #WINDOW_PROGRESS = xbmcgui.Window( 10101 ) #WINDOW_PROGRESS.close() #xbmcgui.Window(10101).setProperty('arret', '1') #xbmc.executebuiltin("Dialog.Close(%s, true)" % 10101) #xbmc.getCondVisibility('Window.IsActive(10101)')) #thread actif if xbmcgui.Window(10101).getProperty('arret') == '0': xbmcgui.Window(10101).setProperty('arret', '1') #si bug else: cDownloadProgressBar().StopAll() #On remet tout les status a 0 ou 2 cDb().Cancel_download() cConfig().update() return
def showHosters(): oGui = cGui() sLink = '' sThumb = '' sComm = '' oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = FILMPATTERN aResult = oParser.parse(sHtmlContent, sPattern) sThumb = aResult[1][0][0] sComm = unescape(aResult[1][0][1]) #sPattern = 'proxy.link=(.+?)&autostart=true' #aResult = oParser.parse(sHtmlContent, sPattern) sHtmlContent = sHtmlContent.replace('\r','') sPattern = 'class="jwts_tabbertab" title="(.+?)">.+?' + FRAMEPATTERN aResult = oParser.parse(sHtmlContent, sPattern) #Si il n'a pas de selection de qualitee if (aResult[0] == False): sPattern = FRAMEPATTERN aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): print aResult[1][0] aResult[1][0] = ('???',aResult[1][0]) 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 sLink = str(URL_MAIN) + urllib.unquote(aEntry[1]).decode('utf8') Squality = str(aEntry[0]) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sLink) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oGui.addMovie(SITE_IDENTIFIER, 'showHostersLink', '[COLOR teal][' + Squality + '][/COLOR] ' + sMovieTitle, sThumb, sThumb, sComm, oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def run(self): try: #Recuperation url simple url = self.__sUrl.split('|')[0] #Recuperation des headers du lien headers = {} if len (self.__sUrl.split('|')) > 1: u = self.__sUrl.split('|')[1].split('&') for i in u: headers[i.split('=')[0]] = i.replace(i.split('=')[0] + '=','') #Rajout du user-agent si abscent if not ('User-Agent' in headers): headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' req = urllib2.Request(url, None, headers) self.oUrlHandler = urllib2.urlopen(req,timeout=30) #self.__instance = repr(self) self.file = xbmcvfs.File(self.__fPath, 'w') except: xbmc.log('download error') xbmc.log(self.__sUrl) cConfig().showInfo('Erreur initialisation', 'Download error') return if not Memorise.lock("VstreamDownloaderLock"): cConfig().showInfo('Telechargements deja demarrés', 'Download error') #self.oUrlHandler.close() return self._StartDownload()
def download(self): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sHosterIdentifier = oInputParameterHandler.getValue('sHosterIdentifier') sMediaUrl = oInputParameterHandler.getValue('sMediaUrl') bGetRedirectUrl = oInputParameterHandler.getValue('bGetRedirectUrl') sFileName = oInputParameterHandler.getValue('sFileName') if (bGetRedirectUrl == 'True'): sMediaUrl = self.__getRedirectUrl(sMediaUrl) cConfig().log("Telechargement " + sMediaUrl) oHoster = cHosterHandler().getHoster(sHosterIdentifier) oHoster.setFileName(sFileName) #try: oHoster.setUrl(sMediaUrl) aLink = oHoster.getMediaLink() if (aLink[0] == True): oDownload = cDownload() oDownload.download(aLink[1], oHoster.getFileName()) return #except: # cConfig().log("Telechargement " + sHosterFileName) oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<option.+?value="(.+?)">(.+?)</option>' 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 sHosterUrl = str(aEntry[0]) #oHoster = __checkHoster(sHosterUrl) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(aEntry[1]) oHoster.setFileName(aEntry[1]) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def checkforupdates(): logger.info("xStream checkforupdates") if cConfig().getSetting('UpdateSetting') == "Nightly": nightlycommitsXML = urllib.urlopen("https://api.github.com/repos/StoneOffStones/plugin.video.xstream/commits/nightly").read() try: if not os.path.exists(LOCAL_NIGHTLY_VERSION) or open(LOCAL_NIGHTLY_VERSION).read() != \ json.loads(nightlycommitsXML)['sha']: update(REMOTE_URL_NIGHTLY) open(LOCAL_NIGHTLY_VERSION, 'w').write(json.loads(nightlycommitsXML)['sha']) except Exception as e: logger.info("Ratelimit reached") logger.info(e) elif cConfig().getSetting('UpdateSetting') == "Stable": oLocalVer = getLocalVersion() oRemoteVer = getLastMasterVersion() if oLocalVer is not None and oRemoteVer is not None and oRemoteVer > oLocalVer: update(getLastMasterDownloadUrl()) elif cConfig().getSetting('UpdateSetting') == "Beta": oLocalVer = getLocalVersion() oRemoteVer = getRemoteVersion(REMOTE_VERSION_FILE_MASTER) if oLocalVer is not None and oRemoteVer is not None and oRemoteVer > oLocalVer: update(REMOTE_URL_BETA)
def seriesHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<div class="e-number">.+?<iframe src="(.+?)".+?class="episode-id">(.+?)<' 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 = sMovieTitle + ' ' + str(aEntry[1]) sTitle = cUtil().DecoTitle(sTitle) sHosterUrl = str(aEntry[0]) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sTitle) oHoster.setFileName(sTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) 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 serieHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); sPattern = '<a href="([^<]+)" title="([^<]+)" target="seriePlayer" class="ilink sinactive">' 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 sHosterUrl = str(aEntry[0]) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): sTitle = aEntry[1] oHoster.setDisplayName(sTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def resultSearch(sSearch): oGui = cGui() sUrl = sSearch oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<img src="images\/Movie\.png" [^<>]+?><span style="vertical-align:middle;">(.+?)<\/span>' 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 sThumbnail = '' sTitle = aEntry sTitle = sTitle.replace('- Film Complet','') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) #oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, 'films.png', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog)
def showLibre(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<url>(.+?)</url><title>(.+?)</title><order>.+?</order><icon>(.+?)</icon>' 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[1] sDisplayTitle = cUtil().DecoTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', aEntry[0]) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addDirectTV(SITE_IDENTIFIER, 'showLibretv', sDisplayTitle, 'tv.png' , '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') sUrl = sUrl+'/100/' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); #sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/plugins/like.php','').replace('<iframe src="http://www.facebook.com/plugins/likebox.php','') sPattern = '<ahref="([^<]+)"><span>(.+?)</span></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 sHoster = cHosterGui().checkHoster(aEntry[1].lower()) if (sHoster != False): sTitle = sMovieTitle+' - [COLOR azure]'+aEntry[1]+'[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0])) oOutputParameterHandler.addParameter('sMovieTitle', str(sMovieTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def ShowAlpha(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = 'http://www.mangacity.org/animes.php?liste=SHOWALPHA' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = "<a href='(.+?)' class='button light'><headline6><font color='black'>([A-Z#])<\/font><\/headline6><\/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 sLetter = aEntry[1] Link = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(URL_MAIN) + Link) oGui.addMovie(SITE_IDENTIFIER, 'showMovies', '[B][COLOR red]' + sLetter + '[/COLOR][/B]', '', '', '', oOutputParameterHandler) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def __init__(self): self.__sRootArt = cConfig().getRootArt() self.__sType = 'Video' self.__sMeta = 0 self.__sPlaycount = 0 self.__sTrailerUrl = '' self.__sMetaAddon = cConfig().getSetting('meta-view') self.__sMediaUrl = '' self.__sSiteUrl = '' self.__sTitle = '' self.__sTitleSecond = '' self.__sFileName = '' self.__sDescription = '' self.__sThumbnail = '' self.__sIcon = self.DEFAULT_FOLDER_ICON self.__sFanart = self.__sRootArt+'fanart.jpg' self.__sFanart_search = self.__sRootArt+'search_fanart.jpg' self.__sFanart_tv = self.__sRootArt+'tv_fanart.jpg' self.__sFanart_films = self.__sRootArt+'films_fanart.jpg' self.__sFanart_series = self.__sRootArt+'series_fanart.jpg' self.__sFanart_animes = self.__sRootArt+'animes_fanart.jpg' self.__sFanart_doc = self.__sRootArt+'doc_fanart.jpg' self.__sFanart_sport = self.__sRootArt+'sport_fanart.jpg' self.__sFanart_buzz = self.__sRootArt+'buzz_fanart.jpg' self.__sFanart_mark = self.__sRootArt+'mark_fanart.jpg' self.__sFanart_host = self.__sRootArt+'host_fanart.jpg' self.__aItemValues = {} self.__aProperties = {} self.__aContextElements = [] self.__sSiteName = '' self.__sCat = '' cGuiElement.COUNT += 1
#fh = open('c:\\netu3.txt', "w") #fh.write(data) #fh.close() file_url = re.search(r'"file"\s*:\s*"([^"]*?)"', data) if file_url: list_url = _decode2(file_url.group(1).replace('\\', '')) #xbmc.log(list_url) #Hack, je sais pas si ca va durer longtemps, mais indispensable sur certains fichiers list_url = list_url.replace("?socket", ".mp4.m3u8") else: cConfig().log('prb2') api_call = list_url #api_call = list_url.replace('?socket=','.mp4Frag1Num0.ts') #use a fake headers Header = 'User-Agent=' + UA api_call = api_call + '|' + Header #print api_call if not (api_call == False): return True, api_call return False, False
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 getRootFolder(self): sRootFolder = cConfig().getAddonPath() cConfig().log("Root Folder: " + sRootFolder) return sRootFolder
def play(self): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sHosterIdentifier = oInputParameterHandler.getValue('sHosterIdentifier') sMediaUrl = oInputParameterHandler.getValue('sMediaUrl') bGetRedirectUrl = oInputParameterHandler.getValue('bGetRedirectUrl') sFileName = oInputParameterHandler.getValue('sFileName') #sThumbnail = oInputParameterHandler.getValue('sThumbnail') if (bGetRedirectUrl == 'True'): sMediaUrl = self.__getRedirectUrl(sMediaUrl) cConfig().log("Hoster - play " + sMediaUrl) oHoster = cHosterHandler().getHoster(sHosterIdentifier) oHoster.setFileName(sFileName) sHosterName = oHoster.getDisplayName() cConfig().showInfo(sHosterName, 'Resolve') #oHoster.setUrl(sMediaUrl) #aLink = oHoster.getMediaLink() try: oHoster.setUrl(sMediaUrl) aLink = oHoster.getMediaLink() if (aLink[0] == True): oGuiElement = cGuiElement() oGuiElement.setSiteName(self.SITE_NAME) oGuiElement.setMediaUrl(aLink[1]) oGuiElement.setTitle(oHoster.getFileName()) oGuiElement.getInfoLabel() oPlayer = cPlayer() oPlayer.run(oGuiElement, oHoster.getFileName(), aLink[1]) # oGuiElement = cGuiElement() # oGuiElement.setSiteName(self.SITE_NAME) # oGuiElement.setMediaUrl(aLink[1]) # oGuiElement.setTitle(oHoster.getFileName()) # oGuiElement.getInfoLabel() # oPlayer = cPlayer() # oPlayer.clearPlayList() # oPlayer.addItemToPlaylist(oGuiElement) # oPlayer.startPlayer() return else: #cConfig().showInfo(sHosterName, 'Fichier introuvable') cConfig().error("Fichier introuvable ") return except: #cConfig().showInfo(sHosterName, 'Fichier introuvable') cConfig().error("Fichier introuvable ") return oGui.setEndOfDirectory()
def showHoster(self, oGui, oHoster, sMediaUrl, sThumbnail, bGetRedirectUrl = False): #oInputParameterHandler = cInputParameterHandler() #aParams = oInputParameterHandler.getAllParameter() oGuiElement = cGuiElement() oGuiElement.setSiteName(self.SITE_NAME) #oGuiElement.setFunction('showHosterMenu') oGuiElement.setFunction('play') oGuiElement.setTitle(oHoster.getDisplayName()) #oGuiElement.setThumbnail(sThumbnail) # if (oInputParameterHandler.exist('sMeta')): # sMeta = oInputParameterHandler.getValue('sMeta') # oGuiElement.setMeta(int(sMeta)) oGuiElement.setFileName(oHoster.getFileName()) oGuiElement.getInfoLabel() oGuiElement.setCat(4) #oGuiElement.setThumbnail(xbmc.getInfoLabel('ListItem.Art(thumb)')) if sThumbnail: oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setMeta(1) oGuiElement.setIcon('host.png') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sMediaUrl', sMediaUrl) #oOutputParameterHandler.addParameter('sThumbnail', oGuiElement.getThumbnail()) oOutputParameterHandler.addParameter('sHosterIdentifier', oHoster.getPluginIdentifier()) oOutputParameterHandler.addParameter('bGetRedirectUrl', bGetRedirectUrl) oOutputParameterHandler.addParameter('sFileName', oHoster.getFileName()) oOutputParameterHandler.addParameter('sTitle', oHoster.getDisplayName()) oOutputParameterHandler.addParameter('sId', 'cHosterGui') oOutputParameterHandler.addParameter('siteUrl', sMediaUrl) #oOutputParameterHandler.addParameter('sFav', 'play') #oOutputParameterHandler.addParameter('sCat', '4') oGui.createContexMenuWatch(oGuiElement, oOutputParameterHandler) #context playlit menu oContext = cContextElement() oContext.setFile('cHosterGui') oContext.setSiteName(self.SITE_NAME) oContext.setFunction('addToPlaylist') oContext.setTitle(cConfig().getlanguage(30201)) oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) #Download menu if (oHoster.isDownloadable() == True): oContext = cContextElement() oContext.setFile('cDownload') oContext.setSiteName('cDownload') oContext.setFunction('AddtoDownloadList') oContext.setTitle(cConfig().getlanguage(30202)) oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) if (oHoster.isDownloadable() == True): #Beta context download and view menu oContext = cContextElement() oContext.setFile('cDownload') oContext.setSiteName('cDownload') oContext.setFunction('AddtoDownloadListandview') oContext.setTitle('DL et Visualiser') oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) #context FAV menu oGui.createContexMenuFav(oGuiElement, oOutputParameterHandler) #context Library menu oGui.CreateSimpleMenu(oGuiElement,oOutputParameterHandler,'cLibrary','cLibrary','setLibrary','[COLOR teal]Ajouter a la librairie[/COLOR]') #bug oGui.addFolder(oGuiElement, oOutputParameterHandler, False)
def checkHoster(self, sHosterUrl): #securitee if (not sHosterUrl): return False #Petit nettoyage sHosterUrl = sHosterUrl.split('|')[0] #L'user a active l'url resolver ? if cConfig().getSetting('UserUrlResolver') == 'true': import urlresolver hmf = urlresolver.HostedMediaFile(url=sHosterUrl) if hmf.valid_url(): tmp = cHosterHandler().getHoster('resolver') RH = sHosterUrl.split('/')[2] RH = RH.replace('www.','') tmp.setRealHost( RH[:3].upper() ) return tmp #Gestion classique if ('novamov' in sHosterUrl): return cHosterHandler().getHoster('novamov') if ('divxstage' in sHosterUrl): return cHosterHandler().getHoster('divxstage') if ('vidxden' in sHosterUrl): return cHosterHandler().getHoster('vidxden') if ('vidbux' in sHosterUrl): return cHosterHandler().getHoster('vidbux') if ('megavideo' in sHosterUrl): return cHosterHandler().getHoster('megavideo') if ('videoweed' in sHosterUrl): return cHosterHandler().getHoster('videoweed') if ('youwatch' in sHosterUrl): return cHosterHandler().getHoster('youwatch') if ('turbovid' in sHosterUrl): return cHosterHandler().getHoster('turbovid') if ('youtube' in sHosterUrl): return cHosterHandler().getHoster('youtube') if ('youtu.be' in sHosterUrl): return cHosterHandler().getHoster('youtube') if ('rutube' in sHosterUrl): return cHosterHandler().getHoster('rutube') if ('exashare' in sHosterUrl): return cHosterHandler().getHoster('exashare') if ('nowvideo' in sHosterUrl): return cHosterHandler().getHoster('nowvideo') if ('vk.com' in sHosterUrl): return cHosterHandler().getHoster('vk') if ('vkontakte' in sHosterUrl): return cHosterHandler().getHoster('vk') if ('vkcom' in sHosterUrl): return cHosterHandler().getHoster('vk') if ('videomega' in sHosterUrl): return cHosterHandler().getHoster('videomega') if ('vidto' in sHosterUrl): return cHosterHandler().getHoster('vidto') if ('vidzi' in sHosterUrl): return cHosterHandler().getHoster('vidzi') if ('cloudy' in sHosterUrl): return cHosterHandler().getHoster('cloudy') if ('http://filetrip' in sHosterUrl): return cHosterHandler().getHoster('filetrip') if ('uptostream' in sHosterUrl): return cHosterHandler().getHoster('uptostream') if ('dailymotion' in sHosterUrl): return cHosterHandler().getHoster('dailymotion') if ('dai.ly' in sHosterUrl): return cHosterHandler().getHoster('dailymotion') if ('azerfile' in sHosterUrl): return cHosterHandler().getHoster('azerfile') if ('vodlocker' in sHosterUrl): return cHosterHandler().getHoster('vodlocker') if ('mystream' in sHosterUrl): return cHosterHandler().getHoster('mystream') if ('streamingentiercom/videophp?type=speed' in sHosterUrl): return cHosterHandler().getHoster('speedvideo') if ('speedvideo' in sHosterUrl): return cHosterHandler().getHoster('speedvideo') if ('speedvid' in sHosterUrl): return cHosterHandler().getHoster('speedvid') if ('axavid' in sHosterUrl): return cHosterHandler().getHoster('axavid') if ('netu' in sHosterUrl): return cHosterHandler().getHoster('netu') if ('hqq' in sHosterUrl): return cHosterHandler().getHoster('netu') if ('waaw' in sHosterUrl): return cHosterHandler().getHoster('netu') if ('mail.ru' in sHosterUrl): return cHosterHandler().getHoster('mailru') if ('videoraj' in sHosterUrl): return cHosterHandler().getHoster('videoraj') if ('videohut' in sHosterUrl): return cHosterHandler().getHoster('videohut') if ('onevideo' in sHosterUrl): return cHosterHandler().getHoster('onevideo') if ('googlevideo' in sHosterUrl): return cHosterHandler().getHoster('googlevideo') if ('picasaweb' in sHosterUrl): return cHosterHandler().getHoster('googlevideo') if ('googleusercontent' in sHosterUrl): return cHosterHandler().getHoster('googlevideo') if ('video.tt' in sHosterUrl): return cHosterHandler().getHoster('videott') if ('playreplay' in sHosterUrl): return cHosterHandler().getHoster('playreplay') if ('streamin.to' in sHosterUrl): return cHosterHandler().getHoster('streaminto') if ('vodlocker' in sHosterUrl): return cHosterHandler().getHoster('vodlocker') if ('flashx' in sHosterUrl): return cHosterHandler().getHoster('flashx') if ('easywatch' in sHosterUrl): return cHosterHandler().getHoster('easywatch') if ('ok.ru' in sHosterUrl): return cHosterHandler().getHoster('ok_ru') if ('odnoklassniki' in sHosterUrl): return cHosterHandler().getHoster('ok_ru') if ('vimeo.com' in sHosterUrl): return cHosterHandler().getHoster('vimeo') if ('openload' in sHosterUrl): return cHosterHandler().getHoster('openload') if ('oload.co' in sHosterUrl): return cHosterHandler().getHoster('openload') if ('thevideo.me' in sHosterUrl): return cHosterHandler().getHoster('thevideo_me') if ('vid.me' in sHosterUrl): return cHosterHandler().getHoster('vidme') if ('zstream' in sHosterUrl): return cHosterHandler().getHoster('zstream') if ('watching' in sHosterUrl): return cHosterHandler().getHoster('watching') if ('letwatch' in sHosterUrl): return cHosterHandler().getHoster('letwatch') if ('easyvid' in sHosterUrl): return cHosterHandler().getHoster('easyvid') if ('allvid' in sHosterUrl): return cHosterHandler().getHoster('allvid') if ('www.amazon' in sHosterUrl): return cHosterHandler().getHoster('amazon') if ('filepup' in sHosterUrl): return cHosterHandler().getHoster('filepup') if ('v-vids' in sHosterUrl): return cHosterHandler().getHoster('v_vids') if ('vid.ag' in sHosterUrl): return cHosterHandler().getHoster('vid_ag') if ('wat.tv' in sHosterUrl): return cHosterHandler().getHoster('wat_tv') if ('thevid' in sHosterUrl): return cHosterHandler().getHoster('thevid') if ('nosvideo' in sHosterUrl): return cHosterHandler().getHoster('nosvideo') if ('vimple.ru' in sHosterUrl): return cHosterHandler().getHoster('vimple') if ('allmyvideos.net' in sHosterUrl): return cHosterHandler().getHoster('allmyvideos') if ('idowatch' in sHosterUrl): return cHosterHandler().getHoster('idowatch') if ('wstream.' in sHosterUrl): return cHosterHandler().getHoster('wstream') if ('veevr.' in sHosterUrl): return cHosterHandler().getHoster('veevr') if ('watchvideo.' in sHosterUrl): return cHosterHandler().getHoster('watchvideo') if ('drive.google.com' in sHosterUrl): return cHosterHandler().getHoster('googledrive') if ('docs.google.com' in sHosterUrl): return cHosterHandler().getHoster('googledrive') if ('vidwatch' in sHosterUrl): return cHosterHandler().getHoster('vidwatch') if ('up2stream' in sHosterUrl): return cHosterHandler().getHoster('up2stream') #Lien telechargeable a convertir en stream if ('1fichier' in sHosterUrl): return cHosterHandler().getHoster('onefichier') if ('uptobox' in sHosterUrl): return cHosterHandler().getHoster('uptobox') if ('uplea.com' in sHosterUrl): return cHosterHandler().getHoster('uplea') if ('uploaded' in sHosterUrl or 'ul.to' in sHosterUrl): return cHosterHandler().getHoster('uploaded') #Si aucun hebergeur connu on teste les liens directs if (sHosterUrl[-4:] in '.mp4.avi.flv.m3u8'): return cHosterHandler().getHoster('lien_direct') #module resolver HS #try: # import urlresolver # host = urlresolver.HostedMediaFile(sHosterUrl) # if host: # return cHosterHandler().getHoster('resolver') #except: # pass return False
class cHoster(iHoster): def __init__(self): self.__sDisplayName = 'netu' self.__sFileName = self.__sDisplayName def getDisplayName(self): return self.__sDisplayName def setDisplayName(self, sDisplayName): self.__sDisplayName = sDisplayName + ' [COLOR skyblue]' + self.__sDisplayName + '[/COLOR]' def setFileName(self, sFileName): self.__sFileName = sFileName def getFileName(self): return self.__sFileName def setUrl(self, sUrl): self.__sUrl = sUrl.replace('https', 'http') self.__sUrl = sUrl.replace('http://netu.tv/', 'http://hqq.tv/') self.__sUrl = self.__sUrl.replace('http://waaw.tv/', 'http://hqq.tv/') self.__sUrl = self.__sUrl.replace( 'http://hqq.tv/watch_video.php?v=', 'http://hqq.tv/player/embed_player.php?vid=') def __getIdFromUrl(self): sPattern = 'https*:..hqq.tv.player.embed_player.php\?vid=([0-9A-Z]+)' oParser = cParser() aResult = oParser.parse(self.__sUrl, sPattern) if (aResult[0] == True): return aResult[1][0] return '' def __modifyUrl(self, sUrl): return def getPluginIdentifier(self): return 'netu' def isDownloadable(self): return False def isJDownloaderable(self): return True def getPattern(self): return '' def checkUrl(self, sUrl): return True def getUrl(self): return self.__sUrl def getMediaLink(self): return self.__getMediaLinkForGuest() def __getMediaLinkForGuest(self): api_call = '' id = self.__getIdFromUrl() self.__sUrl = 'http://hqq.tv/player/embed_player.php?vid=' + id + '&autoplay=no' headers = { 'User-Agent': UA, 'Host': 'hqq.tv', 'Referer': 'http://hqq.tv/', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type': 'text/html; charset=utf-8' } player_url = self.__sUrl req = urllib2.Request(player_url, None, headers) try: response = urllib2.urlopen(req) html = response.read() response.close() except urllib2.URLError, e: #xbmc.log( e.read()) #xbmc.log(e.reason) html = e.read() data = '' code_crypt = re.search('(;eval\(function\(w,i,s,e\){.+?\)\);)\s*<', html, re.DOTALL) if code_crypt: data = unwise.unwise_process(code_crypt.group(1)) else: cConfig().log('prb1') #fh = open('c:\\netu1.txt', "w") #fh.write(data) #fh.close() if data: iss = GetIp() vid = re.search('var vid *= *"([^"]+)";', data, re.DOTALL).group(1) at = re.search('var at *= *"([^"]+)";', data, re.DOTALL).group(1) http_referer = re.search('var http_referer *= *"([^"]+)";', data, re.DOTALL).group(1) _pass = '' url2 = "http://hqq.tv/sec/player/embed_player.php?iss=" + iss + "&vid=" + vid + "&at=" + at + "&autoplayed=yes&referer=on&http_referer=" + http_referer + "pass="******"&embed_from=&need_captcha=0" req = urllib2.Request(url2, None, headers) try: response = urllib2.urlopen(req) data = response.read() response.close() except urllib2.URLError, e: #xbmc.log( e.read()) #xbmc.log(e.reason) data = e.read() data = urllib.unquote(data) data = DecodeAllThePage(data) at = re.search(r'var\s*at\s*=\s*"([^"]*?)"', data) l = re.search(r'link_1: ([a-zA-Z]+), server_1: ([a-zA-Z]+)', data) vid_server = re.search(r'var ' + l.group(2) + ' = "([^"]+)"', data).group(1) vid_link = re.search(r'var ' + l.group(1) + ' = "([^"]+)"', data).group(1) #new video id, not really usefull m = re.search(r' vid: "([a-zA-Z0-9]+)"}', data) if m: id = m.group(1) if vid_server and vid_link and at: #get_data = {'server': vid_server.group(1), 'link': vid_link.group(1), 'at': at.group(1), 'adb': '0/','b':'1','vid':id} #,'iss':'MzEuMz' get_data = { 'server_1': vid_server, 'link_1': vid_link, 'at': at.group(1), 'adb': '0/', 'b': '1', 'vid': id } #xbmc.log(str(get_data)) headers['x-requested-with'] = 'XMLHttpRequest' req = urllib2.Request( "http://hqq.tv/player/get_md5.php?" + urllib.urlencode(get_data), None, headers) try: response = urllib2.urlopen(req) except urllib2.URLError, e: cConfig().log(str(e.read())) cConfig().log(str(e.reason)) data = response.read() response.close() #fh = open('c:\\netu3.txt', "w") #fh.write(data) #fh.close() file_url = re.search(r'"file"\s*:\s*"([^"]*?)"', data) if file_url: list_url = _decode2(file_url.group(1).replace('\\', '')) #xbmc.log(list_url) #Hack, je sais pas si ca va durer longtemps, mais indispensable sur certains fichiers list_url = list_url.replace("?socket", ".mp4.m3u8")
def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() #Recuperation qualitee qualite = '' sPattern = '<b>Qualité :<\/b><\/span> +?<p class="text">([^<>()|]+)(?:\(.+?\))*[ |]*.+?<\/p>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: qualite = ' [' + aResult[1][0] + ']' qualite = qualite.replace('VF', '') qualite = qualite.replace('VOSTFR', '') qualite = qualite.replace(' ]', ']') #Recup langue langue = '' sPattern = '<a href="#(video[0-9]+?)" title=".+?" class="border-3"><span>.+?(\[.+?\])<\/span><\/a><\/li>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: langue = aResult[1] sPattern = '<div class="fstory-video-block" id="(.+?)">.+?<iframe.+?src=[\'|"](.+?)[\'|"]' aResult = oParser.parse(sHtmlContent, sPattern) sMovieTitle = sMovieTitle + qualite 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 sMovieTitle2 = sMovieTitle #Rajout lanques for aEntry9 in langue: if aEntry9[0] == aEntry[0]: #sMovieTitle2 = sMovieTitle + aEntry9[1] sMovieTitle2 = '%s %s' % (sMovieTitle, aEntry9[1]) sHosterUrl = str(aEntry[1]) oHoster = cHosterGui().checkHoster(sHosterUrl) sMovieTitle2 = cUtil().DecoTitle(sMovieTitle2) if (oHoster != False): oHoster.setDisplayName(sMovieTitle2) oHoster.setFileName(sMovieTitle2) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) cConfig().finishDialog(dialog) oGui.setEndOfDirectory()
def showHoster(self, oGui, oHoster, sMediaUrl, sThumbnail, bGetRedirectUrl=False): oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('title') oGuiElement = cGuiElement() oGuiElement.setSiteName(self.SITE_NAME) #oGuiElement.setFunction('showHosterMenu') oGuiElement.setFunction('play') oGuiElement.setTitle(oHoster.getDisplayName()) #oGuiElement.setThumbnail(sThumbnail) # if (oInputParameterHandler.exist('sMeta')): # sMeta = oInputParameterHandler.getValue('sMeta') # oGuiElement.setMeta(int(sMeta)) oGuiElement.setFileName(oHoster.getFileName()) oGuiElement.getInfoLabel() oGuiElement.setCat(4) #oGuiElement.setThumbnail(xbmc.getInfoLabel('ListItem.Art(thumb)')) if sThumbnail: oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setMeta(1) oGuiElement.setIcon('host.png') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('sMediaUrl', sMediaUrl) #oOutputParameterHandler.addParameter('sThumbnail', oGuiElement.getThumbnail()) oOutputParameterHandler.addParameter('sHosterIdentifier', oHoster.getPluginIdentifier()) oOutputParameterHandler.addParameter('bGetRedirectUrl', bGetRedirectUrl) oOutputParameterHandler.addParameter('sFileName', oHoster.getFileName()) oOutputParameterHandler.addParameter('sTitle', oHoster.getDisplayName()) oOutputParameterHandler.addParameter('sId', 'cHosterGui') oOutputParameterHandler.addParameter('siteUrl', sMediaUrl) #oOutputParameterHandler.addParameter('sFav', 'play') #oOutputParameterHandler.addParameter('sCat', '4') #existe dans le menu krypton 17 if not util.isKrypton(): oGui.createContexMenuWatch(oGuiElement, oOutputParameterHandler) #context playlit menu oContext = cContextElement() oContext.setFile('cHosterGui') oContext.setSiteName(self.SITE_NAME) oContext.setFunction('addToPlaylist') oContext.setTitle(cConfig().getlanguage(30201)) oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) #Download menu if (oHoster.isDownloadable() == True): oContext = cContextElement() oContext.setFile('cDownload') oContext.setSiteName('cDownload') oContext.setFunction('AddtoDownloadList') oContext.setTitle(cConfig().getlanguage(30202)) oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) if (oHoster.isDownloadable() == True): #Beta context download and view menu oContext = cContextElement() oContext.setFile('cDownload') oContext.setSiteName('cDownload') oContext.setFunction('AddtoDownloadListandview') oContext.setTitle('DL et Visualiser') oContext.setOutputParameterHandler(oOutputParameterHandler) oGuiElement.addContextItem(oContext) #Upload menu if cInputParameterHandler( ).getValue('site') != 'siteuptobox' and cConfig().getSetting( 'hoster_uptobox_premium' ) == 'true' and oHoster.getPluginIdentifier( ) == 'uptobox' or oHoster.getPluginIdentifier() == 'uptostream': oGui.CreateSimpleMenu( oGuiElement, oOutputParameterHandler, 'siteuptobox', 'siteuptobox', 'AddmyAccount', '[COLOR dodgerblue]Ajouter à mon compte Uptobox[/COLOR]') #Upload url vers upto if cConfig().getSetting( 'hoster_uptobox_premium' ) == 'true' and oHoster.getPluginIdentifier( ) == 'onefichier' or oHoster.getPluginIdentifier() == 'uplea': oGui.CreateSimpleMenu( oGuiElement, oOutputParameterHandler, 'siteuptobox', 'siteuptobox', 'UptomyAccount', '[COLOR dodgerblue]Ajouter à mon compte Uptobox[/COLOR]') #context FAV menu oGui.createContexMenuFav(oGuiElement, oOutputParameterHandler) #context Library menu oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, 'cLibrary', 'cLibrary', 'setLibrary', '[COLOR teal]Ajouter à la librairie[/COLOR]') #bug oGui.addHost(oGuiElement, oOutputParameterHandler)
def showMovies(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') # modif url par Gregwar if '?' in sUrl: sUrl += '&r=n' else: sUrl += '?r=n' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern1 = '<img src="([^"]+?)" width=".+?<h2>(.+?)</h2>.*?<h3>(.+?)</h3>.+?<p>([^<]+)</p><a class="btn.+?href="(.+?)"' sPattern2 = '<img src="([^"]+)" width=".+?<a href="([^"]+)">.+?title="(.+?)".+?data-tooltip="Synopsis *: *([^<]+)">.+?<h3>(.+?)</h3>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern2) if not (aResult[0] == True): aResult = oParser.parse(sHtmlContent, sPattern1) 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 not sUrl.startswith('http://www.kaydo.ws/series.php' ) and 'serie' in sUrl or 'genre' in sUrl: sThumbnail = URL_MAIN + str(aEntry[0]) siteUrl = URL_MAIN + str(aEntry[4]) sCom = str(aEntry[3]) sTitle = ('%s (%s)') % (str(aEntry[1]), str(aEntry[2]).replace( ' - COMP', 'COMP')) title = aEntry[1] else: sThumbnail = URL_MAIN + str(aEntry[0]) siteUrl = URL_MAIN + str(aEntry[1]) sCom = str(aEntry[3]) sTitle = ('%s (%s)') % (str(aEntry[2]), str(aEntry[4])) title = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', title) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) if 'details-serie.php' in siteUrl: oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, 'series.png', sThumbnail, sCom, oOutputParameterHandler) elif '/series' in siteUrl: oGui.addTV(SITE_IDENTIFIER, 'seriesHosters', sTitle, 'series.png', sThumbnail, sCom, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, 'films.png', sThumbnail, sCom, 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) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() if 'reddit' in sUrl: TimeUTC = TimeET() sPattern = 'utm_name=nbastreams".+?>Game Thread:(.+?)</a>.+?<ul class=".+?"><li class=".+?"><a href="(.+?)"' oGui.addText(SITE_IDENTIFIER,'[COLOR olive]Live NBA Game (@Reddit)[/COLOR]' + '[COLOR gray]' + ' [ Heure Locale ET : ' + '[/COLOR]' +TimeUTC+ '[COLOR gray]' + ' ]' + '[/COLOR]') elif 'category/201' in sUrl: sPattern = '<a href="([^"]+)">([^<]+)</a></h2>' else: sPattern = '<a href="([^"]+)">(?:\s*|)<img src="[^"]+" data-hidpi="(.+?)\?.+?" alt="([^"]+)"(?:width=".+?"|)' sDateReplay = '' sDate = '' 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) #listage game thread via reddit if 'reddit' in sUrl: try: sUrl2 = str(aEntry[1]) sTitle = str(aEntry[0]) sThumbnail = base64.b64decode(Logo_Reddit) sTitle2= sTitle.split("(") sTitle = sTitle2[0] sTimeLive = sTitle2[1] sTimeLive = sTimeLive.replace(')', '') sTitle = '[COLOR teal]' + sTimeLive + '[/COLOR]' + sTitle except: #erreur parse sThumbnail = ' ' sTitle = 'Erreur parse' sUrl2 = '' #listage replay&search else: if ('category/201' in sUrl): sTitle = str(aEntry[1]) sUrl2 = str(aEntry[0]) sThumbnail = ' ' else: sTitle = str(aEntry[2]) sUrl2 = str(aEntry[0]) sThumbnail = str(aEntry[1]) try: if 'category/nba' in sUrl: sTitle2 = sTitle.split(" – ") sTitle = sTitle2[0] sDateReplay = sTitle2[1] if (sDate != sDateReplay): oGui.addText(SITE_IDENTIFIER,'[COLOR olive]Replay[/COLOR]' + '[COLOR teal]' + ' / '+ sDateReplay + '[/COLOR]') sDate = sDateReplay except: pass try: if ('category/201' in sUrl) or ('?s=' in sUrl) or ('search/' in sUrl): if 'Game' in sTitle: sTitle2 = sTitle.split(":") sGame = sTitle2[0] +':' sTitle3 = sTitle2[1] else: sGame = 'Game: ' sTitle3 = sTitle sTitle3 = sTitle3.replace('\xe2\x80\x93', '-') sTitle = sTitle3.split("-") sTeam = sTitle[0] if sTitle[1]: sDatePlayoff = sTitle[1] else: sDatePlayoff = '' sTitle = '[COLOR olive]' + sGame + '[/COLOR]' + sTeam + '[COLOR teal]' +'/' + sDatePlayoff + '[/COLOR]' except: pass sTitle = sTitle.replace(' vs ', '[COLOR gray] vs [/COLOR]').replace('@', '[COLOR gray] vs [/COLOR]') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oOutputParameterHandler.addParameter('sDateReplay', sDateReplay) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, sUrl2, 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) else: if 'reddit' in sUrl: oGui.addText(SITE_IDENTIFIER,'(Aucun Match disponible via Reddit pour le moment)') else: oGui.addText(SITE_IDENTIFIER,'(Erreur -Replay non disponible)') if not sSearch: oGui.setEndOfDirectory()
sPattern = '<div class="img-block border-2">.*?<img src="(.*?)" alt="(.*?)" class="img-poster border-2 shadow-dark7" width="151" height="215".*?<a href="(http://www.vkstreamingfilm.*?)" title' else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="img-block border-2">.*?<img src="(.*?)" alt="(.*?)\sstreaming".*?<a href="(http://www.vkstreamingfilm.*?)" title' sHtmlContent = sHtmlContent.replace('<span class="likeThis">', '') 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, aEntry[1]) == 0: continue sThumbnail = str(aEntry[0]) if not 'vkstreamingfilm' in sThumbnail: sThumbnail = URL_MAIN[:-1] + sThumbnail #print sThumbnail
def replayGenres(self): self.__callpluging('REPLAYTV_GENRES', '[COLOR '+color_replaytvs+']'+cConfig().getlanguage(30136)+'[/COLOR]', 'replay_genres.png')
def checkHoster(self, sHosterUrl): #securitee if (not sHosterUrl): return False #Petit nettoyage sHosterUrl = sHosterUrl.split('|')[0] #Recuperation du host try: sHostName = sHosterUrl.split('/')[2] except: sHostName = sHosterUrl #L'user a active l'url resolver ? if cConfig().getSetting('UserUrlResolver') == 'true': import urlresolver hmf = urlresolver.HostedMediaFile(url=sHosterUrl) if hmf.valid_url(): tmp = self.getHoster('resolver') RH = sHosterUrl.split('/')[2] RH = RH.replace('www.', '') tmp.setRealHost(RH[:3].upper()) return tmp #Gestion classique if ('facebook' in sHostName): return self.getHoster('facebook') if ('novamov' in sHostName): return self.getHoster('novamov') if ('auroravid' in sHostName): return self.getHoster('auroravid') if (('divxstage' in sHostName) or ('cloudtime' in sHostName)): return self.getHoster('divxstage') if (('raptu.com' in sHostName) or ('rapidvideo' in sHostName)): return self.getHoster('raptu') if ('watchers.to' in sHostName): return self.getHoster('watchers') if (('videoweed' in sHostName) or ('bitvid' in sHostName)): return self.getHoster('videoweed') if ('vidoza.' in sHostName): return self.getHoster('vidoza') if (('youtube' in sHostName) or ('youtu.be' in sHostName)): return self.getHoster('youtube') if ('rutube' in sHostName): return self.getHoster('rutube') if ('nowvideo' in sHostName): return self.getHoster('nowvideo') if ('vk.com' in sHostName): return self.getHoster('vk') if ('vkontakte' in sHostName): return self.getHoster('vk') if ('vkcom' in sHostName): return self.getHoster('vk') if ('megawatch' in sHostName): return self.getHoster('megawatch') if ('vidto.me' in sHostName): return self.getHoster('vidto') if ('vidtodo.com' in sHostName): return self.getHoster('vidtodo') if ('vidzi' in sHostName): return self.getHoster('vidzi') if ('cloudy' in sHostName): return self.getHoster('cloudy') if ('filetrip' in sHostName): return self.getHoster('filetrip') if ('uptostream' in sHostName): return self.getHoster('uptostream') if (('dailymotion' in sHostName) or ('dai.ly' in sHostName)): return self.getHoster('dailymotion') if ('filez.' in sHostName): return self.getHoster('filez') if ('vodlocker' in sHostName): return self.getHoster('vodlocker') if ('mystream' in sHostName): return self.getHoster('mystream') if ('streamingentiercom/videophp?type=speed' in sHosterUrl): return self.getHoster('speedvideo') if ('speedvideo' in sHostName): return self.getHoster('speedvideo') if ('speedvid' in sHostName): return self.getHoster('speedvid') if (('netu' in sHostName) or ('hqq' in sHostName)): return self.getHoster('netu') if ('waaw' in sHostName): return self.getHoster('netu') if ('mail.ru' in sHostName): return self.getHoster('mailru') if ('videoraj' in sHostName): return self.getHoster('videoraj') if ('videohut' in sHostName): return self.getHoster('videohut') if ('onevideo' in sHostName): return self.getHoster('onevideo') if ('googlevideo' in sHostName): return self.getHoster('googlevideo') if ('picasaweb' in sHostName): return self.getHoster('googlevideo') if ('googleusercontent' in sHostName): return self.getHoster('googlevideo') if ('playreplay' in sHostName): return self.getHoster('playreplay') if ('streamin.to' in sHostName): return self.getHoster('streaminto') if ('vodlocker' in sHostName): return self.getHoster('vodlocker') if ('flashx' in sHostName): return self.getHoster('flashx') if ('easywatch' in sHostName): return self.getHoster('easywatch') if (('ok.ru' in sHostName) or ('odnoklassniki' in sHostName)): return self.getHoster('ok_ru') if ('vimeo.com' in sHostName): return self.getHoster('vimeo') if ('openload' in sHostName): return self.getHoster('openload') if ('oload.co' in sHostName): return self.getHoster('openload') if (('thevideo.me' in sHostName) or ('video.tt' in sHostName)): return self.getHoster('thevideo_me') if ('vid.me' in sHostName): return self.getHoster('vidme') if ('zstream' in sHostName): return self.getHoster('zstream') if ('watching' in sHostName): return self.getHoster('watching') if ('letwatch' in sHostName): return self.getHoster('letwatch') if ('easyvid' in sHostName): return self.getHoster('easyvid') if ('www.amazon' in sHostName): return self.getHoster('amazon') if ('filepup' in sHostName): return self.getHoster('filepup') if ('thevid' in sHostName): return self.getHoster('thevid') if ('nosvideo' in sHostName): return self.getHoster('nosvideo') if ('vimple.ru' in sHostName): return self.getHoster('vimple') if ('allmyvideos.net' in sHostName): return self.getHoster('allmyvideos') if ('idowatch' in sHostName): return self.getHoster('idowatch') if ('wstream.' in sHostName): return self.getHoster('wstream') if ('watchvideo.' in sHostName): return self.getHoster('watchvideo') if ('drive.google.com' in sHostName): return self.getHoster('googledrive') if ('docs.google.com' in sHostName): return self.getHoster('googledrive') if ('vidwatch' in sHostName): return self.getHoster('vidwatch') if ('up2stream' in sHostName): return self.getHoster('up2stream') if ('stream.moe' in sHostName): return self.getHoster('streammoe') if ('tune' in sHostName): return self.getHoster('tune') if ('sendvid' in sHostName): return self.getHoster('sendvid') if ('vidup' in sHostName): return self.getHoster('vidup') if ('vidbull' in sHostName): return self.getHoster('vidbull') if ('vidlox' in sHostName): return self.getHoster('vidlox') if ('stagevu' in sHostName): return self.getHoster('stagevu') if ('veehd.' in sHostName): return self.getHoster('veehd') if (('movshare' in sHostName) or ('wholecloud' in sHostName)): return self.getHoster('wholecloud') if ('gorillavid' in sHostName): return self.getHoster('gorillavid') if ('daclips' in sHostName): return self.getHoster('daclips') if ('kvid' in sHostName): return self.getHoster('kvid') if ('estream' in sHostName): return self.getHoster('estream') if ('hdvid' in sHostName): return self.getHoster('hdvid') if ('streamango' in sHostName): return self.getHoster('streamango') if ('vidabc' in sHostName): return self.getHoster('vidabc') if ('vshare' in sHostName): return self.getHoster('vshare') if ('giga' in sHostName): return self.getHoster('giga') if ('vidbom' in sHostName): return self.getHoster('vidbom') #if ('cloudvid' in sHostName): #return self.getHoster('cloudvid') #Lien telechargeable a convertir en stream if ('1fichier' in sHostName): return self.getHoster('onefichier') if ('uptobox' in sHostName): return self.getHoster('uptobox') if ('uplea.com' in sHostName): return self.getHoster('uplea') if ('uploaded' in sHostName or 'ul.to' in sHostName): return self.getHoster('uploaded') if ('kaydo.ws' in sHostName): return self.getHoster('lien_direct') #Si aucun hebergeur connu on teste les liens directs if (sHosterUrl[-4:] in '.mp4.avi.flv.m3u8'): return self.getHoster('lien_direct') return False
def replayReplay(self): self.__callpluging('REPLAYTV_REPLAYTV', '[COLOR '+color_replaytvs+']'+cConfig().getlanguage(30137)+'[/COLOR]', 'replay_host.png')
def showSearch(self): if (cConfig().getSetting("history-view") == 'true'): readdb = 'True' else: readdb = 'False' oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('disp', 'search1') oOutputParameterHandler.addParameter('readdb', readdb) sLabel1 = cConfig().getlanguage(30077)+": "+cConfig().getSetting('search1_label') oGui.addDir(SITE_IDENTIFIER, 'searchMovie', sLabel1, 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('disp', 'search2') oOutputParameterHandler.addParameter('readdb', readdb) sLabel2 = cConfig().getlanguage(30089)+": "+cConfig().getSetting('search2_label') oGui.addDir(SITE_IDENTIFIER, 'searchMovie', sLabel2, 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('disp', 'search3') oOutputParameterHandler.addParameter('readdb', readdb) sLabel3 = cConfig().getlanguage(30090)+": "+cConfig().getSetting('search3_label') oGui.addDir(SITE_IDENTIFIER, 'searchMovie', sLabel3, 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('disp', 'search4') oOutputParameterHandler.addParameter('readdb', readdb) sLabel4 = cConfig().getlanguage(30091)+": "+cConfig().getSetting('search4_label') oGui.addDir(SITE_IDENTIFIER, 'searchMovie', sLabel4, 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('disp', 'search10') oOutputParameterHandler.addParameter('readdb', readdb) oGui.addDir(SITE_IDENTIFIER, 'searchMovie', '[COLOR orange]Recherche: Alluc_ee[/COLOR]', 'search.png', oOutputParameterHandler) #history if (cConfig().getSetting("history-view") == 'true'): row = cDb().get_history() if row: oGui.addText(SITE_IDENTIFIER, "[COLOR azure]Votre Historique[/COLOR]") for match in row: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oOutputParameterHandler.addParameter('searchtext', match[1]) oOutputParameterHandler.addParameter('disp', match[2]) oOutputParameterHandler.addParameter('readdb', 'False') oGui.addDir(SITE_IDENTIFIER, 'searchMovie', "- "+match[1], 'search.png', oOutputParameterHandler) if row: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'delSearch', '[COLOR red]Supprimer l\'historique[/COLOR]', 'search.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def sportSports(self): self.__callpluging('SPORT_SPORTS', '[COLOR '+color_sports+']'+cConfig().getlanguage(30113)+'[/COLOR]', 'sport.png')
def replayNews(self): self.__callpluging('REPLAYTV_NEWS', '[COLOR '+color_replaytvs+']'+cConfig().getlanguage(30133)+'[/COLOR]', 'replay_news.png')
def animVostfrs(self): self.__callpluging('ANIM_VOSTFRS', '[COLOR '+color_anims+']'+cConfig().getlanguage(30111)+'[/COLOR]', 'animes_vostfr.png')
def movieNets(self): self.__callpluging('MOVIE_NETS', '[COLOR '+color_videos+']'+cConfig().getlanguage(30114)+'[/COLOR]', 'buzz.png')
def animVfs(self): self.__callpluging('ANIM_VFS', '[COLOR '+color_anims+']'+cConfig().getlanguage(30110)+'[/COLOR]', 'animes_vf.png')
def docDocs(self): self.__callpluging('DOC_DOCS', '[COLOR '+color_docs+']'+cConfig().getlanguage(30112)+'[/COLOR]', 'doc.png')
def animAnims(self): self.__callpluging('ANIM_ANIMS', '[COLOR '+color_anims+']'+cConfig().getlanguage(30140)+'[/COLOR]', 'animes_host.png')
def animGenres(self): self.__callpluging('ANIM_GENRES', '[COLOR '+color_films+']'+cConfig().getlanguage(30131)+'[/COLOR]', 'animes_genres.png')
def serieVostfrs(self): self.__callpluging('SERIE_VOSTFRS', '[COLOR '+color_series+']'+cConfig().getlanguage(30108)+'[/COLOR]', 'series_vostfr.png')
def animNews(self): self.__callpluging('ANIM_NEWS', '[COLOR '+color_anims+']'+cConfig().getlanguage(30109)+'[/COLOR]', 'animes_news.png')
def load(self): oGui = cGui() if (cConfig().getSetting('home_cherches') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showSearch', '[COLOR '+color_cherches+']'+cConfig().getlanguage(30076)+'[/COLOR]', 'search.png', oOutputParameterHandler) if (cConfig().getSetting('home_cherchev') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir('themoviedb_org', 'load', '[COLOR '+color_cherchev+']'+cConfig().getlanguage(30088)+'[/COLOR]', 'searchtmdb.png', oOutputParameterHandler) if (cConfig().getSetting('home_tvs') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir('freebox', 'load', '[COLOR '+color_tvs+']'+cConfig().getlanguage(30115)+'[/COLOR]', 'tv.png', oOutputParameterHandler) if (cConfig().getSetting('home_replaytvs') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showReplay', '[COLOR '+color_replaytvs+']'+cConfig().getlanguage(30117)+'[/COLOR]', 'replay.png', oOutputParameterHandler) if (cConfig().getSetting('home_films') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR '+color_films+']'+cConfig().getlanguage(30120)+'[/COLOR]', 'films.png', oOutputParameterHandler) if (cConfig().getSetting('home_series') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showSeries', '[COLOR '+color_series+']'+cConfig().getlanguage(30121)+'[/COLOR]', 'series.png', oOutputParameterHandler) if (cConfig().getSetting('home_anims') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showAnimes', '[COLOR '+color_anims+']'+cConfig().getlanguage(30122)+'[/COLOR]', 'animes.png', oOutputParameterHandler) if (cConfig().getSetting('home_docs') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'docDocs', '[COLOR '+color_docs+']'+cConfig().getlanguage(30112)+'[/COLOR]', 'doc.png', oOutputParameterHandler) if (cConfig().getSetting('home_sports') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'sportSports', '[COLOR '+color_sports+']'+cConfig().getlanguage(30113)+'[/COLOR]', 'sport.png', oOutputParameterHandler) if (cConfig().getSetting('home_videos') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showNets', '[COLOR '+color_videos+']'+cConfig().getlanguage(30114)+'[/COLOR]', 'buzz.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir('cFav', 'getFavourites', '[COLOR teal]'+cConfig().getlanguage(30210)+'[/COLOR]', 'mark.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir('cDownload', 'getDownload', '[COLOR teal]Téléchargement[/COLOR]', 'download.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir('cLibrary', 'getLibrary', 'Librairie beta', 'download.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showSources', cConfig().getlanguage(30116), 'host.png', oOutputParameterHandler) if (cConfig().getSetting('home_update') == 'true'): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') oGui.addDir(SITE_IDENTIFIER, 'showUpdate', '[COLOR green]Mise a jour disponible[/COLOR]', 'update.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def serieGenres(self): self.__callpluging('SERIE_GENRES', '[COLOR '+color_series+']'+cConfig().getlanguage(30132)+'[/COLOR]', 'series_genres.png')
def serieNews(self): self.__callpluging('SERIE_NEWS', '[COLOR '+color_series+']'+cConfig().getlanguage(30106)+'[/COLOR]', 'series_news.png')
def serieVfs(self): self.__callpluging('SERIE_VFS', '[COLOR '+color_series+']'+cConfig().getlanguage(30107)+'[/COLOR]', 'series_vf.png')