fix
This commit is contained in:
@@ -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… <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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user