From 504d9a151b4680997f2e46375a4710a87f57ab46 Mon Sep 17 00:00:00 2001 From: pipcat Date: Sat, 7 Apr 2018 18:56:05 +0200 Subject: [PATCH] Cambio en el decode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Añadir una rutina diferente para hacer el decode y redondear jschl_answer, simulando lo que hace la rutina javascript de la protección cloudflare. --- plugin.video.alfa/core/cloudflare.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/core/cloudflare.py b/plugin.video.alfa/core/cloudflare.py index 356eb310..2c1605d2 100755 --- a/plugin.video.alfa/core/cloudflare.py +++ b/plugin.video.alfa/core/cloudflare.py @@ -62,12 +62,13 @@ 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))) - self.js_data["params"]["jschl_answer"] = jschl_answer + len(self.domain) + jschl_answer += 0.00000000005 if jschl_answer >= 0 else -0.00000000005 + 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 +86,27 @@ 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) + def decode(self, data): t = time.time() timeout = False