Changed changeThreadImageX to changeGroupImageX

This commit is contained in:
Mads Marquart
2018-08-29 14:37:29 +02:00
parent d7d1c83276
commit 3be0d8389b
2 changed files with 13 additions and 27 deletions

View File

@@ -1338,21 +1338,16 @@ class Client(object):
""" """
self._usersApproval(user_ids, False, thread_id) self._usersApproval(user_ids, False, thread_id)
def changeThreadImage(self, image_id, thread_id=None, thread_type=ThreadType.GROUP): def _changeGroupImage(self, image_id, thread_id=None):
""" """
Changes a thread image from an image id Changes a thread image from an image id
:param image_id: ID of uploaded image :param image_id: ID of uploaded image
:param thread_id: User/Group ID to change image. See :ref:`intro_threads` :param thread_id: User/Group ID to change image. See :ref:`intro_threads`
:param thread_type: See :ref:`intro_threads`
:type thread_type: models.ThreadType
:raises: FBchatException if request failed :raises: FBchatException if request failed
""" """
thread_id, thread_type = self._getThread(thread_id, thread_type) thread_id, thread_type = self._getThread(thread_id, None)
if thread_type != ThreadType.GROUP:
raise FBchatUserError('Can only change the image of group threads')
data = { data = {
'thread_image_id': image_id, 'thread_image_id': image_id,
@@ -1362,35 +1357,31 @@ class Client(object):
j = self._post(self.req_url.THREAD_IMAGE, data, fix_request=True, as_json=True) j = self._post(self.req_url.THREAD_IMAGE, data, fix_request=True, as_json=True)
return image_id return image_id
def changeThreadImageRemote(self, image_url, thread_id=None, thread_type=ThreadType.GROUP): def changeGroupImageRemote(self, image_url, thread_id=None):
""" """
Changes a thread image from a URL Changes a thread image from a URL
:param image_url: URL of an image to upload and change :param image_url: URL of an image to upload and change
:param thread_id: User/Group ID to change image. See :ref:`intro_threads` :param thread_id: User/Group ID to change image. See :ref:`intro_threads`
:param thread_type: See :ref:`intro_threads`
:type thread_type: models.ThreadType
:raises: FBchatException if request failed :raises: FBchatException if request failed
""" """
(image_id, mimetype), = self._upload(get_files_from_urls([image_url])) (image_id, mimetype), = self._upload(get_files_from_urls([image_url]))
return self.changeThreadImage(image_id, thread_id, thread_type) return self._changeGroupImage(image_id, thread_id)
def changeThreadImageLocal(self, image_path, thread_id=None, thread_type=ThreadType.GROUP): def changeGroupImageLocal(self, image_path, thread_id=None):
""" """
Changes a thread image from a local path Changes a thread image from a local path
:param image_path: Path of an image to upload and change :param image_path: Path of an image to upload and change
:param thread_id: User/Group ID to change image. See :ref:`intro_threads` :param thread_id: User/Group ID to change image. See :ref:`intro_threads`
:param thread_type: See :ref:`intro_threads`
:type thread_type: models.ThreadType
:raises: FBchatException if request failed :raises: FBchatException if request failed
""" """
with get_files_from_paths([image_path]) as files: with get_files_from_paths([image_path]) as files:
(image_id, mimetype), = self._upload(files) (image_id, mimetype), = self._upload(files)
return self.changeThreadImage(image_id, thread_id, thread_type) return self._changeGroupImage(image_id, thread_id)
def changeThreadTitle(self, title, thread_id=None, thread_type=ThreadType.USER): def changeThreadTitle(self, title, thread_id=None, thread_type=ThreadType.USER):
""" """
@@ -1600,21 +1591,16 @@ class Client(object):
""" """
self.createPlan(plan=Plan(time=time, title=title, location=location, location_id=location_id), thread_id=thread_id) self.createPlan(plan=Plan(time=time, title=title, location=location, location_id=location_id), thread_id=thread_id)
def createPoll(self, poll, thread_id=None, thread_type=None): def createPoll(self, poll, thread_id=None):
""" """
Creates poll in a group thread Creates poll in a group thread
:param poll: Poll to create :param poll: Poll to create
:param thread_id: User/Group ID to create poll in. See :ref:`intro_threads` :param thread_id: User/Group ID to create poll in. See :ref:`intro_threads`
:param thread_type: See :ref:`intro_threads`
:type poll: models.Poll :type poll: models.Poll
:type thread_type: models.ThreadType
:raises: FBchatException if request failed :raises: FBchatException if request failed
""" """
thread_id, thread_type = self._getThread(thread_id, thread_type) thread_id, thread_type = self._getThread(thread_id, None)
if thread_type != ThreadType.GROUP:
raise FBchatUserError('Can only create poll in group threads')
data = { data = {
"question_text": poll.title, "question_text": poll.title,
@@ -2510,7 +2496,7 @@ class Client(object):
log.info("Title change from {} in {} ({}): {}".format(author_id, thread_id, thread_type.name, new_title)) log.info("Title change from {} in {} ({}): {}".format(author_id, thread_id, thread_type.name, new_title))
def onImageChange(self, mid=None, author_id=None, new_image=None, thread_id=None, thread_type=ThreadType.USER, ts=None): def onImageChange(self, mid=None, author_id=None, new_image=None, thread_id=None, thread_type=ThreadType.GROUP, ts=None):
""" """
Called when the client is listening, and somebody changes the image of a thread Called when the client is listening, and somebody changes the image of a thread

View File

@@ -81,18 +81,18 @@ def test_change_emoji(client, catch_event, compare, emoji):
assert compare(x, new_emoji=emoji) assert compare(x, new_emoji=emoji)
def test_change_thread_image_local(client1, group, catch_event): def test_change_image_local(client1, group, catch_event):
url = path.join(path.dirname(__file__), "resources", "image.png") url = path.join(path.dirname(__file__), "resources", "image.png")
with catch_event("onImageChange") as x: with catch_event("onImageChange") as x:
image_id = client1.changeThreadImageLocal(url, group["id"]) image_id = client1.changeGroupImageLocal(url, group["id"])
assert subset(x.res, new_image=image_id, author_id=client1.uid, thread_id=group["id"]) assert subset(x.res, new_image=image_id, author_id=client1.uid, thread_id=group["id"])
# To be changed when merged into master # To be changed when merged into master
def test_change_thread_image_remote(client1, group, catch_event): def test_change_image_remote(client1, group, catch_event):
url = "https://github.com/carpedm20/fbchat/raw/master/tests/image.png" url = "https://github.com/carpedm20/fbchat/raw/master/tests/image.png"
with catch_event("onImageChange") as x: with catch_event("onImageChange") as x:
image_id = client1.changeThreadImageRemote(url, group["id"]) image_id = client1.changeGroupImageRemote(url, group["id"])
assert subset(x.res, new_image=image_id, author_id=client1.uid, thread_id=group["id"]) assert subset(x.res, new_image=image_id, author_id=client1.uid, thread_id=group["id"])