From 5f9f290ba416ebac68f43a8b252f14255c5963b7 Mon Sep 17 00:00:00 2001 From: gryf Date: Mon, 13 Feb 2017 19:50:20 +0100 Subject: [PATCH] Fix for message comment. If comment is sent by the user, different structure of the data is sent. First of all, the type of this message is "message", but it contain dictionary under 'comment' key, which can be confusing, which contain needed data (like user id). For this kind of messages, in case of lack of 'user' in main dict, dict['comment']['user'] will be used for getting user identifier, while dict['text'] remains as a message text. --- setup.py | 2 +- slack_backup/client.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 0fb7090..2e25bc2 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ except ImportError: setup(name="slack-backup", packages=["slack_backup"], - version="0.4.4", + version="0.4.5", description="Make copy of slack converstaions", author="Roman Dobosz", author_email="gryf73@gmail.com", diff --git a/slack_backup/client.py b/slack_backup/client.py index 9e2a2c6..52da951 100644 --- a/slack_backup/client.py +++ b/slack_backup/client.py @@ -147,8 +147,12 @@ class Client(object): Create message with corresponding possible metadata, like reactions, files etc. """ - user = self.q(o.User).\ - filter(o.User.slackid == data['user']).one() + try: + user = self.q(o.User).\ + filter(o.User.slackid == data['user']).one() + except KeyError: + user = self.q(o.User).\ + filter(o.User.slackid == data['comment']['user']).one() if data['type'] == 'message' and not data['text'].strip(): logging.info("Skipping message from `%s' since it's empty",