From 8f89c91cb84947484bf94619651246d481d494ea Mon Sep 17 00:00:00 2001
From: League of Poro <95635582+LeagueOfPoro@users.noreply.github.com>
Date: Mon, 30 Jan 2023 14:21:18 +0100
Subject: [PATCH] Sequential login for 2FA accs

---
 Browser.py | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/Browser.py b/Browser.py
index 2449145..fdc4be0 100644
--- a/Browser.py
+++ b/Browser.py
@@ -48,17 +48,17 @@ def login(self, username: str, password: str, refreshLock) -> bool:
         self.client.get(
             "https://login.leagueoflegends.com/?redirect_uri=https://lolesports.com/&lang=en")
         self.__loadCookies()
-        # Submit credentials
-        data = {"type": "auth", "username": username,
-                "password": password, "remember": True, "language": "en_US"}
-        res = self.client.put(
-            "https://auth.riotgames.com/api/v1/authorization", json=data)
-        resJson = res.json()
         try:
+            refreshLock.acquire()
+            # Submit credentials
+            data = {"type": "auth", "username": username,
+                    "password": password, "remember": True, "language": "en_US"}
+            res = self.client.put(
+                "https://auth.riotgames.com/api/v1/authorization", json=data)
+            resJson = res.json()
             if "multifactor" in resJson.get("type", ""):
-                refreshLock.acquire()
                 twoFactorCode = input(f"Enter 2FA code for {self.account}:\n")
-                refreshLock.release()
+                print("Code sent")
                 data = {"type": "multifactor", "code": twoFactorCode, "rememberDevice": True}
                 res = self.client.put(
                     "https://auth.riotgames.com/api/v1/authorization", json=data)
@@ -67,6 +67,8 @@ def login(self, username: str, password: str, refreshLock) -> bool:
             res = self.client.get(resJson["response"]["parameters"]["uri"])
         except KeyError:
             return False
+        finally:
+            refreshLock.release()
         # Login to lolesports.com, riotgames.com, and playvalorant.com
         token, state = self.__getLoginTokens(res.text)
         if token and state: