diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2020-03-02 19:32:50 +0100 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2020-03-02 21:37:22 +0100 |
commit | e7f539527a3510ec04150a54f62b2c97522bfe57 (patch) | |
tree | 9f8e6677c6e55287a70064517d0f3cd782b29d21 | |
parent | a7ef45db66ade0e96a4ea1cb45102827089cb9ef (diff) | |
download | wee-slack-e7f539527a3510ec04150a54f62b2c97522bfe57.tar.gz |
Set presence to active when switching buffer or calling /slack back
-rw-r--r-- | wee_slack.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/wee_slack.py b/wee_slack.py index b845105..ae38816 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -851,10 +851,9 @@ def input_text_for_buffer_cb(data, modifier, current_buffer, string): @utf8_decode def buffer_switch_callback(signal, sig_type, data): """ - incomplete Every time we change channels in weechat, we call this to: 1) set read marker 2) determine if we have already populated - channel history data + channel history data 3) set presence to active """ eventrouter = eval(signal) @@ -868,6 +867,7 @@ def buffer_switch_callback(signal, sig_type, data): if new_channel: if not new_channel.got_history: new_channel.get_history() + set_own_presence_active(new_channel.team) eventrouter.weechat_controller.set_previous_buffer(data) return w.WEECHAT_RC_OK @@ -927,10 +927,7 @@ def typing_update_cb(data, remaining_calls): def slack_never_away_cb(data, remaining_calls): if config.never_away: for team in EVENTROUTER.teams.values(): - slackbot = team.get_channel_map()['Slackbot'] - channel = team.channels[slackbot] - request = {"type": "typing", "channel": channel.identifier} - channel.team.send_to_websocket(request, expect_reply=False) + set_own_presence_active(team) return w.WEECHAT_RC_OK @@ -3567,6 +3564,14 @@ def tag(tagset=None, user=None, self_msg=False, backlog=False, no_log=False, ext tags |= set(extra_tags) return ",".join(tags) + +def set_own_presence_active(team): + slackbot = team.get_channel_map()['Slackbot'] + channel = team.channels[slackbot] + request = {"type": "typing", "channel": channel.identifier} + channel.team.send_to_websocket(request, expect_reply=False) + + ###### New/converted command_ commands @@ -4381,6 +4386,7 @@ def command_back(data, current_buffer, args): team = EVENTROUTER.weechat_controller.buffers[current_buffer].team s = SlackRequest(team, "users.setPresence", {"presence": "auto"}) EVENTROUTER.receive(s) + set_own_presence_active(team) return w.WEECHAT_RC_OK |