diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2018-08-10 17:23:09 +0200 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2018-08-10 20:44:14 +0200 |
commit | cd742e1b8fa9544e7dc960efa47ea0d524763e41 (patch) | |
tree | f0e9e96865db3295706ddb8164d698639086dda1 | |
parent | aa2b279f84f0faaf30d22947ec2ef634de6a24aa (diff) | |
download | wee-slack-cd742e1b8fa9544e7dc960efa47ea0d524763e41.tar.gz |
Render files after message instead of changing message text
Instead of changing the message text, append the files belonging to the
message when we render the message. This is the same as we do with
attachments. This fixes the issue where the files would not be shown
anymore if a message is changed.
The rendering format of the files is changed to match the way we render
refs.
-rw-r--r-- | wee_slack.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/wee_slack.py b/wee_slack.py index ffc7249..6439ba1 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -2113,14 +2113,6 @@ class SlackMessage(object): message_json['text'] ) - if message_json.get('upload'): - parts = [message_json['text']] - for f in message_json.get('files', []): - parts.append("({}) - {}".format( - f.get('title'), - f.get('url_private'))) - message_json['text'] = ' | '.join(p for p in parts if p) - def __hash__(self): return hash(self.ts) @@ -2791,6 +2783,8 @@ def render(message_json, team, channel, force=False): text += unfurl_refs(unwrap_attachments(message_json, text)) + text += unfurl_refs(unwrap_files(message_json, text)) + text = text.lstrip() text = unhtmlescape(text.replace("\t", " ")) if message_json.get('mrkdwn', True): @@ -2960,6 +2954,14 @@ def unwrap_attachments(message_json, text_before): return "\n".join(attachment_texts) +def unwrap_files(message_json, text_before): + files_texts = ['{} ({})'.format(f['url_private'], f['title']) + for f in message_json.get('files', [])] + if text_before: + files_texts.insert(0, '') + return "\n".join(files_texts) + + def resolve_ref(ref): # TODO: This hack to use eventrouter needs to go # this resolver should probably move to the slackteam or eventrouter itself |