| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
rtm.start is deprecated and will stop working on September 20, 2022.
This patch replaces it with several other API endpoints to get the info
we need.
The handle_rtmstart method is kept for the test setup to work, but this
setup should also be replaced with the new API endpoints.
This is a necessary step for #699 and #844
|
| |
|
| |
|
| |
|
|
|
|
|
| |
On connection check closed IM channels for unread messages and if any
are found open a buffer. This ensures that new direct messages are not
missed.
|
|
|
|
| |
Fixes #869
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Slack API has changed message_changed events from having a unique ts
to having the ts of the message that's changed, which means that the
condition in the start of process_message to not process duplicate
messages (see commit 68966be for info about that) made it skip the
message_changed events.
To fix this, only do this duplication check for messages without a
subtype (i.e. new normal messages). This condition is becoming a bit
convoluted, so it might be better to do this duplication check another
way, but this will have to do for now to get the issue fixed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Python 2, weechat.string_remove_color doesn't work for Unicode
strings containing non-ASCII characters. The string must be converted
to bytes using encode_to_utf8.
Furthermore, the length of a non-ASCII string (either in bytes or
codepoints) isn't the same as the width of the string on screen. To
accurately calculate the width, when the string might contain
combining or double-width characters, use weechat.strlen_screen.
Co-authored-by: Benjamin Moody <benjaminmoody@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
I continuously received this error:
```
AttributeError: 'NoneType' object has no attribute 'token'
```
Because tokens list was `['', '']`. And wee-chat tried initiate connections without tokens.
This small change fix this error.
|
| |
|
| |
|
|
|
|
| |
This comma broke compatibility with Python 2.7, so remove it.
|
|
|
|
| |
Fixes #842
|
|
|
|
|
|
| |
When `weechat.look.prefix_align` is set to `none`, lines after the first
in a message would not align with the first. Use the same number of
spaces as the prefix for those lines, so they align with the first.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason, some MPIMs are listed in the channel list of the
response from rtm.start, with is_mpim set to true, instead of in the
mpims list. These incorrectly appeared as private channels instead of
MPIMs in wee-slack.
These entries do not contain a members list, so we have to call
conversations.members and set the name after receiving the response from
that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently, the API now sends an mpim_joined event when an MPIM is
created instead of a group_joined event, even if we don't set mpim_aware
to true.
Instead of just handling mpim_joined in addition to group_joined (which
could cause issues if both are called for MPIMs, though I haven't
experienced that), it's better to properly support mpim_aware.
Fixes #825, fixes #833
|
|
|
|
| |
Fixes #836
|
|
|
|
| |
E203 should be ignored when using black according to their docs.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
It turns out that some channels in rtm.start include a member list with
a few users, but not all. Therefore, I don't know how we can know if the
list is complete or not, so we have to call conversations.members for
all channels.
Fixes #829
|
|
|
|
|
|
|
|
|
|
| |
I'm not sure when members for a channel is included in rtm.start, but
it seems like shared and private channels doesn't include the field at
all, while some other channels have started to only include the user.
Therefore, call conversations.members if a channel doesn't have any
members or if the only member is the user.
Hopefully this fixes #829
|
|
|
|
|
|
| |
Thanks to @sudoforge in #828 for this.
Closes #828
|
| |
|
|
|
|
|
|
| |
Fixes a bug where the first line would use prefix_same_nick after
reprinting messages if the first and last message were from the same
person.
|
|
|
|
|
|
|
|
| |
conversations.members only returns 100 members if we don't specify
limit, and requires pagination to get the rest. We want to know more
members than that, so specify a limit of 1000, which is the max we can
specify. If a channel has more than 1000 members, we would have to use
papagination to get all, but I'll just do this simple change for now.
|
|
|
|
|
|
|
| |
Since all members might not be known yet in get_history (which is why we
call conversations.members), if we look up unknown users there, we won't
look up all the unknown users. Check for unknown users when receiving
the response for conversations.members instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't like displaying the user identifier, but if all of the steps in
get_sender fails, it's better to fallback to the identifier rather than
an empty string, so you can at least distinguish between different
users.
It falls back to an empty string again if user_identifier is None,
because some messages in the tests doesn't even have a user_identifier.
Though, I don't think any messages the Slack servers are sending now are
missing user_identifier.
After the last commit, hopefully this fallback to user identifier will
never be used though.
|
|
|
|
|
|
| |
If a message is sent from an external user, the message will include the
user profile, so we can use that to display the correct name if we
haven't fetched the user info yet.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This patch removes the configuration for Travis-CI, and adds
configuration for Github Actions.
Co-authored-by: Ashish Kulkarni <ashish@kulkarni.dev>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Apparently chat.meMessage requires these characters unescaped, even
though it interpret links using these characters. There doesn't seem to
be any options for changing this behavior, so we have to linkify
nicks/channels while also leaving <>& unescaped.
Fixes #704, closes #822
|
| |
|
|
|
|
|
| |
This was broken in #774 as it checked if there was at least one
reply, which is not the case for new threads.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that conversations.mark works for all tokens, just using the
conversations API the same way as the old APIs works fine as far as I
can see.
Loosing unread_count_display by replacing mpim.open with
conversations.open and channels.info with conversations.info means that
mpims and channels will not be marked as unread when wee-slack loads if
background_load_all_history has been set to false anymore. As far as I
can see, the only way to check if they have unread messages is by
loading the history, so there is no way around this.
Fixes #792
|
|
|
|
|
|
|
|
|
| |
hashlib returns a byte string in Python 2, but since we only use unicode
strings elsewhere the check against that in
SlackChannelHashedMessages.__missing__ didn't work. Make sure sha1_hex
returns a unicode string instead.
Fixes #800, closes #801
|
| |
|