Página 1 de 1

Paginación

Publicado: 11 Jun 2017, 19:45
por DanielyD
Buenas tardes, tengo un canal que me muestra todas las series en una página, como puedo hacer para dividir el itemlist del listado en varias páginas???

Re: Paginación

Publicado: 12 Jun 2017, 10:46
por super_berny
Pasame la funcion mainlist y la q devuelve los itemlist y te lo hago. Tardo menos en hacerlo q en explicarlo, si despues no lo entiendes lo comentamos.

Pista: en mi tutorial sobre yaske habia algo parecido.

Re: Paginación

Publicado: 12 Jun 2017, 16:51
por DanielyD
hola, gracias mira:

Código: Seleccionar todo

def mainlist(item):
    logger.info()
    thumb_series = get_thumb("squares", "thumb_canales_series.png")


    itemlist = list()

    itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host, 
thumbnail=thumb_series))
    itemlist = renumbertools.show_option(item.channel, itemlist)
    return itemlist

Código: Seleccionar todo

def lista(item):
    logger.info()

    itemlist = []

    data = httptools.downloadpage(item.url).data
    data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
    patron = '<a href="([^"]+)"'
    patron += 'class="link">.+?<img src="([^"]+)".*?'
    patron += 'title="([^"]+)">'
    matches = scrapertools.find_multiple_matches(data, patron)
    for link, img, name in matches:
        title=name
        url=host+link
        scrapedthumbnail=host+img
        itemlist.append(item.clone(title=title, url=url, action="episodios", thumbnail=scrapedthumbnail, show=title, context=renumbertools.context))

    return itemlist

Re: Paginación

Publicado: 12 Jun 2017, 23:02
por super_berny

Código: Seleccionar todo

def mainlist(item):
    logger.info()
    thumb_series = get_thumb("squares", "thumb_canales_series.png")


    itemlist = list()

    itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=host, 
thumbnail=thumb_series, page=0))
    itemlist = renumbertools.show_option(item.channel, itemlist)
    return itemlist

Código: Seleccionar todo

def lista(item):
    logger.info()

    itemlist = []

    data = httptools.downloadpage(item.url).data
    data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
    patron = '<a href="([^"]+)"'
    patron += 'class="link">.+?<img src="([^"]+)".*?'
    patron += 'title="([^"]+)">'
    matches = scrapertools.find_multiple_matches(data, patron)
    
    # Paginacion
    num_items_x_pagina = 30
    min = item.page * num_items_x_pagina
    max = min + num_items_x_pagina -1
    
    for link, img, name in matches[min:max]:
        title=name
        url=host+link
        scrapedthumbnail=host+img
        itemlist.append(item.clone(title=title, url=url, action="episodios", thumbnail=scrapedthumbnail, show=title, context=renumbertools.context))

    itemlist.append(Item(title="Página Siguiente >>", action="lista", page= item.page +1)      
    
    return itemlist

Re: Paginación

Publicado: 14 Jun 2017, 08:38
por super_berny
DanielyD:
Lo has probado? te funciona? entiendes como lo hago?

Re: Paginación

Publicado: 14 Jun 2017, 15:30
por DanielyD
Hola lo siento, lo pude mirar hasta anoche, funciono perfecto (faltaba un paréntesis jajaja)