This commit is contained in:
alfa_addon_10
2017-09-05 20:42:25 +02:00
parent 52fc5d975d
commit cc0f8c1004
3 changed files with 55 additions and 126 deletions
+55 -43
View File
@@ -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, '<ul class="ratedul">.+?</ul>')
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, '<ul class="latestul">(.*?)</ul>')
patron = '<a href="([^"]+)">([^<]+)<'
@@ -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, '<div class="genres">(.*?)</div>')
patron = '<a href="([^"]+)">([^<]+)</a>'
@@ -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, '<ul class="animelet">(.*?)</ul>')
patron = '<a href="([^"]+)">([^<]+)</a>'
@@ -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
'''
<table class="search">
<tr>
<td rowspan="2">
<a href="http://jkanime.net/basilisk-kouga-ninpou-chou/"><img src="http://jkanime.net/assets/images/animes/thumbnail/basilisk-kouga-ninpou-chou.jpg" width="50" /></a>
</td>
<td><a class="titl" href="http://jkanime.net/basilisk-kouga-ninpou-chou/">Basilisk: Kouga Ninpou Chou</a></td>
<td rowspan="2" style="width:50px; text-align:center;">Serie</td>
<td rowspan="2" style="width:50px; text-align:center;" >24 Eps</td>
</tr>
<tr>
<td><p>Basilisk, considerada una de las mejores series del genero ninja, nos narra la historia de dos clanes ninja separados por el odio entre dos familias. Los actuales representantes, Kouga Danjo del clan Kouga y Ogen del clan&#8230; <a class="next" href="http://jkanime.net/basilisk-kouga-ninpou-chou/">seguir leyendo</a></p></td>
</tr>
</table>
'''
patron = '<table class="search[^<]+'
patron += '<tr[^<]+'
patron += '<td[^<]+'
@@ -181,7 +169,7 @@ def series(item):
itemlist.append(
Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail, fanart=thumbnail,
plot=plot, extra=extra))
plot=plot, extra=extra, show=scrapedtitle.strip()))
try:
siguiente = scrapertools.get_match(data, '<a class="listsiguiente" href="([^"]+)" >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, '<meta name="description" content="([^"]+)"/>')
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="separedescrip">.*?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,
'<div[^<]+<span class="labl">Estad[^<]+</span[^<]+<span[^>]+>Por estrenar</span>')
# porestrenar = scrapertools.get_match(data,
# '<div[^<]+<span class="labl">Estad[^<]+</span[^<]+<span[^>]+>Por estrenar</span>')
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, '<iframe class="player_conte" src="([^"]+)"')
aux_url = []
index = 1
for e in list_videos:
if e.startswith("https://jkanime.net/jk.php?"):
headers = {"Referer": item.url}
data = httptools.downloadpage(e, headers=headers).data
url = scrapertools.find_single_match(data, '<embed class="player_conte".*?&file=([^\"]+)\"')
if url:
itemlist.append(item.clone(title="Enlace encontrado en server #%s" % index, url=url, action="play"))
index += 1
else:
aux_url.append(e)
itemlist.extend(servertools.find_video_items(data=",".join(aux_url)))
for videoitem in itemlist:
videoitem.fulltitle = item.fulltitle
videoitem.channel = item.channel
videoitem.thumbnail = item.thumbnail
return itemlist
-60
View File
@@ -1,60 +0,0 @@
{
"active": true,
"changes": [
{
"date": "26/05/2016",
"description": "Versión incial"
}
],
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://animeflv.net/embed_izanagi.php\\?key=.+?),",
"url": "\\1"
},
{
"pattern": "(https://s1.animeflv.com/gdrive.php?id=.+?)\\\\\\\\",
"url": "\\1"
},
{
"pattern": "(http://www.animeid..{2,3}/embed/.+?/)",
"url": "\\1"
},
{
"pattern": "(https://jkanime.net/jk.php\\?u=stream/jkmedia.+?)\\s",
"url": "\\1"
}
]
},
"free": true,
"id": "redirects",
"name": "redirects",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"version": 1
}
-23
View File
@@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
import re
import urllib2
from core import scrapertools
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
video_urls = []
if 'jkanime' in page_url:
request_headers = {
"Accept-Language": "en-US,en;q=0.5",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive"
}
jk_url = page_url.replace("/jk.php?u=stream/", "/stream/")
request = urllib2.Request(jk_url, headers=request_headers)
response = urllib2.urlopen(request)
video_urls.append([".mp4 [redirects]", response.geturl()])
return video_urls