Página 1 de 3

Series Blanco: no hay nada para reproducir

Publicado: 03 May 2016, 11:30
por Deloxly
Buenos días:

En primer lugar, agradeceros el gran trabajo que realizáis. Hasta ahora, he conseguido solucionar todos los problemas con vuestra ayuda.

Pero desde hace unos días, al intentar acceder a cualquier enlace de cualquier servidor de cualquier serie en Series Blanco, me aparece el mensaje "no hay nada para reproducir". He mirado por todo el foro, he cambiado el archivo .py de la carpeta channels, lo he modificado poniendo la extensión .tv en lugar de .com y siempre, al llegar al momento de pulsar sobre el enlace, aparece el fatídico mensaje: "no hay nada para reproducir".

Por favor, indicadme qué estoy haciendo mal.

Muchas gracias a todos.

Re: Series Blanco: no hay nada para reproducir

Publicado: 03 May 2016, 11:49
por robalo
viewtopic.php?f=22&t=7546&start=10#p31279

Prueba con eso y ya dirás si se arregla

Re: Series Blanco: no hay nada para reproducir

Publicado: 03 May 2016, 12:38
por Deloxly
¡Muchas gracias, Robalo! La solución es perfecta.
Repito, muchas gracias.

Re: Series Blanco: no hay nada para reproducir

Publicado: 04 May 2016, 13:01
por anya2
Gracias por el trabajo, estoy encantada con el programa! bueno soy muy nueva y bastante inútil en según que cosas, no he entendido nada de ese post que has publicado, no se que he de hacer y en series blanco no para de decir no hay nada para reproducir y no se que tengo que hacer, uso una versión kodi i estoy muy perdida, muchas gracias, hace unos días que funcionaba y ahora nada de nada y no se como solucionarlo.
Gracias!

Re: Series Blanco: no hay nada para reproducir

Publicado: 04 May 2016, 20:29
por infinda
Estoy en las mismas, no me funciona seriesblanco y la solución del enlace tampoco me aclara nada, no se donde cambiar esas lineas de codigo.

Agradezco una ayudita, "plis"

Re: Series Blanco: no hay nada para reproducir

Publicado: 05 May 2016, 11:06
por Deloxly
Muy buenas:

Os comento cómo lo hice yo, para un kodi funcionando en Android.

Primero me descargué con el PC los dos archivos de series blanco indicados por SeiTan en este enlace:

viewtopic.php?f=22&t=7452&hilit=series+blanco#p30392

Después, modifiqué las líneas indicadas por robalo en el archivo seriesblanco.py. Yo lo abrí con WordPad, seleccioné dichas líneas (desde "def play" hasta "return itemlist") y pegué las previamente copiadas de robalo. Tras esto, sólo queda copiar los dos archivos en la carpeta channels, en mi caso copiándolos en un pendrive, para pasarlos al google Tv, y, a continuación, pegarlos en la carpeta channels mediante la App Es file explorer, marcando la visualización de archivos ocultos para encontrar la carpeta en cuestión.

No sé si me ha quedado claro, y es posible que haya otra forma más sencilla, pero no soy nada ducho en Android.

Re: Series Blanco: no hay nada para reproducir

Publicado: 05 May 2016, 20:52
por anya2
No me ha funcionado sigue sin nada que reproducir...
Pero gracias igualmente

Re: Series Blanco: no hay nada para reproducir

Publicado: 05 May 2016, 21:02
por SeiTaN
copia el contenido que aparece más abajo, y lo guardas en un fichero que se llame "seriesblanco.py" luego tendrás que reemplazarlo con el que está en la carpeta "channels" donde tienes instalado pelisalacarta

Código: Seleccionar todo

# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
# ------------------------------------------------------------
import urlparse
import re
import os
import sys

from core import channeltools
from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools
from channelselector import get_thumbnail_path

__channel__ = "seriesblanco"
__category__ = "F"
__type__ = "generic"
__title__ = "Series Blanco"
__language__ = "ES"

channel_xml = channeltools.get_channel_parameters(__channel__)
HOST = "http://seriesblanco.com/"
IDIOMAS = {'es': 'Español', 'la': 'Latino', 'vos': 'VOS', 'vo': 'VO', 'japovose': 'VOSE', 'jp-sub': 'VOSE'}


DEBUG = config.get_setting("debug")


def isGeneric():
    return True


def mainlist(item):
    logger.info("pelisalacarta.seriesblanco mainlist")

    thumb_series = get_thumbnail("thumb_canales_series.png")
    thumb_series_az = get_thumbnail("thumb_canales_series_az.png")
    thumb_buscar = get_thumbnail("thumb_buscar.png")

    itemlist = list([])
    itemlist.append(Item(channel=__channel__, title="Series Listado Alfabetico", action="series_listado_alfabetico",
                         thumbnail=thumb_series_az))
    itemlist.append(Item(channel=__channel__, title="Todas las Series", action="series",
                         url=urlparse.urljoin(HOST, "lista_series/"), thumbnail=thumb_series))
    itemlist.append(Item(channel=__channel__, title="Buscar...", action="search", url=HOST, thumbnail=thumb_buscar))

    return itemlist


def series_listado_alfabetico(item):
    logger.info("pelisalacarta.seriesblanco series_listado_alfabetico")

    itemlist = []

    for letra in ['0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
                  'T', 'U', 'V', 'W', 'X', 'Y', 'Z']:
        itemlist.append(Item(channel=__channel__, action="series_por_letra", title=letra,
                             url=urlparse.urljoin(HOST, "series/{0}/buscar_letra.html".format(letra.upper()))))

    return itemlist


# La página de series por letra es igual que la de buscar
def series_por_letra(item):
    return search(item, '')


def search(item, texto):
    logger.info("[pelisalacarta.seriesblanco search texto={0}".format(texto))

    itemlist = []

    if texto != "":
        item.url = urlparse.urljoin(HOST, "/search.php?q1={0}".format(texto))

    data = scrapertools.cache_page(item.url)
    data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;|<Br>|<BR>|<br>|<br/>|<br />|-\s", "", data)
    data = re.sub(r"<!--.*?-->", "", data)
    data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")

    '''
    <div style='float:left;width: 33%;text-align:center;'>
        <a href='/serie/2561/acacias-38.html' '>
            <img class='ict' src='http://seriesblanco.com/files/uploads/2561.jpg' alt='Capitulos de: Acacias 38'
                height='184' width='120'>
        </a>
        <div style='text-align:center;line-height:20px;height:20px;'>
            <a href='/serie/2561/acacias-38.html' style='font-size: 11px;'> Acacias 38</a>
        </div>
    </div>
    '''

    patron = "<img class='ict' src='([^']+)'[^>]+></a>" \
             "<div style='text-align:center;line-height:20px;height:20px;'>" \
             "<a href='([^']+)' style='font-size: 11px;'>([^<]+)</a>"

    matches = re.compile(patron, re.DOTALL).findall(data)

    for scrapedthumb, scrapedurl, scrapedtitle in matches:
        itemlist.append(Item(channel=__channel__, title=scrapedtitle.strip(), url=urlparse.urljoin(HOST, scrapedurl),
                             action="episodios", show=scrapedtitle.strip(), thumbnail=scrapedthumb))

    try:
        return itemlist
    # 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 series(item):
    logger.info("pelisalacarta.seriesblanco series")

    itemlist = []

    # Descarga la página
    data = scrapertools.cache_page(item.url)
    data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;|<Br>|<BR>|<br>|<br/>|<br />|-\s", "", data)
    data = re.sub(r"<!--.*?-->", "", data)
    data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")

    patron = "<li><a href='([^']+)' title='([^']+)'>[^<]+</a></li>"
    matches = re.compile(patron, re.DOTALL).findall(data)

    # como no viene el thumbnail en esta pagina ponemos el thumbnail generico del canal
    thumbnail = channel_xml["thumbnail"]

    for scrapedurl, scrapedtitle in matches:
        itemlist.append(Item(channel=__channel__, title=scrapedtitle.strip(), url=urlparse.urljoin(HOST, scrapedurl),
                             action="episodios", show=scrapedtitle.strip(), thumbnail=thumbnail))

    return itemlist


def episodios(item):
    logger.info("pelisalacarta.seriesblanco episodios")

    itemlist = []

    # Descarga la página
    data = scrapertools.cache_page(item.url)
    data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;|<Br>|<BR>|<br>|<br/>|<br />|-\s", "", data)
    data = re.sub(r"<!--.*?-->", "", data)
    data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")

    data = re.sub(r"a></td><td> <img src=/banderas/", "a><idioma/", data)
    data = re.sub(r"<img src=/banderas/", "|", data)
    data = re.sub(r"\s\|", "|", data)
    data = re.sub(r"\.png border='\d+' height='\d+' width='\d+'[^>]+><", "/idioma><", data)
    data = re.sub(r"\.png border='\d+' height='\d+' width='\d+'[^>]+>", "", data)

    patron = "<img id='port_serie' src='([^']+)'.*?<li data-content=\"settings\"><p>(.*?)</p>"
    matches = re.compile(patron, re.DOTALL).findall(data)
    thumbnail = ""
    plot = ""

    for scrapedthumbnail, scrapedplot in matches:
        thumbnail = scrapedthumbnail
        plot = scrapedplot

    '''
    <td>
        <a href='/serie/534/temporada-1/capitulo-00/the-big-bang-theory.html'>1x00 - Capitulo 00 </a>
    </td>
    <td>
        <img src=/banderas/vo.png border='0' height='15' width='25' />
        <img src=/banderas/vos.png border='0' height='15' width='25' />
    </td>
    '''

    patron = "<a href='([^']+)'>([^<]+)</a><idioma/([^/]+)/idioma>"

    matches = re.compile(patron, re.DOTALL).findall(data)

    for scrapedurl, scrapedtitle, scrapedidioma in matches:
        idioma = ""
        for i in scrapedidioma.split("|"):
            idioma += " [" + IDIOMAS[i] + "]"
        title = item.title + " - " + scrapedtitle + idioma
        itemlist.append(Item(channel=__channel__, title=title, url=urlparse.urljoin(HOST, scrapedurl),
                             action="findvideos", show=item.show, thumbnail=thumbnail, plot=plot))

    if len(itemlist) == 0 and "<title>404 Not Found</title>" in data:
        itemlist.append(Item(channel=__channel__, title="la url '" + item.url +
                                                        "' parece no estar disponible en la web. Iténtalo más tarde.",
                             url=item.url, action="series"))

    # Opción "Añadir esta serie a la biblioteca de XBMC"
    if config.get_library_support() and len(itemlist) > 0:
        itemlist.append(Item(channel=__channel__, title="Añadir esta serie a la biblioteca de XBMC", url=item.url,
                             action="add_serie_to_library", extra="episodios", show=item.show))

    return itemlist

def parseVideos(item, typeStr, data):
    videoPatternsStr = [
        '<tr.+?<span>(?P<date>.+?)</span>.*?banderas/(?P<language>[^\.]+).+?href="(?P<link>[^"]+).+?servidores/(?P<server>[^\.]+).*?</td>.*?<td>.*?<span>(?P<uploader>.+?)</span>.*?<span>(?P<quality>.*?)</span>.*?</tr>',
        '<tr.+?banderas/(?P<language>[^\.]+).+?<td[^>]*>(?P<date>.+?)</td>.+?href=[\'"](?P<link>[^\'"]+).+?servidores/(?P<server>[^\.]+).*?</td>.*?<td[^>]*>.*?<a[^>]+>(?P<uploader>.+?)</a>.*?</td>.*?<td[^>]*>(?P<quality>.*?)</td>.*?</tr>'
    ]

    for vPatStr in videoPatternsStr:
        vPattIter = re.compile(vPatStr, re.MULTILINE | re.DOTALL).finditer(data)

        itemlist = []

        for vMatch in vPattIter:
            vFields = vMatch.groupdict()
            quality = vFields.get("quality")
            if not quality:
                quality = "SD"

            title = "{0} en {1} [{2}] [{3}] ({4}: {5})".format(typeStr, vFields.get("server"), IDIOMAS[vFields.get("language")],
                                                                   quality, vFields.get("uploader"), vFields.get("date"))
            itemlist.append(Item(channel=__channel__, title=title, url=urlparse.urljoin(HOST, vFields.get("link")), action="play",
                                 show=item.show))

        if len(itemlist) > 0:
            return itemlist

    return []

def extractVideosSection(data):
    result = re.findall('<table class="as_gridder_table">(.+?)</table>|<table class=\'zebra\'>(.+?)<[Bb][Rr]>|data : "(action=load[^\"]+)"', data, re.MULTILINE | re.DOTALL)

    if len(result) == 1 and result[0][2]:
        return extractVideosSection(scrapertools.cachePagePost(HOST + 'ajax.php', result[0][2]))

    row = len(result) - 2
    idx = 1 if result[row][1] else 0

    return [result[row][idx], result[row + 1][idx]]

def findvideos(item):
    logger.info("pelisalacarta.seriesblanco findvideos")

    # Descarga la página
    data = scrapertools.cache_page(item.url)

    online = extractVideosSection(data)
    return parseVideos(item, "Ver", online[0]) + parseVideos(item, "Descargar", online[1])

def play(item):
    logger.info("pelisalacarta.channels.seriesblanco play url={0}".format(item.url))

    if item.url.startswith(HOST):
        data = scrapertools.cache_page(item.url)

        patron = "<input type='button' value='Ver o Descargar' onclick='window.open\(\"([^\"]+)\"\);'/>"
        url = scrapertools.find_single_match(data, patron)
    else:
        url = item.url

    itemlist = servertools.find_video_items(data=url)

    for videoitem in itemlist:
        videoitem.title = item.title
        videoitem.channel = __channel__

    return itemlist


def get_thumbnail(thumb_name=None):
    img_path = config.get_runtime_path() + '/resources/images/squares'
    if thumb_name:
        file_path = os.path.join(img_path, thumb_name)
        if os.path.isfile(file_path):
            thumb_path = file_path
        else:
            thumb_path = urlparse.urljoin(get_thumbnail_path(), thumb_name)
    else:
        thumb_path = urlparse.urljoin(get_thumbnail_path(), thumb_name)

    return thumb_path

Re: Series Blanco: no hay nada para reproducir

Publicado: 07 May 2016, 00:57
por Anibalopez
Yo lo he probado todo y nada. He actualizado a la versión 4.0.9 de isegran y la verdad que yo siempre lo veía todo en Series Blanco, pero es que creo que ahora no veo nada en ninguna, o al menos en las que probé.

Me han desaparecido los enlaces de streamcloud y de nowvideo que tb funcionaban antes muy bien, como que tampoco.

Hice lo de copiar el código y pegarlo nuevo, eso de seriesblanco.py pero nada de nada. Alguien puede ayudarme? Yo tengo el kodi instalado en un Mac, por si sirve de algo. Gracias y espero vuestra ayuda

Re: Series Blanco: no hay nada para reproducir

Publicado: 07 May 2016, 22:37
por anya2
a mi tampoco me funciono, lo he probado todo!
gracias igualmente