diff --git a/plugin.video.alfa/channels/jkanime.py b/plugin.video.alfa/channels/jkanime.py index 523247eb..59cda535 100755 --- a/plugin.video.alfa/channels/jkanime.py +++ b/plugin.video.alfa/channels/jkanime.py @@ -3,7 +3,9 @@ import re import urlparse +from core import httptools from core import scrapertools +from core import servertools from core.item import Item from platformcode import logger @@ -11,7 +13,7 @@ from platformcode import logger def mainlist(item): logger.info() - itemlist = [] + itemlist = list() itemlist.append( Item(channel=item.channel, action="ultimos_capitulos", title="Últimos Capitulos", url="http://jkanime.net/")) itemlist.append(Item(channel=item.channel, action="ultimos", title="Últimos", url="http://jkanime.net/")) @@ -25,7 +27,7 @@ def mainlist(item): def ultimos_capitulos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '') data = data.replace('\t', '') @@ -43,7 +45,8 @@ def ultimos_capitulos(item): logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]") itemlist.append( - Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot)) + Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot, + show=scrapedtitle.strip(), fulltitle=title)) return itemlist @@ -67,7 +70,7 @@ def search(item, texto): def ultimos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '') patron = '([^<]+)<' @@ -90,7 +93,7 @@ def generos(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '
(.*?)
') patron = '
([^<]+)' @@ -114,7 +117,7 @@ def letras(item): logger.info() itemlist = [] - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data data = scrapertools.get_match(data, '') patron = '([^<]+)' @@ -138,24 +141,9 @@ def series(item): logger.info() # Descarga la pagina - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data # Extrae las entradas - ''' - - - - - - - - - - - - ''' patron = 'Resultados Siguientes') @@ -198,7 +186,7 @@ def series(item): return itemlist -def getPagesAndEpisodes(data): +def get_pages_and_episodes(data): results = re.findall('href="#pag([0-9]+)">[0-9]+ - ([0-9]+)', data) if results: return int(results[-1][0]), int(results[-1][1]) @@ -210,37 +198,30 @@ def episodios(item): itemlist = [] # Descarga la pagina - data = scrapertools.cache_page(item.url) + data = httptools.downloadpage(item.url).data scrapedplot = scrapertools.get_match(data, '') scrapedthumbnail = scrapertools.find_single_match(data, '
.*?src="([^"]+)"') idserie = scrapertools.get_match(data, "ajax/pagination_episodes/(\d+)/") logger.info("idserie=" + idserie) - if " Eps" in item.extra and not "Desc" in item.extra: + if " Eps" in item.extra and "Desc" not in item.extra: caps_x = item.extra caps_x = caps_x.replace(" Eps", "") capitulos = int(caps_x) paginas = capitulos / 10 + (capitulos % 10 > 0) else: - paginas, capitulos = getPagesAndEpisodes(data) + paginas, capitulos = get_pages_and_episodes(data) logger.info("idserie=" + idserie) - for numero in range(1, paginas + 1): + for num_pag in range(1, paginas + 1): - numero_pagina = str(numero) - headers = [] - headers.append( - ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:16.0) Gecko/20100101 Firefox/16.0"]) - headers.append(["Referer", item.url]) - data2 = scrapertools.cache_page( - "http://jkanime.net/ajax/pagination_episodes/" + idserie + "/" + numero_pagina + "/") - logger.info("data2=" + data2) + numero_pagina = str(num_pag) + headers = {"Referer": item.url} + data2 = scrapertools.cache_page("http://jkanime.net/ajax/pagination_episodes/%s/%s/" % (idserie, numero_pagina), + headers=headers) + # logger.info("data2=" + data2) - ''' - [{"number":"1","title":"Rose of Versailles - 1"},{"number":"2","title":"Rose of Versailles - 2"},{"number":"3","title":"Rose of Versailles - 3"},{"number":"4","title":"Rose of Versailles - 4"},{"number":"5","title":"Rose of Versailles - 5"},{"number":"6","title":"Rose of Versailles - 6"},{"number":"7","title":"Rose of Versailles - 7"},{"number":"8","title":"Rose of Versailles - 8"},{"number":"9","title":"Rose of Versailles - 9"},{"number":"10","title":"Rose of Versailles - 10"}] - [{"id":"14199","title":"GetBackers - 1","number":"1","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14200","title":"GetBackers - 2","number":"2","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14201","title":"GetBackers - 3","number":"3","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14202","title":"GetBackers - 4","number":"4","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14203","title":"GetBackers - 5","number":"5","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14204","title":"GetBackers - 6","number":"6","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14205","title":"GetBackers - 7","number":"7","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14206","title":"GetBackers - 8","number":"8","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14207","title":"GetBackers - 9","number":"9","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14208","title":"GetBackers - 10","number":"10","animes_id":"122","timestamp":"2012-01-04 16:59:30"}] - ''' patron = '"number"\:"(\d+)","title"\:"([^"]+)"' matches = re.compile(patron, re.DOTALL).findall(data2) @@ -253,12 +234,12 @@ def episodios(item): logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]") itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, - fanart=thumbnail, plot=plot)) + fanart=thumbnail, plot=plot, fulltitle=title)) if len(itemlist) == 0: try: - porestrenar = scrapertools.get_match(data, - 'Estad[^<]+]+>Por estrenar') + # porestrenar = scrapertools.get_match(data, + # 'Estad[^<]+]+>Por estrenar') itemlist.append(Item(channel=item.channel, action="findvideos", title="Serie por estrenar", url="", thumbnail=scrapedthumbnail, fanart=scrapedthumbnail, plot=scrapedplot, server="directo", folder=False)) @@ -266,3 +247,34 @@ def episodios(item): pass return itemlist + + +def findvideos(item): + logger.info() + + itemlist = [] + data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", httptools.downloadpage(item.url).data) + + list_videos = scrapertools.find_multiple_matches(data, '