aboutsummaryrefslogtreecommitdiffstats
path: root/wee_slack.py
diff options
context:
space:
mode:
authorTollef Fog Heen <tfheen@err.no>2015-07-18 12:50:50 +0200
committerTollef Fog Heen <tfheen@err.no>2015-08-01 19:25:35 +0200
commit7b51bc3a9fb22e235a60ae2fe98b66f8bcf639d4 (patch)
tree471d22f540b4149e1a1c221825297029d3693d3a /wee_slack.py
parent4a4e11200f7317a03523e412ccc1426248218a4e (diff)
downloadwee-slack-7b51bc3a9fb22e235a60ae2fe98b66f8bcf639d4.tar.gz
Use nick lists for grouping here/away
Instead of using + to denote users present, use nick groups and label them Present and Away. Also, add all non-deleted users to the server buffer. I believe this should fix #72
Diffstat (limited to 'wee_slack.py')
-rw-r--r--wee_slack.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/wee_slack.py b/wee_slack.py
index 78ed425..f1b9646 100644
--- a/wee_slack.py
+++ b/wee_slack.py
@@ -49,6 +49,9 @@ SLACK_API_TRANSLATOR = {
}
+NICK_GROUP_HERE = "0|Here"
+NICK_GROUP_AWAY = "1|Away"
+
def dbg(message, fout=False, main_buffer=False):
message = "DEBUG: {}".format(message)
#message = message.encode('utf-8', 'replace')
@@ -284,6 +287,9 @@ class SlackServer(object):
self.buffer = w.buffer_new(self.domain, "buffer_input_cb", "", "", "")
w.buffer_set(self.buffer, "nicklist", "1")
+ w.nicklist_add_group(self.buffer, '', NICK_GROUP_HERE, "weechat.color.nicklist_group", 1)
+ w.nicklist_add_group(self.buffer, '', NICK_GROUP_AWAY, "weechat.color.nicklist_group", 1)
+
def create_slack_websocket(self, data):
web_socket_url = data['url']
try:
@@ -421,15 +427,20 @@ class Channel(SlackThing):
if self.channel_buffer:
w.buffer_set(self.channel_buffer, "nicklist", "1")
w.nicklist_remove_all(self.channel_buffer)
+
+ here = w.nicklist_add_group(self.channel_buffer,
+ '', NICK_GROUP_HERE, "weechat.color.nicklist_group", 1)
+ afk = w.nicklist_add_group(self.channel_buffer,
+ '', NICK_GROUP_AWAY, "weechat.color.nicklist_group", 1)
try:
for user in self.members:
user = self.server.users.find(user)
if user.deleted:
continue
if user.presence == 'away':
- w.nicklist_add_nick(self.channel_buffer, "", user.name, user.color_name, " ", "", 1)
+ w.nicklist_add_nick(self.channel_buffer, afk, user.name, user.color_name, "", "", 1)
else:
- w.nicklist_add_nick(self.channel_buffer, "", user.name, user.color_name, "+", "", 1)
+ w.nicklist_add_nick(self.channel_buffer, here, user.name, user.color_name, "", "", 1)
except Exception as e:
print "DEBUG: {} {} {}".format(self.identifier, self.name, e)
@@ -676,10 +687,14 @@ class User(SlackThing):
self.server = server
self.update_color()
self.name_regex = re.compile(r"([\W]|\A)(@{0,1})" + self.name + "('s|[^'\w]|\Z)")
+
+ if deleted:
+ return
if self.presence == 'away':
- self.nicklist_pointer = w.nicklist_add_nick(server.buffer, "", self.name, self.color_name, " ", "", 0)
+ ngroup = w.nicklist_search_group(server.buffer, "", NICK_GROUP_AWAY)
else:
- self.nicklist_pointer = w.nicklist_add_nick(server.buffer, "", self.name, self.color_name, "+", "", 1)
+ ngroup = w.nicklist_search_group(server.buffer, "", NICK_GROUP_HERE)
+ self.nicklist_pointer = w.nicklist_add_nick(server.buffer, ngroup, self.name, self.color_name, "", "", 1)
# w.nicklist_add_nick(server.buffer, "", self.formatted_name(), "", "", "", 1)
def __eq__(self, compare_str):
@@ -693,7 +708,6 @@ class User(SlackThing):
for channel in self.server.channels:
if channel.has_user(self.identifier):
channel.update_nicklist()
- w.nicklist_nick_set(self.server.buffer, self.nicklist_pointer, "prefix", "+")
w.nicklist_nick_set(self.server.buffer, self.nicklist_pointer, "visible", "1")
buffer_list_update_next()
@@ -702,7 +716,6 @@ class User(SlackThing):
for channel in self.server.channels:
if channel.has_user(self.identifier):
channel.update_nicklist()
- w.nicklist_nick_set(self.server.buffer, self.nicklist_pointer, "prefix", " ")
w.nicklist_nick_set(self.server.buffer, self.nicklist_pointer, "visible", "0")
buffer_list_update_next()