Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-*- coding: utf-8 -*-
- #Venom.
- from resources.lib.config import cConfig
- from resources.lib.gui.hoster import cHosterGui
- from resources.lib.handler.rechercheHandler import cRechercheHandler
- from resources.lib.handler.hosterHandler import cHosterHandler
- from resources.lib.gui.gui import cGui
- from resources.lib.favourite import cFav
- from resources.lib.gui.guiElement import cGuiElement
- from resources.lib.handler.inputParameterHandler import cInputParameterHandler
- from resources.lib.handler.outputParameterHandler import cOutputParameterHandler
- from resources.lib.handler.requestHandler import cRequestHandler
- from resources.lib.parser import cParser
- from resources.lib.util import cUtil
- import urllib, unicodedata, re
- import xbmcgui
- import xbmc
- try: import json
- except: import simplejson as json
- SITE_IDENTIFIER = 'imdb_com'
- SITE_NAME = '[COLOR orange]imDB[/COLOR]'
- SITE_DESC = 'Base de données video.'
- #doc de l'api http://docs.themoviedb.apiary.io/
- URL_MAIN = 'http://imdb.com/'
- MOVIE_FR = ( URL_MAIN + 'search/title?title_type=feature,tv_movie&num_votes=100,&production_status=released&languages=fr%7c1&sort=moviemeter,asc&count=40&start=1', 'showMovies')
- POSTER_URL = 'https://image.tmdb.com/t/p/w396'
- #FANART_URL = 'https://image.tmdb.org/t/p/w780/'
- FANART_URL = 'https://image.tmdb.com/t/p/w1280'
- #FANART_URL = 'https://image.tmdb.org/t/p/original/'
- #https://api.themoviedb.org/3/movie/popular?api_key=92ab39516970ab9d86396866456ec9b6
- #<views>551,504,503,508,515,50,51,500,550,560,501,572,573,574,570,571,505,511</views>
- #viewmode = 500 Film
- #viewmode = 503 Film + Information
- #viewmode = 50 Liste
- def load():
- oGui = cGui()
- oOutputParameterHandler = cOutputParameterHandler()
- oOutputParameterHandler.addParameter('siteUrl', MOVIE_FR[0])
- oGui.addDir(SITE_IDENTIFIER, MOVIE_FR[1], 'Films Francais', 'films.png', oOutputParameterHandler)
- oGui.setEndOfDirectory()
- def showSearchMovie():
- oGui = cGui()
- sSearchText = oGui.showKeyBoard()
- if (sSearchText != False):
- sUrl = '/search/movie?query=' + sSearchText
- showMovies(sUrl)
- oGui.setEndOfDirectory()
- return
- def showMovies(sSearch=''):
- oGui = cGui()
- if sSearch:
- sUrl = sSearch
- else:
- oInputParameterHandler = cInputParameterHandler()
- sUrl = oInputParameterHandler.getValue('siteUrl')
- oRequestHandler = cRequestHandler(sUrl)
- sHtmlContent = oRequestHandler.request();
- #sPattern = '<img class=".+?" src="([^<]+)" title="(.+?)".+?<a href="(.+?)"'
- #sPattern = '<img class="imgpic" src="(.+?)".+?/>.+?<h3.+?><a href="(.+?)" title=".+?">.+?<strong>(.+?)</strong></a>.+?</h3>.+?<div class="infob">.+?<p>(.+?)</p>'
- sPattern = '<td class="image">.*?<a href=".+?" title=".+?"><img src="(.*?)" alt=".*?" title=".*?".*?<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
- #sTitle = aEntry[2].replace('streaming','').replace('Streaming','')
- sCom = aEntry[3]
- #sCom = sCom.decode("utf-8", "ignore")
- sCom = sCom.decode("unicode_escape").encode("latin-1")
- oOutputParameterHandler = cOutputParameterHandler()
- oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0]))
- oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle))
- oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[1]))
- if '/serie/' in sUrl or '/serie/' in aEntry[0]:
- oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, aEntry[1], aEntry[2], sCom , oOutputParameterHandler)
- else:
- oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, aEntry[1], aEntry[2], sCom, oOutputParameterHandler)
- cConfig().finishDialog(dialog)
- #sPattern = '<div class="img-block border-2">.*?<img src="(.*?)" alt="(.*?)\sstreaming".*?<a href="(http://www.vkstreamingfilm.*?)" title'
- if (iPage > 0):
- iNextPage = int(iPage) + 1
- oOutputParameterHandler = cOutputParameterHandler()
- oOutputParameterHandler.addParameter('siteUrl', sUrl)
- oOutputParameterHandler.addParameter('page', iNextPage)
- oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page '+str(iNextPage)+' >>>[/COLOR]', 'next.png', oOutputParameterHandler)
- #test pr chnagement mode
- xbmc.executebuiltin('Container.SetViewMode(500)')
- #bmcgui.ListItem.select(1)
- oGui.setEndOfDirectory()
- def __checkForNextPage(sHtmlContent):
- sPattern = "<span class='page-numbers current'>.+?</span><a class='page-numbers' href='([^<]+)'>.+?</a>"
- oParser = cParser()
- aResult = oParser.parse(sHtmlContent, sPattern)
- if (aResult[0] == True):
- return aResult[1][0]
- return False
- def showHosters():
- oInputParameterHandler = cInputParameterHandler()
- sUrl = oInputParameterHandler.getValue('siteUrl')
- sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
- sThumbnail = oInputParameterHandler.getValue('sThumbnail')
- sExtraTitle = ''
- #si c'est une serie
- if sUrl != 'none':
- sExtraTitle = sUrl.split('|')[1]
- sMovieTitle = sUrl.split('|')[0]
- #nettoyage du nom pr la recherche
- #print 'avant ' + sMovieTitle
- sMovieTitle = unicode(sMovieTitle, 'utf-8')#converti en unicode pour aider aux convertions
- sMovieTitle = unicodedata.normalize('NFD', sMovieTitle).encode('ascii', 'ignore').decode("unicode_escape")#vire accent et '\'
- sMovieTitle = sMovieTitle.encode("utf-8").lower() #on repasse en utf-8
- sMovieTitle = re.sub('\(.+?\)',' ', sMovieTitle) #vire les tags entre parentheses
- #modif venom si le titre comporte un - il doit le chercher
- sMovieTitle = re.sub(r'[^a-z -]', ' ', sMovieTitle) #vire les caracteres a la con qui peuvent trainer
- sMovieTitle = re.sub('( |^)(le|la|les|du|au|a|l)( |$)',' ', sMovieTitle) #vire les articles
- sMovieTitle = re.sub(' +',' ',sMovieTitle) #vire les espaces multiples et on laisse les espaces sans modifs car certains codent avec %20 d'autres avec +
- #print 'apres ' + sMovieTitle
- dialog3 = xbmcgui.Dialog()
- ret = dialog3.select('Selectionner un Moteur de Recherche',['Vstream (Fiable mais plus complexe)','Alluc (Simple mais resultats non garantis)'])
- if ret == 0:
- VstreamSearch(sMovieTitle)
- elif ret == 1:
- AllucSearch(sMovieTitle + sExtraTitle)
- def VstreamSearch(sMovieTitle):
- oGui = cGui()
- oInputParameterHandler = cInputParameterHandler()
- sUrl = oInputParameterHandler.getValue('siteUrl')
- #Type de recherche
- sDisp = oInputParameterHandler.getValue('disp')
- if not(sDisp):
- sDisp = 'search1'
- if sUrl != 'none':
- sDisp = 'search2'
- oHandler = cRechercheHandler()
- oHandler.setText(sMovieTitle)
- oHandler.setDisp(sDisp)
- aPlugins = oHandler.getAvailablePlugins()
- oGui.setEndOfDirectory()
- def AllucSearch(sMovieTitle):
- oGui = cGui()
- exec "from resources.sites import alluc_ee as search"
- sUrl = 'http://www.alluc.ee/stream/lang%3Afr+' + sMovieTitle
- searchUrl = "search.%s('%s')" % ('showMovies', sUrl)
- exec searchUrl
- oGui.setEndOfDirectory()
- def addMoviedb(sId, sFunction, sLabel, sIcon, sThumbnail, fanart, oOutputParameterHandler = ''):
- #addMoviedb(oGui, SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, sFanart, oOutputParameterHandler)
- oGui = cGui()
- oGuiElement = cGuiElement()
- oGuiElement.setSiteName(sId)
- oGuiElement.setFunction(sFunction)
- oGuiElement.setTitle(sLabel)
- #oGuiElement.setIcon(sIcon)
- oGuiElement.setMeta(0)
- #oGuiElement.setThumbnail(sThumbnail)
- #oGuiElement.setFanart(fanart)
- #cGui.addFolder(oGuiElement, oOutputParameterHandler)
- oGui.addFolder(oGuiElement, oOutputParameterHandler, False)
Advertisement
Add Comment
Please, Sign In to add comment