From 0e0fce714aed5c315733eb73802284c207cc78c9 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Thu, 9 Jan 2020 10:39:30 +0100 Subject: [PATCH] Allow on_2fa_callback to be None in Session.login --- fbchat/_client.py | 20 -------------------- fbchat/_session.py | 9 +++++++-- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/fbchat/_client.py b/fbchat/_client.py index 4f6e5a9..7d50339 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -2663,26 +2663,6 @@ class Client: EVENTS """ - def on_logging_in(self, email=None): - """Called when the client is logging in. - - Args: - email: The email of the client - """ - log.info("Logging in {}...".format(email)) - - def on_2fa_code(self): - """Called when a 2FA code is needed to progress.""" - return input("Please enter your 2FA code --> ") - - def on_logged_in(self, email=None): - """Called when the client is successfully logged in. - - Args: - email: The email of the client - """ - log.info("Login of {} successful.".format(email)) - def on_listening(self): """Called when the client is listening.""" log.info("Listening...") diff --git a/fbchat/_session.py b/fbchat/_session.py index 581813f..886acc8 100644 --- a/fbchat/_session.py +++ b/fbchat/_session.py @@ -132,13 +132,14 @@ class Session: } @classmethod - def login(cls, email, password, on_2fa_callback): + def login(cls, email, password, on_2fa_callback=None): """Login the user, using ``email`` and ``password``. Args: email: Facebook ``email`` or ``id`` or ``phone number`` password: Facebook account password - on_2fa_callback: Function that will be called, in case a 2FA code is needed + on_2fa_callback: Function that will be called, in case a 2FA code is needed. + This should return the requested 2FA code. Raises: FBchatException: On failed login @@ -159,6 +160,10 @@ class Session: # Usually, 'Checkpoint' will refer to 2FA if "checkpoint" in r.url and ('id="approvals_code"' in r.text.lower()): + if not on_2fa_callback: + raise _exception.FBchatException( + "2FA code required, please add `on_2fa_callback` to .login" + ) code = on_2fa_callback() r = _2fa_helper(session, code, r)