diff --git a/plugin.video.alfa/channels/xdvideos.py b/plugin.video.alfa/channels/xdvideos.py index 3e362671..eb371a4d 100755 --- a/plugin.video.alfa/channels/xdvideos.py +++ b/plugin.video.alfa/channels/xdvideos.py @@ -15,96 +15,112 @@ hosts = "http://xdvideos.org/dragon-ball-super/" def mainlist(item): - logger.info() - thumb_series = get_thumb("channels_tvshow.png") + logger.info() + thumb_series = get_thumb("channels_tvshow.png") - itemlist = list() + itemlist = list() - itemlist.append(Item(channel=item.channel, action="categorias", title="Categorias", url=host, - thumbnail=thumb_series)) - itemlist.append(Item(channel=item.channel, action="episodios", title="Dragon Ball Super", url=hosts, - thumbnail=thumb_series)) - return itemlist + itemlist.append(Item(channel=item.channel, action="categorias", + title="Categorias", url=host, thumbnail=thumb_series)) + itemlist.append(Item(channel=item.channel, action="episodios", title="Dragon Ball Super", url=hosts, + thumbnail=thumb_series)) + return itemlist def categorias(item): - logger.info() + logger.info() - itemlist = [] + itemlist = [] - data = httptools.downloadpage(item.url).data - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - patron = '
    (.+)>Problemas' - data = scrapertools.find_single_match(data, patron) - patron_cat = '
  • ([^"]+)<\/a>' - matches = scrapertools.find_multiple_matches(data, patron_cat) - for url, name in matches: - if name != 'Clasicos': - title = name - itemlist.append(item.clone(title=title, url=url, action="lista", show=title)) - return itemlist + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) + patron = '
      (.+)>Problemas' + data = scrapertools.find_single_match(data, patron) + patron_cat = '
    • ([^"]+)<\/a>
        ' + matches = scrapertools.find_multiple_matches(data, patron_cat) + for url, name in matches: + if name != 'Clasicos': + title = name + itemlist.append(item.clone(title=title, url=url, + action="lista", show=title)) + return itemlist def lista(item): - logger.info() + logger.info() + itemlist = [] - itemlist = [] - - data = httptools.downloadpage(item.url).data - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - category = item.title - patron = '
      • [^"]+<\/a>(.+?)<\/a><\/li><\/ul><\/li>' - content = scrapertools.find_single_match(data, patron) - patron_lista = '([^"]+)<\/a>' - match_series = scrapertools.find_multiple_matches(content, patron_lista) - for url, title in match_series: - if "(" in title: - show_dual = title.split("(") - show = show_dual[1] - if ")" in show: - show = show.rstrip(")") - else: - show = title - itemlist.append(item.clone(title=title, url=url, action="episodios", show=show, plot=show)) - tmdb.set_infoLabels(itemlist) - return itemlist + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) + category = item.title + patron = '
      • [^"]+<\/a>(.+?)<\/a><\/li><\/ul><\/li>' + content = scrapertools.find_single_match(data, patron) + patron_lista = '([^"]+)<\/a>' + match_series = scrapertools.find_multiple_matches(content, patron_lista) + for url, title in match_series: + if "(" in title: + show_dual = title.split("(") + show = show_dual[1] + if ")" in show: + show = show.rstrip(")") + else: + show = title + itemlist.append(item.clone(title=title, url=url, + action="episodios", show=show, plot=show)) + tmdb.set_infoLabels(itemlist) + return itemlist def episodios(item): - logger.info() + logger.info() + itemlist = [] - itemlist = [] + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - data = httptools.downloadpage(item.url).data - data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) - scrapedshow, scrapedthumbnail = scrapertools.find_single_match(data, - '

        ([^"]+)<\/h1>.+?(.+?)
        ([^"]+)<\/a>' - matches = scrapertools.find_multiple_matches(data, patron_caps) - i = 0 - for url, name in matches: - i = i + 1 - if i < 10: - title = "1x0" + str(i) + " " + name - else: - title = "1x" + str(i) + " " + name - itemlist.append( - item.clone(title=title, url=url, action="findvideos", show=scrapedshow, thumbnail=scrapedthumbnail)) + scrapedshow = scrapertools.find_single_match( + data, '(?s)

        ([^"]+)<\/h1>') - return itemlist + scrapedthumbnail = scrapertools.find_single_match( + data, '(?s)

        *?(.+?)
          ') + + patron_caps = '([^"]+)<\/a>' + matches = scrapertools.find_multiple_matches(data, patron_caps) + + for url, name in matches: + logger.info("url A=%s" % url) + if ("temporada" in url) and (("capitulo" in url) or ("episodio" in url)): + if ("capitulo" in url): + season, chapter = scrapertools.find_single_match( + url, 'temporada-([0-9]+)-?.+capitulo-([0-9]+)') + if ("episodio" in url): + season, chapter = scrapertools.find_single_match( + url, 'temporada-([0-9]+)-?.+episodio-([0-9]+)') + title = season + "x" + chapter.zfill(2) + " " + name + else: + title = name + + itemlist.append( + item.clone(title=title, url=url, action="findvideos", show=scrapedshow, thumbnail=scrapedthumbnail)) + + return itemlist def findvideos(item): - logger.info() + logger.info() - itemlist = [] + itemlist = [] + + data = httptools.downloadpage(item.url).data + itemlist.extend(servertools.find_video_items(data=data)) + scrapedthumbnail = scrapertools.find_single_match(data, 'src="([^"]+)"') + for videoitem in itemlist: + videoitem.channel = item.channel + videoitem.thumbnail = scrapedthumbnail + + return itemlist - data = httptools.downloadpage(item.url).data - itemlist.extend(servertools.find_video_items(data=data)) - scrapedthumbnail = scrapertools.find_single_match(data, 'src="([^"]+)"') - for videoitem in itemlist: - videoitem.channel = item.channel - videoitem.thumbnail = scrapedthumbnail - return itemlist