diff --git a/gallery_dl/cloudflare.py b/gallery_dl/cloudflare.py index 7ca8321a..ab0c3d7f 100644 --- a/gallery_dl/cloudflare.py +++ b/gallery_dl/cloudflare.py @@ -61,11 +61,18 @@ def solve_jschl(url, page): value = evaluate_expression(expr[vlength+2:]) solution = func(solution, value) elif expr.startswith("a.value"): - return solution + len(urllib.parse.urlsplit(url).netloc) + solution += len(urllib.parse.urlsplit(url).netloc) + if ".toFixed(" in expr: + solution = "{:.10f}".format(solution) + return solution def evaluate_expression(expr): """Evaluate a Javascript expression for the challenge""" + if "/" in expr: + num, _, denom = expr.partition("/") + return evaluate_expression(num) / evaluate_expression(denom) + stack = [] ranges = [] value = ""