Added acceptUsersToGroup and denyUsersFromGroup
This commit is contained in:
committed by
GitHub
parent
7e8e7f15a4
commit
bdcc2d2fa4
@@ -186,25 +186,6 @@ class Client(object):
|
|||||||
"""
|
"""
|
||||||
return self.graphql_requests(query)[0]
|
return self.graphql_requests(query)[0]
|
||||||
|
|
||||||
def _forcedFetch(self, thread_id, mid):
|
|
||||||
full_data = {
|
|
||||||
"av": self.uid,
|
|
||||||
"batch_name": "MessengerMessageDFFFetcher",
|
|
||||||
"queries": """{
|
|
||||||
"o0": {
|
|
||||||
"doc_id": "1768656253222505",
|
|
||||||
"query_params": {
|
|
||||||
"thread_and_message_id": {
|
|
||||||
"thread_id": "%s",
|
|
||||||
"message_id": "%s"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}""" % (thread_id, mid)
|
|
||||||
}
|
|
||||||
r = self._post(self.req_url.GRAPHQL, full_data, fix_request=False, as_json=True)
|
|
||||||
return ast.literal_eval(get_decoded_r(r).replace("\n","").replace("\r","").replace(" ","").replace("}{", ",").replace(":null", ":None").replace("true", "True").replace("false", "False"))
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
END INTERNAL REQUEST METHODS
|
END INTERNAL REQUEST METHODS
|
||||||
"""
|
"""
|
||||||
@@ -495,6 +476,15 @@ class Client(object):
|
|||||||
FETCH METHODS
|
FETCH METHODS
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def _forcedFetch(self, thread_id, mid):
|
||||||
|
j = self.graphql_request(GraphQL(doc_id='1768656253222505', params={
|
||||||
|
'thread_and_message_id': {
|
||||||
|
'thread_id': thread_id,
|
||||||
|
'message_id': mid
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
return j
|
||||||
|
|
||||||
def fetchAllUsers(self):
|
def fetchAllUsers(self):
|
||||||
"""
|
"""
|
||||||
Gets all users the client is currently chatting with
|
Gets all users the client is currently chatting with
|
||||||
@@ -1174,6 +1164,44 @@ class Client(object):
|
|||||||
|
|
||||||
j = self._post(self.req_url.APPROVAL_MODE, data, fix_request=True, as_json=True)
|
j = self._post(self.req_url.APPROVAL_MODE, data, fix_request=True, as_json=True)
|
||||||
|
|
||||||
|
def _usersApproval(self, user_ids, approve, thread_id=None):
|
||||||
|
thread_id, thread_type = self._getThread(thread_id, None)
|
||||||
|
if not isinstance(user_ids, list):
|
||||||
|
user_ids = [user_ids]
|
||||||
|
|
||||||
|
# Make list of users unique
|
||||||
|
user_ids = list(set(user_ids))
|
||||||
|
j = self.graphql_request(GraphQL(doc_id='1574519202665847', params={
|
||||||
|
'data': {
|
||||||
|
'client_mutation_id': '0',
|
||||||
|
'actor_id': self.uid,
|
||||||
|
'thread_fbid': thread_id,
|
||||||
|
'user_ids': user_ids,
|
||||||
|
'response': 'ACCEPT' if approve else 'DENY',
|
||||||
|
'surface': 'ADMIN_MODEL_APPROVAL_CENTER'
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
|
def acceptUsersToGroup(self, user_ids, thread_id=None):
|
||||||
|
"""
|
||||||
|
Accepts users to the group from the group's approval
|
||||||
|
|
||||||
|
:param user_ids: One or more user IDs to accept
|
||||||
|
:param thread_id: Group ID to accept users to. See :ref:`intro_threads`
|
||||||
|
:raises: FBchatException if request failed
|
||||||
|
"""
|
||||||
|
self._usersApproval(user_ids, True, thread_id)
|
||||||
|
|
||||||
|
def denyUsersFromGroup(self, user_ids, thread_id=None):
|
||||||
|
"""
|
||||||
|
Denies users from the group's approval
|
||||||
|
|
||||||
|
:param user_ids: One or more user IDs to deny
|
||||||
|
:param thread_id: Group ID to deny users from. See :ref:`intro_threads`
|
||||||
|
:raises: FBchatException if request failed
|
||||||
|
"""
|
||||||
|
self._usersApproval(user_ids, False, thread_id)
|
||||||
|
|
||||||
def changeThreadImage(self, image_id, thread_id=None, thread_type=ThreadType.USER):
|
def changeThreadImage(self, image_id, thread_id=None, thread_type=ThreadType.USER):
|
||||||
"""
|
"""
|
||||||
Changes a thread image from an image id
|
Changes a thread image from an image id
|
||||||
@@ -1775,7 +1803,7 @@ class Client(object):
|
|||||||
mid = delta.get("messageId")
|
mid = delta.get("messageId")
|
||||||
thread_id = str(delta['threadKey']['threadFbId'])
|
thread_id = str(delta['threadKey']['threadFbId'])
|
||||||
fetch_info = self._forcedFetch(thread_id, mid)
|
fetch_info = self._forcedFetch(thread_id, mid)
|
||||||
fetch_data = fetch_info["o0"]["data"]["message"]
|
fetch_data = fetch_info["message"]
|
||||||
author_id = fetch_data["message_sender"]["id"]
|
author_id = fetch_data["message_sender"]["id"]
|
||||||
ts = fetch_data["timestamp_precise"]
|
ts = fetch_data["timestamp_precise"]
|
||||||
if fetch_data.get("__typename") == "ThreadImageMessage":
|
if fetch_data.get("__typename") == "ThreadImageMessage":
|
||||||
|
Reference in New Issue
Block a user