From 77de59f9e0e0f736267e3ba3a3a3fbd7eeb656ad Mon Sep 17 00:00:00 2001 From: Frikky Date: Fri, 23 Feb 2024 16:44:23 +0100 Subject: [PATCH] Fixed app sdk problem with base64 decode for Gmail/Outlook --- backend/app_sdk/app_base.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/app_sdk/app_base.py b/backend/app_sdk/app_base.py index a7e1e7bf..54e4f770 100755 --- a/backend/app_sdk/app_base.py +++ b/backend/app_sdk/app_base.py @@ -96,6 +96,7 @@ def md5_base64(a): @shuffle_filters.register def base64_encode(a): a = str(a) + try: return base64.b64encode(a.encode('utf-8')).decode() except: @@ -104,6 +105,18 @@ def base64_encode(a): @shuffle_filters.register def base64_decode(a): a = str(a) + + if "-" in a: + a = a.replace("-", "+", -1) + + if "_" in a: + a = a.replace("_", "/", -1) + + # Fix padding + if len(a) % 4 != 0: + a += "=" * (4 - len(a) % 4) + print("Added padding") + try: return base64.b64decode(a).decode("unicode_escape") except: @@ -543,11 +556,13 @@ class AppBase: try: ret = requests.post(url, headers=headers, json=action_result, timeout=10, verify=False, proxies=self.proxy_config) - self.logger.info(f"""[DEBUG] Successful request result request: Status= {ret.status_code} (break on 200/201) & Response= {ret.text}. Action status: {action_result["status"]}""") + self.logger.info(f"""[DEBUG] Successful result request: Status= {ret.status_code} (break on 200/201) & Action status: {action_result["status"]}. Response= {ret.text}""") if ret.status_code == 200 or ret.status_code == 201: finished = True break else: + # FIXME: Add a checker for 403, and Proxy logs failing + self.logger.info(f"[ERROR] Bad resp {ret.status_code}: {ret.text}") time.sleep(sleeptime)