mino60

Untitled

Jul 8th, 2016
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.27 KB | None | 0 0
  1. #-*- coding: utf-8 -*-
  2. #Venom.
  3. from resources.lib.config import cConfig
  4. from resources.lib.gui.hoster import cHosterGui
  5. from resources.lib.handler.rechercheHandler import cRechercheHandler
  6. from resources.lib.handler.hosterHandler import cHosterHandler
  7. from resources.lib.gui.gui import cGui
  8. from resources.lib.favourite import cFav
  9. from resources.lib.gui.guiElement import cGuiElement
  10. from resources.lib.handler.inputParameterHandler import cInputParameterHandler
  11. from resources.lib.handler.outputParameterHandler import cOutputParameterHandler
  12. from resources.lib.handler.requestHandler import cRequestHandler
  13. from resources.lib.parser import cParser
  14. from resources.lib.util import cUtil
  15. import urllib, unicodedata, re
  16. import xbmcgui
  17. import xbmc
  18.  
  19. try:    import json
  20. except: import simplejson as json
  21.  
  22. SITE_IDENTIFIER = 'imdb_com'
  23. SITE_NAME = '[COLOR orange]imDB[/COLOR]'
  24. SITE_DESC = 'Base de données video.'
  25.  
  26. #doc de l'api http://docs.themoviedb.apiary.io/
  27.  
  28. URL_MAIN = 'http://imdb.com/'
  29. 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')
  30.  
  31. POSTER_URL = 'https://image.tmdb.com/t/p/w396'
  32. #FANART_URL = 'https://image.tmdb.org/t/p/w780/'
  33. FANART_URL = 'https://image.tmdb.com/t/p/w1280'
  34. #FANART_URL = 'https://image.tmdb.org/t/p/original/'
  35.  
  36.  
  37. #https://api.themoviedb.org/3/movie/popular?api_key=92ab39516970ab9d86396866456ec9b6
  38.  
  39. #<views>551,504,503,508,515,50,51,500,550,560,501,572,573,574,570,571,505,511</views>
  40. #viewmode = 500 Film
  41. #viewmode = 503 Film + Information
  42. #viewmode = 50  Liste
  43.  
  44.  
  45. def load():
  46.     oGui = cGui()
  47.  
  48.     oOutputParameterHandler = cOutputParameterHandler()
  49.     oOutputParameterHandler.addParameter('siteUrl', MOVIE_FR[0])
  50.     oGui.addDir(SITE_IDENTIFIER, MOVIE_FR[1], 'Films Francais', 'films.png', oOutputParameterHandler)
  51.  
  52.  
  53.     oGui.setEndOfDirectory()
  54.  
  55. def showSearchMovie():
  56.     oGui = cGui()
  57.  
  58.     sSearchText = oGui.showKeyBoard()
  59.     if (sSearchText != False):
  60.         sUrl = '/search/movie?query=' + sSearchText
  61.         showMovies(sUrl)
  62.         oGui.setEndOfDirectory()
  63.         return
  64.        
  65. def showMovies(sSearch=''):
  66.     oGui = cGui()
  67.     if sSearch:
  68.       sUrl = sSearch
  69.     else:
  70.         oInputParameterHandler = cInputParameterHandler()
  71.         sUrl = oInputParameterHandler.getValue('siteUrl')
  72.    
  73.     oRequestHandler = cRequestHandler(sUrl)
  74.     sHtmlContent = oRequestHandler.request();
  75.     #sPattern = '<img class=".+?" src="([^<]+)" title="(.+?)".+?<a href="(.+?)"'
  76.     #sPattern = '<img class="imgpic" src="(.+?)".+?/>.+?<h3.+?><a href="(.+?)"  title=".+?">.+?<strong>(.+?)</strong></a>.+?</h3>.+?<div class="infob">.+?<p>(.+?)</p>'
  77.     sPattern = '<td class="image">.*?<a href=".+?" title=".+?"><img src="(.*?)" alt=".*?" title=".*?".*?<a href="([^<]+)">(.*?)</a>'
  78.    
  79.     oParser = cParser()
  80.     aResult = oParser.parse(sHtmlContent, sPattern)
  81.    
  82.     if (aResult[0] == True):
  83.         total = len(aResult[1])
  84.         dialog = cConfig().createDialog(SITE_NAME)
  85.         for aEntry in aResult[1]:
  86.             cConfig().updateDialog(dialog, total)
  87.             if dialog.iscanceled():
  88.                 break
  89.  
  90.             #sTitle = aEntry[2].replace('streaming','').replace('Streaming','')
  91.            
  92.             sCom = aEntry[3]
  93.             #sCom = sCom.decode("utf-8", "ignore")
  94.             sCom = sCom.decode("unicode_escape").encode("latin-1")
  95.            
  96.             oOutputParameterHandler = cOutputParameterHandler()
  97.             oOutputParameterHandler.addParameter('siteUrl', str(aEntry[0]))
  98.             oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle))
  99.             oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[1]))
  100.             if '/serie/' in sUrl or '/serie/' in aEntry[0]:
  101.                 oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, aEntry[1], aEntry[2], sCom , oOutputParameterHandler)
  102.             else:
  103.                 oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, aEntry[1], aEntry[2], sCom, oOutputParameterHandler)
  104.  
  105.         cConfig().finishDialog(dialog)
  106.         #sPattern = '<div class="img-block border-2">.*?<img src="(.*?)" alt="(.*?)\sstreaming".*?<a href="(http://www.vkstreamingfilm.*?)" title'
  107.  
  108.  
  109.         if (iPage > 0):
  110.             iNextPage = int(iPage) + 1
  111.             oOutputParameterHandler = cOutputParameterHandler()
  112.             oOutputParameterHandler.addParameter('siteUrl', sUrl)
  113.             oOutputParameterHandler.addParameter('page', iNextPage)
  114.             oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page '+str(iNextPage)+' >>>[/COLOR]', 'next.png', oOutputParameterHandler)
  115.  
  116.            
  117.     #test pr chnagement mode
  118.     xbmc.executebuiltin('Container.SetViewMode(500)')
  119.     #bmcgui.ListItem.select(1)        
  120.            
  121.     oGui.setEndOfDirectory()
  122.  
  123.    
  124.  
  125. def __checkForNextPage(sHtmlContent):
  126.     sPattern = "<span class='page-numbers current'>.+?</span><a class='page-numbers' href='([^<]+)'>.+?</a>"
  127.     oParser = cParser()
  128.     aResult = oParser.parse(sHtmlContent, sPattern)
  129.     if (aResult[0] == True):
  130.         return aResult[1][0]
  131.  
  132.     return False
  133.    
  134.  
  135. def showHosters():
  136.  
  137.     oInputParameterHandler = cInputParameterHandler()
  138.     sUrl = oInputParameterHandler.getValue('siteUrl')
  139.     sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
  140.     sThumbnail = oInputParameterHandler.getValue('sThumbnail')
  141.    
  142.     sExtraTitle = ''
  143.     #si c'est une serie
  144.     if sUrl != 'none':
  145.         sExtraTitle = sUrl.split('|')[1]
  146.         sMovieTitle = sUrl.split('|')[0]
  147.      
  148.     #nettoyage du nom pr la recherche
  149.     #print 'avant ' + sMovieTitle
  150.     sMovieTitle = unicode(sMovieTitle, 'utf-8')#converti en unicode pour aider aux convertions
  151.     sMovieTitle = unicodedata.normalize('NFD', sMovieTitle).encode('ascii', 'ignore').decode("unicode_escape")#vire accent et '\'
  152.     sMovieTitle = sMovieTitle.encode("utf-8").lower() #on repasse en utf-8
  153.    
  154.     sMovieTitle = re.sub('\(.+?\)',' ', sMovieTitle) #vire les tags entre parentheses
  155.    
  156.     #modif venom si le titre comporte un - il doit le chercher
  157.     sMovieTitle = re.sub(r'[^a-z -]', ' ', sMovieTitle) #vire les caracteres a la con qui peuvent trainer
  158.    
  159.     sMovieTitle = re.sub('( |^)(le|la|les|du|au|a|l)( |$)',' ', sMovieTitle) #vire les articles
  160.  
  161.     sMovieTitle = re.sub(' +',' ',sMovieTitle) #vire les espaces multiples et on laisse les espaces sans modifs car certains codent avec %20 d'autres avec +
  162.     #print 'apres ' + sMovieTitle
  163.  
  164.     dialog3 = xbmcgui.Dialog()
  165.     ret = dialog3.select('Selectionner un Moteur de Recherche',['Vstream (Fiable mais plus complexe)','Alluc (Simple mais resultats non garantis)'])
  166.  
  167.     if ret == 0:
  168.         VstreamSearch(sMovieTitle)
  169.     elif ret == 1:
  170.         AllucSearch(sMovieTitle + sExtraTitle)
  171.  
  172.  
  173. def VstreamSearch(sMovieTitle):
  174.    
  175.     oGui = cGui()
  176.     oInputParameterHandler = cInputParameterHandler()
  177.     sUrl = oInputParameterHandler.getValue('siteUrl')
  178.    
  179.     #Type de recherche
  180.     sDisp = oInputParameterHandler.getValue('disp')
  181.  
  182.     if not(sDisp):
  183.         sDisp = 'search1'
  184.         if sUrl != 'none':
  185.             sDisp = 'search2'
  186.    
  187.     oHandler = cRechercheHandler()
  188.     oHandler.setText(sMovieTitle)
  189.     oHandler.setDisp(sDisp)
  190.     aPlugins = oHandler.getAvailablePlugins()
  191.                
  192.     oGui.setEndOfDirectory()
  193.    
  194. def AllucSearch(sMovieTitle):
  195.     oGui = cGui()
  196.    
  197.     exec "from resources.sites import alluc_ee as search"
  198.     sUrl = 'http://www.alluc.ee/stream/lang%3Afr+' + sMovieTitle
  199.     searchUrl = "search.%s('%s')" % ('showMovies', sUrl)
  200.     exec searchUrl
  201.    
  202.     oGui.setEndOfDirectory()
  203.    
  204. def addMoviedb(sId, sFunction, sLabel, sIcon, sThumbnail, fanart, oOutputParameterHandler = ''):
  205.    
  206.     #addMoviedb(oGui, SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumbnail, sFanart, oOutputParameterHandler)
  207.     oGui = cGui()
  208.     oGuiElement = cGuiElement()
  209.     oGuiElement.setSiteName(sId)
  210.     oGuiElement.setFunction(sFunction)
  211.     oGuiElement.setTitle(sLabel)
  212.     #oGuiElement.setIcon(sIcon)
  213.     oGuiElement.setMeta(0)
  214.     #oGuiElement.setThumbnail(sThumbnail)
  215.     #oGuiElement.setFanart(fanart)
  216.    
  217.     #cGui.addFolder(oGuiElement, oOutputParameterHandler)
  218.     oGui.addFolder(oGuiElement, oOutputParameterHandler, False)
Advertisement
Add Comment
Please, Sign In to add comment