diff --git a/plugin.video.alfa/channels/seriesdanko.py b/plugin.video.alfa/channels/seriesdanko.py
index ac3c7a2b..858a1ae7 100644
--- a/plugin.video.alfa/channels/seriesdanko.py
+++ b/plugin.video.alfa/channels/seriesdanko.py
@@ -8,18 +8,24 @@ from core import httptools
from core import scrapertools
from core import servertools
from core.item import Item
+from core import tmdb
+from channels import autoplay
from platformcode import config, logger
HOST = 'http://seriesdanko.to/'
IDIOMAS = {'es': 'Español', 'la': 'Latino', 'vos': 'VOS', 'vo': 'VO'}
list_idiomas = IDIOMAS.values()
+list_servers = ['streamcloud', 'powvideo', 'gamovideo', 'streamplay', 'openload', 'flashx', 'nowvideo', 'thevideo']
CALIDADES = ['SD', 'MicroHD', 'HD/MKV']
+
def mainlist(item):
logger.info()
+ autoplay.init(item.channel, list_servers, CALIDADES)
itemlist = list()
+
itemlist.append(Item(channel=item.channel, title="Novedades", action="novedades", url=HOST))
itemlist.append(Item(channel=item.channel, title="Más vistas", action="mas_vistas", url=HOST))
itemlist.append(Item(channel=item.channel, title="Listado Alfabético", action="listado_alfabetico", url=HOST))
@@ -27,7 +33,9 @@ def mainlist(item):
itemlist.append(Item(channel=item.channel, title="Buscar...", action="search",
url=urlparse.urljoin(HOST, "all.php")))
- itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES)
+ #itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES)
+
+ autoplay.show_option(item.channel, itemlist)
return itemlist
@@ -40,7 +48,6 @@ def novedades(item):
data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}| |
|
|
|
|
|-\s", "", data)
data = re.sub(r"", "", data)
- logger.debug(data)
patron = ''
patron += "|
|
|
|
|-\s", "", data)
data = re.sub(r"", "", data)
-
patron = "(.*?)
"
data = scrapertools.get_match(data, patron)
-
- return series_seccion(item, data)
+ item.data = data
+ item.first = 0
+ return series_seccion(item)
def listado_completo(item):
@@ -87,21 +94,37 @@ def listado_completo(item):
data = re.sub(r"", "", data)
patron = '(.*?)
'
data = scrapertools.get_match(data, patron)
-
- return series_seccion(item, data)
+ item.first = 0
+ item.data = data
+ return series_seccion(item)
-def series_seccion(item, data):
+def series_seccion(item):
logger.info()
itemlist = []
+ next_page = ''
+ data = item.data
+ data = data.replace('ahref', 'a href')
patron = "(.*?)"
matches = re.compile(patron, re.DOTALL).findall(data)
- for scrapedurl, scrapedtitle in matches:
+ if int(item.first)+20 < len(matches):
+ limit = int(item.first)+20
+ next_page = limit + 1
+ else:
+ limit = len(matches)
+ for scrapedurl, scrapedtitle in matches[item.first:limit]:
itemlist.append(Item(channel=item.channel, action="episodios", title=scrapedtitle, show=scrapedtitle,
url=urlparse.urljoin(HOST, scrapedurl),
context=filtertools.context(item, list_idiomas, CALIDADES)))
+ tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
+ #pagination
+
+ if next_page !='':
+ itemlist.append(Item(channel=item.channel, action="series_seccion", title='Siguiente >>>', data=item.data,
+ first=next_page))
+
return itemlist
@@ -117,6 +140,7 @@ def listado_alfabetico(item):
return itemlist
+
def series_por_letra(item):
logger.info("letra = {0}".format(item.title))
data = httptools.downloadpage(item.url).data
@@ -142,6 +166,7 @@ def search(item, texto):
itemlist.append(item.clone(title=title, url=urlparse.urljoin(HOST, url), action="episodios", show=title,
context=filtertools.context(item, list_idiomas, CALIDADES)))
+ tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
except:
import sys
@@ -176,18 +201,27 @@ def episodios(item):
patron = "(.*?)(.*?)"
matches = re.compile(patron, re.DOTALL).findall(data)
+ infoLabels = item.infoLabels
for scrapedurl, scrapedtitle, scrapedidioma in matches:
idioma = ""
filter_langs = []
for i in scrapedidioma.split("|"):
idioma += " [" + IDIOMAS.get(i, "OVOS") + "]"
filter_langs.append(IDIOMAS.get(i, "OVOS"))
- title = scrapedtitle + idioma
+ season_episode = scrapertools.get_season_and_episode(scrapedtitle)
+ title = '%s %s %s' % (season_episode, scrapedtitle, idioma)
+ season_episode = season_episode.split('x')
+ infoLabels['season'] = season_episode[0]
+ infoLabels['episode'] = season_episode[1]
+
itemlist.append(Item(channel=item.channel, title=title, url=urlparse.urljoin(HOST, scrapedurl),
- action="findvideos", show=item.show, thumbnail=thumbnail, plot="", language=filter_langs))
+ action="findvideos", show=item.show, thumbnail=thumbnail, plot="", language=filter_langs,
+ infoLabels=infoLabels))
- itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES)
+
+ #itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES)
+ tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
# Opción "Añadir esta serie a la videoteca de XBMC"
if config.get_videolibrary_support() and len(itemlist) > 0:
@@ -212,6 +246,14 @@ def findvideos(item):
itemlist = filtertools.get_links(itemlist, item, list_idiomas, CALIDADES)
+ # Requerido para FilterTools
+
+ itemlist = filtertools.get_links(itemlist, item, list_idiomas)
+
+ # Requerido para AutoPlay
+
+ autoplay.start(itemlist, item)
+
return itemlist
@@ -227,6 +269,7 @@ def parse_videos(item, tipo, data):
links = re.findall(pattern, data, re.MULTILINE | re.DOTALL)
for language, date, server, link, quality in links:
+
if quality == "":
quality = "SD"
title = "%s en %s [%s] [%s] (%s)" % (tipo, server, IDIOMAS.get(language, "OVOS"), quality, date)
@@ -243,8 +286,8 @@ def play(item):
data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}| |
|
|
|
|
|-\s", "", data)
-
- patron = ''
+ #patron = ''
+ patron = ''
url = scrapertools.find_single_match(data, patron)
itemlist = servertools.find_video_items(data=url)