From bff4e57beac3214531494da76fba37403435b640 Mon Sep 17 00:00:00 2001 From: danielr460 Date: Thu, 7 Mar 2019 09:35:22 -0500 Subject: [PATCH] AsiaLiveAction: reestructuracion del canal --- plugin.video.alfa/channels/asialiveaction.py | 108 ++++++------------- plugin.video.alfa/channels/serieslan.py | 98 +++++++++++++++-- 2 files changed, 121 insertions(+), 85 deletions(-) diff --git a/plugin.video.alfa/channels/asialiveaction.py b/plugin.video.alfa/channels/asialiveaction.py index 75c37dec..ad2d930b 100644 --- a/plugin.video.alfa/channels/asialiveaction.py +++ b/plugin.video.alfa/channels/asialiveaction.py @@ -25,14 +25,14 @@ def mainlist(item): autoplay.init(item.channel, list_servers, list_quality) itemlist = list() itemlist.append(Item(channel=item.channel, action="lista", title="Peliculas", - url=urlparse.urljoin(host, "p/peliculas.html"), type='pl', first=0)) - itemlist.append(Item(channel=item.channel, action="lista", title="Series", - url=urlparse.urljoin(host, "p/series.html"), type='sr', first=0)) + url=urlparse.urljoin(host, "/category/pelicula"), type='pl', pag=1)) + #itemlist.append(Item(channel=item.channel, action="lista", title="Series", + # url=urlparse.urljoin(host, "/category/serie"), type='sr', pag=1)) itemlist.append(Item(channel=item.channel, action="category", title="Géneros", url=host, cat='genre')) itemlist.append(Item(channel=item.channel, action="category", title="Calidad", url=host, cat='quality')) itemlist.append(Item(channel=item.channel, action="category", title="Orden Alfabético", url=host, cat='abc')) itemlist.append(Item(channel=item.channel, action="category", title="Año de Estreno", url=host, cat='year')) - itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url=host+"/search?q=")) + #itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url=host+"/search?q=")) autoplay.show_option(item.channel, itemlist) return itemlist @@ -43,18 +43,18 @@ def category(item): data = httptools.downloadpage(host).data data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) if item.cat == 'abc': - data = scrapertools.find_single_match(data, 'Orden Alfabético.*?') + data = scrapertools.find_single_match(data, '
(.+?)
') elif item.cat == 'genre': - data = scrapertools.find_single_match(data, 'Géneros.*?') + data = scrapertools.find_single_match(data, 'Géneros<\/a>') + data = scrapertools.find_single_match(data, 'Año<\/a>') - patron = "([^<]+)" + data = scrapertools.find_single_match(data, 'Calidad<\/a>") - - patron = '.*?
(.*?)' - patron += '(.*?)
([^<]+)
' + + patron = '
' + patron += '<.*?>' #scrapedurl + patron += '.*?' #scrapedthumbnail + patron += '

([^"]+)<\/h3>' #scrapedtitle + patron += '([^"]+)<\/span>.+?' #scrapedyear + patron += '([^"]+)<\/a>' #scrapedtype matches = scrapertools.find_multiple_matches(data, patron) - first = int(item.first) - last = first + 19 - if last > len(matches): - last = len(matches) - next = False + for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear, scrapedtype in matches: + title="%s - %s" % (scrapedtitle,scrapedyear) - for scrapedtype, scrapedyear, scrapedthumbnail, scrapedquality, scrapedtitle, scrapedurl in matches[first:last]: - year = scrapertools.find_single_match(scrapedyear, '(\d{4})') + new_item = Item(channel=item.channel, title=title, url=scrapedurl, thumbnail=scrapedthumbnail, + type=scrapedtype, infoLabels={'year':scrapedyear}) - if not year: - class_year = scrapertools.find_single_match(scrapedyear, 'class="([^\"]+)"') - year = scrapertools.find_single_match(css_data, "\." + class_year + ":after {content:'(\d{4})';}") - if not year: - year = scrapertools.find_single_match(data, "headline'>(\d{4})

") - - qual = "" - if scrapedquality: - patron_qualities='' - qualities = scrapertools.find_multiple_matches(scrapedquality, patron_qualities) - - for quality in qualities: - patron_desc = "\." + quality + ":after {content:'([^\']+)';}" - quality_desc = scrapertools.find_single_match(css_data, patron_desc) - - qual = qual+ "[" + quality_desc + "] " - - title="%s [%s] %s" % (scrapedtitle,year,qual) - - new_item = Item(channel=item.channel, title=title, url=host+scrapedurl, thumbnail=scrapedthumbnail, - type=scrapedtype, infoLabels={'year':year}) - - if scrapedtype.strip() == 'sr': + if scrapedtype == 'sr': new_item.contentSerieName = scrapedtitle new_item.action = 'episodios' else: new_item.contentTitle = scrapedtitle new_item.action = 'findvideos' - - if scrapedtype == item.type or item.type == 'cat': - itemlist.append(new_item) + + itemlist.append(new_item) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) #pagination - url_next_page = item.url - first = last - if next: - itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, action='lista', first=first)) - + pag = item.pag + 1 + url_next_page = item.url+"/page/"+str(pag)+"/" + if len(itemlist)>19: + itemlist.append(item.clone(title="Siguiente >>", url=url_next_page, action='lista', pag=pag)) return itemlist diff --git a/plugin.video.alfa/channels/serieslan.py b/plugin.video.alfa/channels/serieslan.py index 38612acd..5bb9c701 100644 --- a/plugin.video.alfa/channels/serieslan.py +++ b/plugin.video.alfa/channels/serieslan.py @@ -226,10 +226,40 @@ def findvideos(item): for id in buttons: new_url = golink(int(id), _sa, sl) data_new = httptools.downloadpage(new_url).data - _x0x = scrapertools.find_single_match(data_new, 'var x0x = ([^;]+);') + logger.info(data_new) + valor = scrapertools.find_single_match(data_new, '\+ x92\((.*?)\)\+ ') + valores = valor.split("atob") + valor2 = valores[1].replace('(','').replace(')','') + valor1 = valores[0].split('+') + datos = [] + logger.info("f4d5as6f") + logger.info(valor1) + stringTodo = '' + for val in valor1: + if '()' in val: + funcion = val.split('(')[0] + scrapedvalue = scrapertools.find_single_match(data_new, funcion+'.+?return (.+?);') + datos.append(scrapedvalue) + elif '.charAt' in val: + funcion = val.split('.charAt(') + stringTodo = funcion[0] + position = funcion[1].split(')')[0] + posiciones = [] + logger.info(datos) + if datos: + for dato in datos: + logger.info(dato) + try: + posiciones.append(int(dato)) + except Exception as e: + scrapedvalue = scrapertools.find_single_match(data_new, 'var %s = (.+?);' % (dato)) + logger.info("scrapedvalue") + logger.info(scrapedvalue) + posiciones.append(int(scrapedvalue)) + logger.info("positiones"+posiciones) try: - x0x = eval(_x0x) - url = base64.b64decode(gktools.transforma_gsv(x0x[4], base64.b64decode(x0x[1]))) + logger.info(base64.b64decode(data1, data2)) + url = x92(data1, data2) if 'download' in url: url = url.replace('download', 'preview') title = '%s' @@ -250,11 +280,65 @@ def findvideos(item): def golink (num, sa, sl): import urllib b = [3, 10, 5, 22, 31] - d = '' - for i in range(len(b)): - d += sl[2][b[i]+num:b[i]+num+1] + #d = '' + #for i in range(len(b)): + # d += sl[2][b[i]+num:b[i]+num+1] SVR = "https://viteca.stream" if sa == 'true' else "http://serieslan.com" TT = "/" + urllib.quote_plus(sl[3].replace("/", "><")) if num == 0 else "" + url_end = link(num,sl) + #return SVR + "/el/" + sl[0] + "/" + sl[1] + "/" + str(num) + "/" + sl[2] + d + TT + return SVR + "/el/" + sl[0] + "/" + sl[1] + "/" + str(num) + "/" + sl[2] + url_end + TT - return SVR + "/el/" + sl[0] + "/" + sl[1] + "/" + str(num) + "/" + sl[2] + d + TT \ No newline at end of file +def link(ida,sl): + a=ida + b=[3,10,5,22,31] + c=1 + d="" + e=sl[2] + for i in range(len(b)): + d=d+substr(e,b[i]+a,c) + return d + +def substr(st,a,b): + return st[a:a+b] + +def x92(data1, data2): + data3 = [] + data4 = 0 + data5 = "" + data6 = "" + for i in range(len(256)): + data3[i] = i + for i in range(len(256)): + data4 = (data4 + data3[i] + ord(data1[i])) % 256 + data5 = data3[i] + data3[i] = data3[data4] + data3[data4] = data5 + i = 0 + data4 = 0 + for j in range(len(data2)): + i = (i + 1) % 256 + data4 = (data4 + data3[i]) % 256 + data5 = data3[i] + data3[i] = data3[data4] + data3[data4] = data5 + data6 =1#+= str(unichr(data2[ord(str(j)) ^ data3[(data3[i] + data3[data4]) % 256])) + return data6 + +def _ieshlgagkP(umZFJ): + return umZFJ +def _RyHChsfwdd(ZBKux): + return ZBKux +def _eladjkKtjf(czuwk): + return czuwk +def _slSekoKrHb(): + return '' +def _VySdeBApGO(): + return 'Z' + +def _nEgqhkiRub(): + return 28 + +def _lTjZxWGNnE(): + return 57 \ No newline at end of file