thanks for sharing your knowledge, robalo.
now, I don't understand why in spanish channel everithings works well and in the one attached there is a little problem.
channel code (made by robalo?)
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta- XBMC Plugin
# Canal para seriehd - based on guardaserie channel
# 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__ = "seriehd"
__category__ = "S"
__type__ = "generic"
__title__ = "Serie HD"
__language__ = "IT"
headers = [
    ['Host','www.seriehd.org'],
    ['User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'],
    ['Accept-Encoding','gzip, deflate']
]
host = "http://www.seriehd.org"
def isGeneric():
    return True
def mainlist( item ):
    logger.info( "[seriehd.py] mainlist" )
    itemlist = []
    itemlist.append( Item( channel=__channel__, action="fichas", title="[COLOR azure]Serie TV[/COLOR]", url=host+"/serie-tv-streaming/", thumbnail="http://i.imgur.com/rO0ggX2.png" ) )
    itemlist.append( Item( channel=__channel__, action="sottomenu", title="[COLOR orange]Sottomenu...[/COLOR]", url=host, thumbnail="http://i37.photobucket.com/albums/e88/xzener/NewIcons.png" ) )
    itemlist.append( Item( channel=__channel__, action="search", title="[COLOR green]Cerca...[/COLOR]", thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search") )
    return itemlist
def search( item,texto ):
    logger.info( "[seriehd.py] search" )
    item.url=host + "/?s=" + texto
    try:
        return fichas( 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 sottomenu( item ):
    logger.info( "[seriehd.py] sottomenu" )
    itemlist = []
    data = scrapertools.cache_page( item.url )
    scrapertools.get_match( data, '<ul class="sub-menu">(.*?)</ul>' )
    patron  = '<a href="([^"]+)">([^<]+)</a>'
    matches = re.compile( patron, re.DOTALL ).findall( data )
    for scrapedurl, scrapedtitle in matches:
        itemlist.append( Item( channel=__channel__, action="fichas", title=scrapedtitle, url=scrapedurl ) )
    ## Elimina 'Serie TV' de la lista de 'sottomenu'
    itemlist.pop(0)
    return itemlist
def fichas( item ):
    logger.info( "[seriehd.py] fichas" )
    itemlist = []
    data = scrapertools.cache_page( item.url )
    patron  = '<h2>(.*?)</h2>\s*'
    patron += '<img src="(.*?)" alt=".*?"/>\s*'
    patron += '<A HREF="(.*?)">'
    matches = re.compile( patron, re.DOTALL ).findall( data )
    for scrapedtitle, scrapedthumbnail, scrapedurl in matches:
        itemlist.append( Item( channel=__channel__, action="episodios", title=scrapedtitle, fulltitle=scrapedtitle, url=scrapedurl, show=scrapedtitle, thumbnail=scrapedthumbnail ) )
    #<div class='wp-pagenavi'><span class='current'>1</span><a rel='nofollow' class='page larger' href='http://www.seriehd.org/serie-tv-streaming/page/2/'>2</a></div></div></div>
    next_page = scrapertools.find_single_match( data, "<span class='current'>\d+</span><a rel='nofollow' class='page larger' href='([^']+)'>\d+</a>" )
    if next_page != "":
        itemlist.append( Item( channel=__channel__, action="fichas", title="[COLOR orange]Successivo>>[/COLOR]", url=next_page ) )
    return itemlist
def episodios(item):
    logger.info( "[seriehd.py] episodios" )
    itemlist = []
    data = scrapertools.cache_page( item.url )
    seasons_data = scrapertools.get_match( data, '<select name="stagione" id="selSt">(.*?)</select>' )
    seasons = re.compile( 'data-stagione="(\d+)"', re.DOTALL ).findall( seasons_data )
    for scrapedseason in seasons:
        episodes_data = scrapertools.get_match( data, '<div class="list[^"]+" data-stagione="' + scrapedseason + '">(.*?)</div>' )
        episodes = re.compile( 'data-id="(\d+)"', re.DOTALL ).findall( episodes_data )
        for scrapedepisode in episodes:
            season = str ( int( scrapedseason ) + 1 )
            episode = str ( int( scrapedepisode ) + 1 )
            if len( episode ) == 1: episode = "0" + episode
            title = season + "x" + episode + " - " + item.title
            ## Le pasamos a 'findvideos' la url con dos partes divididas por el caracter "?"
            ## [host+path]?[argumentos]?[Referer]
            url = item.url + "?st_num=" + scrapedseason + "&pt_num=" + scrapedepisode + "?" + item.url
            itemlist.append( Item( channel=__channel__, action="findvideos", title=title, url=url, fulltitle=item.title, show=item.title ) )
    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 findvideos( item ):
    logger.info( "[seriehd.py] findvideos" )
    itemlist = []
    url = item.url.split( '?' )[0]
    post = item.url.split( '?' )[1]
    referer = item.url.split( '?' )[2]
    headers.append( [ 'Referer', referer ] )
    data = scrapertools.cache_page( url, post=post, headers=headers )
    url = scrapertools.get_match( data, '<iframe id="iframeVid" width="100%" height="500px" src="([^"]+)" allowfullscreen></iframe>' )
    server = url.split( '/' )[2]
    title = "[" + server + "] " + item.title
    itemlist.append( Item( channel=__channel__, action="play", title=title, url=url, fulltitle=item.fulltitle, show=item.show, folder=False ) )
    return itemlist
def play( item ):
    logger.info( "[seriehd.py] play" )
    itemlist = servertools.find_video_items( data=item.url )
    for videoitem in itemlist:
        videoitem.title = item.show
        videoitem.fulltitle = item.fulltitle
        videoitem.thumbnail = item.thumbnail
        videoitem.channel = __channel__
    return itemlist
and in the series folder I've
to have the right folder name I've to put in the channel file this string
Código: Seleccionar todo
    if config.get_library_support() and len(itemlist)>0:
        itemlist.append( Item(channel=__channel__, title=item.title, url=item.url, action="add_serie_to_library", extra="episodios", show=item.show) )