Skip to content

Commit bfca20b

Browse files
committed
Privatize req_counter, payloadDefault and seq client variables
These have complicated semantics, and so are hopefully not depended on externally
1 parent 0fd86d0 commit bfca20b

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

fbchat/_client.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ def __init__(
7070
"""
7171
self._sticky, self._pool = (None, None)
7272
self._session = requests.session()
73-
self.req_counter = 1
74-
self.seq = "0"
73+
self._req_counter = 1
74+
self._seq = "0"
7575
# See `createPoll` for the reason for using `OrderedDict` here
76-
self.payloadDefault = OrderedDict()
76+
self._payload_default = OrderedDict()
7777
self._default_thread_id = None
7878
self._default_thread_type = None
7979
self.req_url = ReqUrl()
@@ -109,12 +109,12 @@ def _generatePayload(self, query):
109109
"""Adds the following defaults to the payload:
110110
__rev, __user, __a, ttstamp, fb_dtsg, __req
111111
"""
112-
payload = self.payloadDefault.copy()
112+
payload = self._payload_default.copy()
113113
if query:
114114
payload.update(query)
115-
payload["__req"] = str_base(self.req_counter, 36)
116-
payload["seq"] = self.seq
117-
self.req_counter += 1
115+
payload["__req"] = str_base(self._req_counter, 36)
116+
payload["seq"] = self._seq
117+
self._req_counter += 1
118118
return payload
119119

120120
def _fix_fb_errors(self, error_code):
@@ -212,7 +212,7 @@ def _cleanGet(self, url, query=None, timeout=30, allow_redirects=True):
212212
)
213213

214214
def _cleanPost(self, url, query=None, timeout=30):
215-
self.req_counter += 1
215+
self._req_counter += 1
216216
return self._session.post(
217217
url,
218218
headers=self._header,
@@ -296,14 +296,14 @@ def graphql_request(self, query):
296296
"""
297297

298298
def _resetValues(self):
299-
self.payloadDefault = OrderedDict()
299+
self._payload_default = OrderedDict()
300300
self._session = requests.session()
301-
self.req_counter = 1
302-
self.seq = "0"
301+
self._req_counter = 1
302+
self._seq = "0"
303303
self._uid = None
304304

305305
def _postLogin(self):
306-
self.payloadDefault = OrderedDict()
306+
self._payload_default = OrderedDict()
307307
self._client_id = hex(int(random() * 2147483648))[2:]
308308
self._uid = self._session.cookies.get_dict().get("c_user")
309309
if self._uid is None:
@@ -328,13 +328,13 @@ def _postLogin(self):
328328
ttstamp += str(ord(i))
329329
ttstamp += "2"
330330
# Set default payload
331-
self.payloadDefault["__rev"] = int(
331+
self._payload_default["__rev"] = int(
332332
r.text.split('"client_revision":', 1)[1].split(",", 1)[0]
333333
)
334-
self.payloadDefault["__user"] = self._uid
335-
self.payloadDefault["__a"] = "1"
336-
self.payloadDefault["ttstamp"] = ttstamp
337-
self.payloadDefault["fb_dtsg"] = fb_dtsg
334+
self._payload_default["__user"] = self._uid
335+
self._payload_default["__a"] = "1"
336+
self._payload_default["ttstamp"] = ttstamp
337+
self._payload_default["fb_dtsg"] = fb_dtsg
338338

339339
def _login(self, email, password):
340340
soup = bs(self._get(self.req_url.MOBILE).text, "html.parser")
@@ -1320,7 +1320,7 @@ def _doSendRequest(self, data, get_thread_id=False):
13201320
# update JS token if received in response
13211321
fb_dtsg = get_jsmods_require(j, 2)
13221322
if fb_dtsg is not None:
1323-
self.payloadDefault["fb_dtsg"] = fb_dtsg
1323+
self._payload_default["fb_dtsg"] = fb_dtsg
13241324

13251325
try:
13261326
message_ids = [
@@ -2069,7 +2069,7 @@ def createPoll(self, poll, thread_id=None):
20692069

20702070
# We're using ordered dicts, because the Facebook endpoint that parses the POST
20712071
# parameters is badly implemented, and deals with ordering the options wrongly.
2072-
# This also means we had to change `client.payloadDefault` to an ordered dict,
2072+
# This also means we had to change `client._payload_default` to an ordered dict,
20732073
# since that's being copied in between this point and the `requests` call
20742074
#
20752075
# If you can find a way to fix this for the endpoint, or if you find another
@@ -2948,7 +2948,7 @@ def getThreadIdAndThreadType(msg_metadata):
29482948

29492949
def _parseMessage(self, content):
29502950
"""Get message and author name from content. May contain multiple messages in the content."""
2951-
self.seq = content.get("seq", "0")
2951+
self._seq = content.get("seq", "0")
29522952

29532953
if "lb_info" in content:
29542954
self._sticky = content["lb_info"]["sticky"]

0 commit comments

Comments
 (0)