diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2018-08-21 22:28:16 +0200 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2018-08-21 22:36:53 +0200 |
commit | 9064677abfb3fe7dc63b3d13ecf0e4c477632437 (patch) | |
tree | ecf5470513f930ee4980b0656f779c5bf0d75bb0 | |
parent | 601ce1e69e6f1ace2a8d8601e4e4e002af500096 (diff) | |
download | wee-slack-9064677abfb3fe7dc63b3d13ecf0e4c477632437.tar.gz |
Cleanup process_reply
There is no point in creating a SlackMessage when we're just going to
use message_json. I think this is just left over from when more of the
message was actually used.
It's not necessary to reset ws_counter. Python supports arbitrarily
large ints, and Slacks docs doesn't specify a limit (it does says that
the int should be unique for that connection, so this is more in line
with the docs). I tested the API with 2^65 and that worked fine. It
returns a string instead of an int if it's larger than 2^31 - 1 though,
so we convert it to an int to be sure.
-rw-r--r-- | wee_slack.py | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/wee_slack.py b/wee_slack.py index efa5307..c4df9ba 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -1194,8 +1194,6 @@ class SlackTeam(object): self.ws_url = url def next_ws_transaction_id(self): - if self.ws_counter > 999: - self.ws_counter = 0 self.ws_counter += 1 return self.ws_counter @@ -2589,31 +2587,16 @@ def subprocess_channel_topic(message_json, eventrouter, channel, team): def process_reply(message_json, eventrouter, **kwargs): - dbg('processing reply') team = kwargs["team"] - identifier = message_json["reply_to"] - try: - original_message_json = team.ws_replies[identifier] - del team.ws_replies[identifier] - if "ts" in message_json: - original_message_json["ts"] = message_json["ts"] - else: - dbg("no reply ts {}".format(message_json)) - - c = original_message_json.get('channel', None) - channel = team.channels[c] - m = SlackMessage(original_message_json, team, channel) - - # if "type" in message_json: - # if message_json["type"] == "message" and "channel" in message_json.keys(): - # message_json["ts"] = message_json["ts"] - # channels.find(message_json["channel"]).store_message(m, from_me=True) - - # channels.find(message_json["channel"]).buffer_prnt(server.nick, m.render(), m.ts) - - process_message(m.message_json, eventrouter, channel=channel, team=team) + reply_to = int(message_json["reply_to"]) + original_message_json = team.ws_replies.pop(reply_to, None) + if original_message_json: + original_message_json.update(message_json) + channel = team.channels[original_message_json.get('channel')] + process_message(original_message_json, eventrouter, + channel=channel, team=team) dbg("REPLY {}".format(message_json)) - except KeyError: + else: dbg("Unexpected reply {}".format(message_json)) |