diff --git a/plugin.video.alfa/channels/mixtoon.json b/plugin.video.alfa/channels/mixtoon.json new file mode 100644 index 00000000..fb71306c --- /dev/null +++ b/plugin.video.alfa/channels/mixtoon.json @@ -0,0 +1,12 @@ +{ + "id": "mixtoon", + "name": "MixToon", + "active": true, + "adult": false, + "language": ["cast"], + "thumbnail": "http://i.imgur.com/s6CBxlw.png", + "banner": "http://i.imgur.com/c1YTgNT.png", + "categories": [ + "tvshow" + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/mixtoon.py b/plugin.video.alfa/channels/mixtoon.py new file mode 100644 index 00000000..215b144c --- /dev/null +++ b/plugin.video.alfa/channels/mixtoon.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- + +import re + +from channels import renumbertools +from channelselector import get_thumb +from core import httptools +from core import scrapertools +from core import servertools +from core import tmdb +from core.item import Item +from platformcode import config, logger +from channels import filtertools +from channels import autoplay +from lib import gktools + +IDIOMAS = {'castellano': 'Castellano'} +list_language = IDIOMAS.values() +list_servers = ['openload' + ] +list_quality = ['default'] + + +host = "https://mixtoon.com" + + +def mainlist(item): + logger.info() + thumb_series = get_thumb("channels_tvshow.png") + autoplay.init(item.channel, list_servers, list_quality) + + itemlist = list() + + itemlist.append( + Item(channel=item.channel, action="lista", title="Series", url=host, thumbnail=thumb_series, page=0)) + itemlist = renumbertools.show_option(item.channel, itemlist) + autoplay.show_option(item.channel, itemlist) + return itemlist + + +def lista(item): + logger.info() + + itemlist = [] + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) + patron = ' 1: + i = 0 + for pos in name.split(pat): + i = i + 1 + total_episode += 1 + season, episode = renumbertools.numbered_for_tratk(item.channel, item.contentSerieName, 1, total_episode) + if len(name.split(pat)) == i: + title += "%sx%s " % (season, str(episode).zfill(2)) + else: + title += "%sx%s_" % (season, str(episode).zfill(2)) + else: + total_episode += 1 + season, episode = renumbertools.numbered_for_tratk(item.channel,item.contentSerieName, 1, total_episode) + + title += "%sx%s " % (season, str(episode).zfill(2)) + + url = host + "/" + link + if "disponible" in link: + title += "No Disponible aún" + else: + title += name + itemlist.append( + Item(channel=item.channel, action="findvideos", title=title, url=url, show=show, plot=scrapedplot, + thumbnail=scrapedthumbnail)) + + if config.get_videolibrary_support() and len(itemlist) > 0: + itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url, + action="add_serie_to_library", extra="episodios", show=show)) + + return itemlist + +def findvideos(item): + import base64 + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + _sl = scrapertools.find_single_match(data, 'var _dt=([^;]+);') + sl = eval(_sl) + buttons = [0,1] + for id in buttons: + new_url = "https://videoeb.xyz/" + "eb/" + sl[0] + "/" + sl[1] + "/" + str(id) + "/" + sl[2] + data_new = httptools.downloadpage(new_url).data + valor1, valor2 = scrapertools.find_single_match(data_new, 'var x0x = \["[^"]*","([^"]+)","[^"]*","[^"]*","([^"]+)') + try: + url = base64.b64decode(gktools.transforma_gsv(valor2, base64.b64decode(valor1))) + if 'download' in url: + url = url.replace('download', 'preview') + title = '%s' + itemlist.append(Item(channel=item.channel, title=title, url=url, action='play', language='latino', + infoLabels=item.infoLabels)) + except Exception as e: + logger.info(e) + itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + # Requerido para FilterTools + itemlist = filtertools.get_links(itemlist, item, list_language) + # Requerido para AutoPlay + autoplay.start(itemlist, item) + + return itemlist \ No newline at end of file