Move Client._upload to State

This commit is contained in:
Mads Marquart
2019-08-28 13:27:09 +02:00
parent ef8e7d4251
commit 3dce83de93
2 changed files with 27 additions and 24 deletions

View File

@@ -1305,30 +1305,7 @@ class Client(object):
) )
def _upload(self, files, voice_clip=False): def _upload(self, files, voice_clip=False):
"""Upload files to Facebook. return self._state._upload(files, voice_clip=voice_clip)
`files` should be a list of files that requests can upload, see
`requests.request <https://docs.python-requests.org/en/master/api/#requests.request>`_.
Return a list of tuples with a file's ID and mimetype.
"""
file_dict = {"upload_{}".format(i): f for i, f in enumerate(files)}
data = {"voice_clip": voice_clip}
j = self._payload_post(
"https://upload.facebook.com/ajax/mercury/upload.php", data, files=file_dict
)
if len(j["metadata"]) != len(files):
raise FBchatException(
"Some files could not be uploaded: {}, {}".format(j, files)
)
return [
(data[mimetype_to_key(data["filetype"])], data["filetype"])
for data in j["metadata"]
]
def _sendFiles( def _sendFiles(
self, files, message=None, thread_id=None, thread_type=ThreadType.USER self, files, message=None, thread_id=None, thread_type=ThreadType.USER

View File

@@ -266,3 +266,29 @@ class State(object):
"queries": _graphql.queries_to_json(*queries), "queries": _graphql.queries_to_json(*queries),
} }
return self._post("/api/graphqlbatch/", data, as_graphql=True) return self._post("/api/graphqlbatch/", data, as_graphql=True)
def _upload(self, files, voice_clip=False):
"""Upload files to Facebook.
`files` should be a list of files that requests can upload, see
`requests.request <https://docs.python-requests.org/en/master/api/#requests.request>`_.
Return a list of tuples with a file's ID and mimetype.
"""
file_dict = {"upload_{}".format(i): f for i, f in enumerate(files)}
data = {"voice_clip": voice_clip}
j = self._payload_post(
"https://upload.facebook.com/ajax/mercury/upload.php", data, files=file_dict
)
if len(j["metadata"]) != len(files):
raise _exception.FBchatException(
"Some files could not be uploaded: {}, {}".format(j, files)
)
return [
(data[_util.mimetype_to_key(data["filetype"])], data["filetype"])
for data in j["metadata"]
]