Example #1
0
def list_all(item):
    logger.info()
    itemlist = []
    soup = create_soup(item.url)
    articles = soup.find(id='main').find_all('table')

    episodes = item.list_what == 'episodes'
    batch = item.list_what == 'batch'
    movies = item.list_what == 'movies'

    for div in articles:
        # Scrapping: Obtenemos los datos
        infoLabels = {}
        link = div.find('a', class_='aa_ss_ops_new')
        title, infoLabels = process_title(link.text,
                                          infoLabels,
                                          get_year_only=True)
        language_list = [
            IDIOMAS.get(x['data-title'], 'VO')
            for x in div.find_all(class_='tooltip3')
            if IDIOMAS.get(x['data-title'], '') in list(['VOS', 'VOSE'])
        ]
        quality_list = [
            x.text for x in div.find_all(class_='load_more_links_buttons')
        ]

        # Creamos el item
        newit = Item(channel=item.channel,
                     infoLabels=infoLabels,
                     language=language_list,
                     quality=quality_list,
                     title=title,
                     url=link['href'])

        # Asignamos propiedades especĂ­ficas del contentType al item
        if episodes:
            title, labels = newit.title.split(' - ')
            labels = scrapertools.find_multiple_matches(
                labels, '(?is)(\d+)(?:.+?[\(](\w+)[\)])?')[0]
            newit.action = play_direct_action
            newit.contentType = 'tvshow'
            newit.contentEpisode = int(labels[0])
            newit.title = 'E{}: {}'.format(newit.contentEpisode, title)
            if labels[-1]:
                newit.title += ' [{}]'.format(labels[-1])
            newit.contentSerieName = title
        elif batch:
            title, labels = newit.title.split(' - ')
            labels = scrapertools.find_multiple_matches(
                labels, '(?is)(\d+).+?(\d+)(?:.+?[\(](\w+)[\)])?')[0]
            newit.action = 'episodesxseason'
            newit.contentType = 'tvshow'
            newit.title = '{} [{} - {}]'.format(title, labels[0], labels[1])
            logger.info(labels)
            if labels[2]:
                newit.title += ' [{}]'.format(labels[2])
            newit.contentSerieName = title
        elif movies:
            newit.action = 'findvideos'
            newit.contentType = 'movie'
            newit.contentTitle = newit.title

        # Agregamos el item
        itemlist.append(newit)

    tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True, no_year=True)
    logger.info(play_direct_action)
    nextpage = soup.find('a', class_='next')
    if nextpage:
        itemlist.append(
            item.clone(text_color='yellow',
                       title='Siguiente página >',
                       url=nextpage['href']))
    return itemlist