Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Kingbox
2018-04-08 20:46:22 +02:00
3 changed files with 43 additions and 16 deletions
+3 -8
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.alfa" name="Alfa" version="2.5.7" provider-name="Alfa Addon"> <addon id="plugin.video.alfa" name="Alfa" version="2.5.8" provider-name="Alfa Addon">
<requires> <requires>
<import addon="xbmc.python" version="2.1.0"/> <import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.libtorrent" optional="true"/> <import addon="script.module.libtorrent" optional="true"/>
@@ -19,13 +19,8 @@
</assets> </assets>
<news>[B]Estos son los cambios para esta versión:[/B] <news>[B]Estos son los cambios para esta versión:[/B]
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
» diskokosmiko » gamovideo » torrentrapid » torrentlocura
» mispelisyseries » pelisplus » mispelisyseries » descargas2020
» seriespapaya » descargas2020
» openload » torrentlocura
» torrentrapid » streamcloud
» danimados » animemovil
» serieslan
¤ arreglos internos ¤ arreglos internos
¤ Gracias a la colaboración de @pipcat y @lopezvg en ésta versión ¤ Gracias a la colaboración de @pipcat y @lopezvg en ésta versión
+35 -4
View File
@@ -9,7 +9,7 @@ import urllib
import urlparse import urlparse
from platformcode import logger from platformcode import logger
from decimal import Decimal, ROUND_UP
class Cloudflare: class Cloudflare:
def __init__(self, response): def __init__(self, response):
@@ -62,12 +62,20 @@ class Cloudflare:
def get_url(self): def get_url(self):
# Metodo #1 (javascript) # Metodo #1 (javascript)
if self.js_data.get("wait", 0): if self.js_data.get("wait", 0):
jschl_answer = self.decode(self.js_data["value"]) jschl_answer = self.decode2(self.js_data["value"])
for op, v in self.js_data["op"]: for op, v in self.js_data["op"]:
jschl_answer = eval(str(jschl_answer) + op + str(self.decode(v))) #jschl_answer = eval(str(jschl_answer) + op + str(self.decode2(v)))
if op == '+':
jschl_answer = jschl_answer + self.decode2(v)
elif op == '-':
jschl_answer = jschl_answer - self.decode2(v)
elif op == '*':
jschl_answer = jschl_answer * self.decode2(v)
elif op == '/':
jschl_answer = jschl_answer / self.decode2(v)
self.js_data["params"]["jschl_answer"] = jschl_answer + len(self.domain) self.js_data["params"]["jschl_answer"] = round(jschl_answer, 10) + len(self.domain)
response = "%s://%s%s?%s" % ( response = "%s://%s%s?%s" % (
self.protocol, self.domain, self.js_data["auth_url"], urllib.urlencode(self.js_data["params"])) self.protocol, self.domain, self.js_data["auth_url"], urllib.urlencode(self.js_data["params"]))
@@ -85,6 +93,29 @@ class Cloudflare:
return response return response
def decode2(self, data):
data = re.sub("\!\+\[\]", "1", data)
data = re.sub("\!\!\[\]", "1", data)
data = re.sub("\[\]", "0", data)
pos = data.find("/")
numerador = data[:pos]
denominador = data[pos+1:]
aux = re.compile('\(([0-9\+]+)\)').findall(numerador)
num1 = ""
for n in aux:
num1 += str(eval(n))
aux = re.compile('\(([0-9\+]+)\)').findall(denominador)
num2 = ""
for n in aux:
num2 += str(eval(n))
#return float(num1) / float(num2)
#return Decimal(Decimal(num1) / Decimal(num2)).quantize(Decimal('.0000000000000001'), rounding=ROUND_UP)
return Decimal(Decimal(num1) / Decimal(num2)).quantize(Decimal('.0000000000000001'))
def decode(self, data): def decode(self, data):
t = time.time() t = time.time()
timeout = False timeout = False
+5 -4
View File
@@ -68,7 +68,7 @@ load_cookies()
def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False, def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False,
add_referer=False, only_headers=False, bypass_cloudflare=True): add_referer=False, only_headers=False, bypass_cloudflare=True, count_retries=0):
""" """
Abre una url y retorna los datos obtenidos Abre una url y retorna los datos obtenidos
@@ -234,13 +234,14 @@ def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=Tr
logger.info("No se ha podido descomprimir") logger.info("No se ha podido descomprimir")
# Anti Cloudflare # Anti Cloudflare
if bypass_cloudflare: if bypass_cloudflare and count_retries < 5:
cf = Cloudflare(response) cf = Cloudflare(response)
if cf.is_cloudflare: if cf.is_cloudflare:
count_retries += 1
logger.info("cloudflare detectado, esperando %s segundos..." % cf.wait_time) logger.info("cloudflare detectado, esperando %s segundos..." % cf.wait_time)
auth_url = cf.get_url() auth_url = cf.get_url()
logger.info("Autorizando... url: %s" % auth_url) logger.info("Autorizando... intento %d url: %s" % (count_retries, auth_url))
if downloadpage(auth_url, headers=request_headers, replace_headers=True).sucess: if downloadpage(auth_url, headers=request_headers, replace_headers=True, count_retries=count_retries).sucess:
logger.info("Autorización correcta, descargando página") logger.info("Autorización correcta, descargando página")
resp = downloadpage(url=response["url"], post=post, headers=headers, timeout=timeout, resp = downloadpage(url=response["url"], post=post, headers=headers, timeout=timeout,
follow_redirects=follow_redirects, follow_redirects=follow_redirects,