Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?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>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
<import addon="script.module.libtorrent" optional="true"/>
|
||||
@@ -19,13 +19,8 @@
|
||||
</assets>
|
||||
<news>[B]Estos son los cambios para esta versión:[/B]
|
||||
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
|
||||
» diskokosmiko » gamovideo
|
||||
» mispelisyseries » pelisplus
|
||||
» seriespapaya » descargas2020
|
||||
» openload » torrentlocura
|
||||
» torrentrapid » streamcloud
|
||||
» danimados » animemovil
|
||||
» serieslan
|
||||
» torrentrapid » torrentlocura
|
||||
» mispelisyseries » descargas2020
|
||||
¤ arreglos internos
|
||||
|
||||
¤ Gracias a la colaboración de @pipcat y @lopezvg en ésta versión
|
||||
|
||||
@@ -9,7 +9,7 @@ import urllib
|
||||
import urlparse
|
||||
|
||||
from platformcode import logger
|
||||
|
||||
from decimal import Decimal, ROUND_UP
|
||||
|
||||
class Cloudflare:
|
||||
def __init__(self, response):
|
||||
@@ -62,12 +62,20 @@ class Cloudflare:
|
||||
def get_url(self):
|
||||
# Metodo #1 (javascript)
|
||||
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"]:
|
||||
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" % (
|
||||
self.protocol, self.domain, self.js_data["auth_url"], urllib.urlencode(self.js_data["params"]))
|
||||
@@ -85,6 +93,29 @@ class Cloudflare:
|
||||
|
||||
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):
|
||||
t = time.time()
|
||||
timeout = False
|
||||
|
||||
@@ -68,7 +68,7 @@ load_cookies()
|
||||
|
||||
|
||||
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
|
||||
|
||||
@@ -234,13 +234,14 @@ def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=Tr
|
||||
logger.info("No se ha podido descomprimir")
|
||||
|
||||
# Anti Cloudflare
|
||||
if bypass_cloudflare:
|
||||
if bypass_cloudflare and count_retries < 5:
|
||||
cf = Cloudflare(response)
|
||||
if cf.is_cloudflare:
|
||||
count_retries += 1
|
||||
logger.info("cloudflare detectado, esperando %s segundos..." % cf.wait_time)
|
||||
auth_url = cf.get_url()
|
||||
logger.info("Autorizando... url: %s" % auth_url)
|
||||
if downloadpage(auth_url, headers=request_headers, replace_headers=True).sucess:
|
||||
logger.info("Autorizando... intento %d url: %s" % (count_retries, auth_url))
|
||||
if downloadpage(auth_url, headers=request_headers, replace_headers=True, count_retries=count_retries).sucess:
|
||||
logger.info("Autorización correcta, descargando página")
|
||||
resp = downloadpage(url=response["url"], post=post, headers=headers, timeout=timeout,
|
||||
follow_redirects=follow_redirects,
|
||||
|
||||
Reference in New Issue
Block a user