diff options
author | Ryan Huber <rhuber@gmail.com> | 2014-12-09 17:42:56 -0800 |
---|---|---|
committer | Ryan Huber <rhuber@gmail.com> | 2014-12-09 17:42:56 -0800 |
commit | f22bac58544a4472428b96261ba87abf1ca21822 (patch) | |
tree | 5d75135f4449aa8f11a0fa8b959eb56410e956e6 /wee_slack.py | |
parent | 233558ebd7eb5e23ce6794ed67b6213e5fa4d822 (diff) | |
download | wee-slack-f22bac58544a4472428b96261ba87abf1ca21822.tar.gz |
linkify users and channels
Diffstat (limited to 'wee_slack.py')
-rw-r--r-- | wee_slack.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/wee_slack.py b/wee_slack.py index 9382b13..4ccf900 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -348,8 +348,18 @@ class Channel(SlackThing): def set_typing(self, user): self.typing[user] = time.time() def send_message(self, message): + message = self.linkify_text(message) + dbg(message) request = {"type":"message", "channel":self.identifier, "text": message} self.server.ws.send(json.dumps(request)) + def linkify_text(self, message): + message = message.split(' ') + for item in enumerate(message): + if item[1].startswith('@') and self.server.users.find(item[1]): + message[item[0]] = "<@{}>".format(self.server.users.find(item[1]).identifier) + if item[1].startswith('#') and self.server.channels.find(item[1]): + message[item[0]] = "<#{}>".format(self.server.channels.find(item[1]).identifier) + return " ".join(message) def set_topic(self, topic): topic = topic.encode('ascii', 'ignore') w.buffer_set(self.channel_buffer, "title", topic); @@ -483,7 +493,7 @@ class User(SlackThing): self.nicklist_pointer = w.nicklist_add_nick(server.buffer, "", self.name, self.color(), "+", "", 1) # w.nicklist_add_nick(server.buffer, "", self.colorized_name(), "", "", "", 1) def __eq__(self, compare_str): - if compare_str == self.name or compare_str == self.identifier: + if compare_str == self.name or compare_str == "@" + self.name or compare_str == self.identifier: return True else: return False |