I am trying to edit this channel with Italian contents http://casa-cinema.net
I understand it needs headers, found them with a ffox plugin, but I get a blank page when not an error.
So I am asking: what am I doing wrong? The rest should be easy as even if they have embed videos
the video urls are all speedvideo and nowvideo.
Thanks in advance.
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para piratestreaming
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os, sys
from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools
__channel__ = "casacinema"
__category__ = "F,S,A"
__type__ = "generic"
__title__ = "casacinema"
__language__ = "IT"
headers = [
['Host','http://casa-cinema.net/'],
['User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'],
['Accept-Language','it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3'],
['Accept-Encoding','gzip, deflate'],
['Cookie',' __cfduid=d840bd3e785f8920764c5e4a826a58a531438745692']
]
sito="http://casa-cinema.net/"
DEBUG = config.get_setting("debug")
def isGeneric():
return True
def mainlist(item):
logger.info("pelisalacarta.casacinema mainlist")
itemlist = []
itemlist.append( Item(channel=__channel__, title="[COLOR azure]Ultimi film inseriti[/COLOR]", action="peliculas", url=sito, thumbnail="http://dc584.4shared.com/img/XImgcB94/s7/13feaf0b538/saquinho_de_pipoca_01"))
#itemlist.append( Item(channel=__channel__, title="[COLOR azure]Categorie film[/COLOR]", action="categorias", url=sito, thumbnail="http://xbmc-repo-ackbarr.googlecode.com/svn/trunk/dev/skin.cirrus%20extended%20v2/extras/moviegenres/All%20Movies%20by%20Genre.png"))
#itemlist.append( Item(channel=__channel__, title="[COLOR azure]Serie TV[/COLOR]" , action="peliculas", url=sito, thumbnail="http://xbmc-repo-ackbarr.googlecode.com/svn/trunk/dev/skin.cirrus%20extended%20v2/extras/moviegenres/New%20TV%20Shows.png"))
#itemlist.append( Item(channel=__channel__, title="[COLOR azure]Anime Cartoon Italiani[/COLOR]", action="peliculas", url=sito, thumbnail="http://orig09.deviantart.net/df5a/f/2014/169/2/a/fist_of_the_north_star_folder_icon_by_minacsky_saya-d7mq8c8.png"))
itemlist.append( Item(channel=__channel__, title="[COLOR yellow]Cerca...[/COLOR]", action="search", thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search"))
return itemlist
def peliculas(item):
logger.info("pelisalacarta.casacinema peliculas")
itemlist = []
# Descarga la pagina
data = scrapertools.cache_page(item.url, headers=headers)
# Extrae las entradas (carpetas)
patron = '<div class="box-single-movies">\s*'
patron += '<a href="([^>"]+)".*?title="([^>"]+)" >.*?<img class.*?<img.*?src="([^>"]+)"'
matches = re.compile(patron,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for scrapedurl,scrapedtitle,scrapedthumbnail in matches:
#response = urllib2.urlopen(scrapedurl)
#html = response.read()
#start = html.find("<div class=\"aciklama\">")
#end = html.find(">Fonte Trama</a>", start)
#scrapedplot = html[start:end]
#scrapedplot = re.sub(r'<.*?>', '', scrapedplot)
#scrapedtitle=scrapertools.decodeHtmlentities(scrapedtitle.replace("Streaming",""))
#if scrapedplot.startswith("<div class"):
#scrapedplot = scrapedplot[30:]
if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
itemlist.append( Item(channel=__channel__, action="findvideos", title="[COLOR azure]" + scrapedtitle + "[/COLOR]", url=scrapedurl , viewmode="movie_with_plot", thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) )
# Extrae el paginador
patronvideos = 'rel="next" href="([^"]+)">»</a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
if len(matches)>0:
scrapedurl = urlparse.urljoin(item.url,matches[0])
itemlist.append( Item(channel=__channel__, action="peliculas", title="[COLOR orange]Successivo >>[/COLOR]" , url=scrapedurl , thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", folder=True) )
return itemlist
def categorias(item):
logger.info("pelisalacarta.casacinema categorias")
itemlist = []
data = scrapertools.cache_page(item.url)
logger.info(data)
# Narrow search by selecting only the combo
bloque = scrapertools.get_match(data,'<ul class="kategori_list">(.*?)</ul>')
# The categories are the options for the combo
patron = '<li><a href="([^"]+)">([^<]+)</a></li>'
matches = re.compile(patron,re.DOTALL).findall(bloque)
scrapertools.printMatches(matches)
for url,titulo in matches:
scrapedtitle = titulo
scrapedurl = urlparse.urljoin(item.url,url)
scrapedthumbnail = ""
scrapedplot = ""
if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
itemlist.append( Item(channel=__channel__, action="peliculas" , title="[COLOR azure]" + scrapedtitle + "[/COLOR]", url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot))
return itemlist
def search(item,texto):
logger.info("[casacinema.py] "+item.url+" search "+texto)
item.url = "http://casa-cinema.net/?s="+texto
try:
return peliculas(item)
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
return []
def test():
from servers import servertools
# mainlist
mainlist_items = mainlist(Item())
# Da por bueno el canal si alguno de los videos de "Novedades" devuelve mirrors
novedades_items = peliculas(mainlist_items[0])
bien = False
for novedades_item in novedades_items:
mirrors = servertools.find_video_items( item=novedades_item )
if len(mirrors)>0:
bien = True
break
return bien