Eurostreaming channel help
Publicado: 29 Ago 2015, 16:02
Hola,
two issues with channel:
1) the site uses javascript in pages like these:
http://eurostreaming.tv/game-of-thrones-got-2011/
http://eurostreaming.tv/i-griffin-episodi/
http://eurostreaming.tv/better-call-saul-2015/
These pages redirect to the ones with links to episodes through javascript,
so if you search for these tv shows you end up in blank pages.
2) Other pages like these ones:
http://eurostreaming.tv/sex-and-drugs-a ... d-roll-fx/
http://eurostreaming.tv/the-big-bang-theory-serie/
look the same but they contain this line (search for it in the html):
So, would it be possible to bypass these pages adding an "if" cause so that
"if line "href='http://eurostreaming.tv/?p=" exists in downloaded page then
it has to go to given link"?
Here is the channel as available on github:
two issues with channel:
1) the site uses javascript in pages like these:
http://eurostreaming.tv/game-of-thrones-got-2011/
http://eurostreaming.tv/i-griffin-episodi/
http://eurostreaming.tv/better-call-saul-2015/
These pages redirect to the ones with links to episodes through javascript,
so if you search for these tv shows you end up in blank pages.
2) Other pages like these ones:
http://eurostreaming.tv/sex-and-drugs-a ... d-roll-fx/
http://eurostreaming.tv/the-big-bang-theory-serie/
look the same but they contain this line (search for it in the html):
Código: Seleccionar todo
href='http://eurostreaming.tv/?p=
"if line "href='http://eurostreaming.tv/?p=" exists in downloaded page then
it has to go to given link"?
Here is the channel as available on github:
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canale per eurostreaming.tv
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse
import re
import sys
from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools
__channel__ = "eurostreaming"
__category__ = "F,S,A"
__type__ = "generic"
__title__ = "eurostreaming"
__language__ = "IT"
DEBUG = config.get_setting("debug")
def isGeneric():
return True
def mainlist(item):
logger.info("pelisalacarta.eurostreaming mainlist")
itemlist = []
itemlist.append( Item(channel=__channel__, title="[COLOR azure]Film - Archivio[/COLOR]", action="peliculas", url="http://eurostreaming.tv/category/film-in-streaming-vk-putlocker/", thumbnail="http://repository-butchabay.googlecode.com/svn/branches/eden/skin.cirrus.extended.v2/extras/moviegenres/All%20Movies.png"))
itemlist.append( Item(channel=__channel__, title="[COLOR azure]Serie TV[/COLOR]" , action="serietv", url="http://eurostreaming.tv/category/serie-tv-archive/", 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 / Cartoni[/COLOR]", action="serietv", url="http://eurostreaming.tv/category/anime-cartoni-animati/", 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.eurostreaming peliculas")
itemlist = []
# Descarga la pagina
data = scrapertools.cache_page(item.url)
# Extrae las entradas (carpetas)
patron = '<div class="post-thumb">\s*'
patron += '<a href="?([^>"]+)"?.*?title="?([^>"]+)"?.*?<img.*?src="([^>"]+)'
matches = re.compile(patron,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for scrapedurl,scrapedtitle,scrapedthumbnail in matches:
scrapedplot = ""
scrapedtitle=scrapertools.decodeHtmlentities(scrapedtitle.replace("Streaming",""))
if scrapedtitle.startswith("Link to "):
scrapedtitle = scrapedtitle[8:]
if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
itemlist.append( Item(channel=__channel__, action="findvideos", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) )
# Extrae el paginador
patronvideos = '<a class="next page-numbers" href="?([^>"]+)">Avanti »</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 serietv(item):
logger.info("pelisalacarta.eurostreaming peliculas")
itemlist = []
# Descarga la pagina
data = scrapertools.cache_page(item.url)
# Extrae las entradas (carpetas)
patron = '<div class="post-thumb">\s*'
patron += '<a href="?([^>"]+)"?.*?title="?([^>"]+)"?.*?<img.*?src="([^>"]+)'
matches = re.compile(patron,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for scrapedurl,scrapedtitle,scrapedthumbnail in matches:
scrapedplot = ""
scrapedtitle=scrapertools.decodeHtmlentities(scrapedtitle.replace("Streaming",""))
if scrapedtitle.startswith("Link to "):
scrapedtitle = scrapedtitle[8:]
if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
itemlist.append( Item(channel=__channel__, action="findvid_serie", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) )
# Extrae el paginador
patronvideos = '<a class="next page-numbers" href="?([^>"]+)">Avanti »</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="serietv", 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 search(item,texto):
logger.info("[eurostreaming.py] "+item.url+" search "+texto)
item.url = "http://eurostreaming.tv/?s="+texto
try:
return serietv(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 findvid_serie(item):
logger.info("[eurostreaming.py] findvideos")
itemlist = []
## Descarga la página
data = scrapertools.cache_page(item.url)
data = scrapertools.decodeHtmlentities(data)
patron1 = '<div class="su-spoiler-content su-clearfix" style="display:none">(.+?)</div></div>'
matches1 = re.compile(patron1, re.DOTALL).findall(data)
for match1 in matches1:
for data in match1.split('<br/>'):
## Extrae las entradas
scrapedtitle = data.split('<a ')[0]
scrapedtitle = re.sub(r'<[^>]*>', '', scrapedtitle)
li = servertools.find_video_items(data=data)
for videoitem in li:
videoitem.title = scrapedtitle + videoitem.title
videoitem.fulltitle = item.fulltitle
videoitem.thumbnail = item.thumbnail
videoitem.show = item.show
videoitem.plot = item.plot
videoitem.channel = __channel__
itemlist.extend(li)
return itemlist