# -*- coding: utf-8 -*- #------------------------------------------------------------ # pelisalacarta - XBMC Plugin # Canal para Divxtotal # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ #------------------------------------------------------------ import string import os import re import sys import urllib from core import config from core import logger from core import scrapertools from core import servertools from core import httptools from platformcode import platformtools from core.item import Item, InfoLabels import xbmc import xbmcgui from core import tmdb from core.scrapertools import decodeHtmlentities as dhe import unicodedata from threading import Thread header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'} ACTION_SHOW_FULLSCREEN = 36 ACTION_GESTURE_SWIPE_LEFT = 511 ACTION_SELECT_ITEM = 7 ACTION_PREVIOUS_MENU = 10 ACTION_MOVE_LEFT = 1 ACTION_MOVE_RIGHT = 2 ACTION_MOVE_DOWN = 4 ACTION_MOVE_UP = 3 OPTION_PANEL = 6 OPTIONS_OK = 5 __modo_grafico__ = config.get_setting('modo_grafico', "divxtotal") DEBUG = config.get_setting("debug") #Para la busqueda en bing evitando baneos def browser(url): import mechanize # Utilizamos Browser mechanize para saltar problemas con la busqueda en bing br = mechanize.Browser() # Browser options br.set_handle_equiv(False) br.set_handle_gzip(True) br.set_handle_redirect(True) br.set_handle_referer(False) br.set_handle_robots(False) # Follows refresh 0 but not hangs on refresh > 0 br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) # Want debugging messages? #br.set_debug_http(True) #br.set_debug_redirects(True) #br.set_debug_responses(True) # User-Agent (this is cheating, ok?) #br.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/7.1.7 Safari/537.85.16')] #br.addheaders =[('Cookie','SRCHD=AF=QBRE; domain=.bing.com; expires=25 de febrero de 2018 13:00:28 GMT+1; MUIDB=3B942052D204686335322894D3086911; domain=www.bing.com;expires=24 de febrero de 2018 13:00:28 GMT+1')] # Open some site, let's pick a random one, the first that pops in mind r = br.open(url) response = r.read() print response if "img,divreturn" in response: r = br.open("http://ssl-proxy.my-addr.org/myaddrproxy.php/"+url) print "prooooxy" response = r.read() return response api_key="2e2160006592024ba87ccdf78c28f49f" api_fankey ="dffe90fba4d02c199ae7a9e71330c987" def mainlist(item): logger.info("pelisalacarta.divxtotal mainlist") itemlist=[] itemlist.append( item.clone(title="[COLOR orange][B]Películas[/B][/COLOR]", action="scraper",url="http://www.divxtotal.com/peliculas/",thumbnail="http://imgur.com/A4zN3OP.png", fanart="http://imgur.com/fdntKsy.jpg",contentType= "movie")) itemlist.append( item.clone(title="[COLOR orange][B] Películas HD[/B][/COLOR]", action="scraper",url="http://www.divxtotal.com/peliculas-hd/",thumbnail="http://imgur.com/A4zN3OP.png", fanart="http://imgur.com/fdntKsy.jpg",contentType= "movie")) itemlist.append( itemlist[-1].clone(title="[COLOR orange][B]Series[/B][/COLOR]", action="scraper",url="http://www.divxtotal.com/series/",thumbnail="http://imgur.com/GPX2wLt.png",contentType="tvshow")) itemlist.append( itemlist[-1].clone(title="[COLOR orangered][B]Buscar[/B][/COLOR]", action="search",thumbnail="http://imgur.com/aiJmi3Z.png")) return itemlist def search(item,texto): logger.info("pelisalacarta.divxtotal search") texto = texto.replace(" ","+") item.url = "http://www.divxtotal.com/?s="+texto item.extra="search" try: return buscador(item) except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] def buscador(item): logger.info("pelisalacarta.divxtotal buscador") itemlist=[] data = httptools.downloadpage(item.url,headers=header, cookies=False).data data = re.sub(r"\n|\r|\t|\s{2}| ","",data) logger.info("mecagoooo") logger.info(data) patron=scrapertools.find_multiple_matches(data,'.*?-left">(.*?)') for url,title,check in patron : logger.info("pacooo") logger.info(check) if "N/A" in check: checkmt="tvshow" else: checkmt="movie" titulo = title title= re.sub(r"!|¡|HD|\d+\d+\d+\d+|\(.*?\).*\[.*?]\]","",title) title= re.sub(r"’|PRE-Estreno","'",title) if checkmt =="movie": new_item= item.clone(action="findvideos", title=titulo, url=url, fulltitle=title,contentTitle=title, contentType="movie",library=True) else: if item.extra=="search": new_item= item.clone(action="findtemporadas", title=titulo, url=url, fulltitle=title,contentTitle=title, show=title,contentType="tvshow",library=True) else: new_item= item.clone(action="findvideos", title=titulo, url=url, fulltitle=title,contentTitle=title, show=title,contentType="tvshow",library=True) new_item.infoLabels['year'] = get_year(url) itemlist.append(new_item) ## Paginación next=scrapertools.find_single_match(data,"