From dc12e01fc7dd906fa31b9af41517549db038ee02 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Wed, 26 Jun 2019 23:02:48 +0200 Subject: [PATCH] Move logout code to State --- fbchat/_client.py | 16 +++++----------- fbchat/_state.py | 14 ++++++++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fbchat/_client.py b/fbchat/_client.py index 002b125..bff06db 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -332,17 +332,11 @@ class Client(object): :return: True if the action was successful :rtype: bool """ - logout_h = self._state.logout_h - if not logout_h: - h_r = self._post("/bluebar/modern_settings_menu/", {"pmid": "4"}) - logout_h = re.search(r'name=\\"h\\" value=\\"(.*?)\\"', h_r.text).group(1) - - data = {"ref": "mb", "h": logout_h} - - r = self._get("/logout.php", data) - self._state = None - self._uid = None - return r.ok + if self._state.logout(): + self._state = None + self._uid = None + return True + return False """ END LOGIN METHODS diff --git a/fbchat/_state.py b/fbchat/_state.py index 8741f25..03f9970 100644 --- a/fbchat/_state.py +++ b/fbchat/_state.py @@ -93,10 +93,6 @@ class State(object): return None return str(rtn) - @property - def logout_h(self): - return self._logout_h - def get_params(self): if self.fb_dtsg is None: return {} @@ -143,6 +139,16 @@ class State(object): "(Failed on url: {})".format(r.url) ) + def logout(self): + logout_h = self._logout_h + if not logout_h: + url = _util.prefix_url("/bluebar/modern_settings_menu/") + h_r = self._session.post(url, data={"pmid": "4"}) + logout_h = re.search(r'name=\\"h\\" value=\\"(.*?)\\"', h_r.text).group(1) + + url = _util.prefix_url("/logout.php") + return self._session.get(url, params={"ref": "mb", "h": logout_h}).ok + @classmethod def from_session(cls, session): r = session.get(_util.prefix_url("/"))