| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
All of the times we used sorted_message_keys, we were accessing some of
the last elements in the list. Since OrderedDict is doubly linked, using
reversed(keys) and next/islice is much more efficient than converting it
to a list.
Because of this the method now returns a generator in reverse order. It
is renamed to main_message_keys_reversed to make it clear that it isn't
returning thread messages, and that it is now reversed.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
By using an OrderedDict, we can sort the messages when we store them, so
we don't have to sort them each time we access them with
sorted_message_keys.
If we are guaranteed that the message we store is always the newest
message, we can even drop the sorting, as OrderedDicts are sorted in
insertion order. However, I'm not sure if we might store an older
message at some point, so to be safe, we sort the messages each time we
store one.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When sending a mark read message to slack, use the timestamp of the last
message in the channel, instead of the current timestamp. This should
prevent potentially marking messages as read, if they arrive after
mark_read was called and the clock of the slack server and the machine
wee-slack runs on is not exactly in sync.
According to issue #307 messages might also be marked as read if they
arrive right after you switch buffer, and you have a slow internet
connection. Though, since the time used in mark_read is set
synchronously when the buffer is changed, I'm not sure if that can be
the case. Either way, I think this patch should fix the issue.
If there are no messages in the channel, fall back to using the current
time as timestamp.
Fixes #307
|
|\ \ \
| | | |
| | | | |
Attachment tests and minor fixes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The title and from_url fields of attachments doesn't seem to be escaped,
so the check if they already are in the text didn't work if the link
contained e.g. an ampersand.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a follow-up of commit 0345ba1. That prevented rendering the link
if it already was in the text. This prevents rendering both the
title_link and from_url if they are equal, but not in the text. In this
case it only renders the title_link.
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Add ability to open multiparty DMs with /query and /slack talk
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
conversations.open doesn't return `unread_count_display` for MPDMs for
some reason (only DMs), so use mpim.open instead.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Fix incorrect parameter name for MPDMs: `users` instead of `user_ids`
- Accept comma-separated nicks instead of space-separated to match
weechat's `/query` syntax
- Check user IDs instead of usernames to find channels
- Use `SLACK_API_TRANSLATOR` instead of hard coding API methods
- Update documentation
|
|/ / /
| | |
| | |
| | |
| | | |
`command_talk` can now accept multiple arguments, which allows commands
like `/query user1 user2` to open a MPDM with user1 and user2.
|
|\ \ \
| | | |
| | | | |
Allow sending special messages by escaping them with / or \
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows you to send messages starting with / or messages like s/a/b/
and +:test: as normal text messages instead of performing the action
they normally would. This is done by prefixing the message with a slash
(/) or a space ( ), and then the prefix character is removed from the
resulting message.
Allowing / as a prefix, so you can write e.g. //slack is the normal way
to send messages starting with / in weechat. This will work for all
messages starting with a slash, but won't work for e.g. /+:test:, as
that is interpreted as a command. Using space as a prefix is the way
Slack does it. This will work for all messages.
|
|\ \ \ \
| | | | |
| | | | | |
Hide closed group dms
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Group DMs shouldn't be displayed just because `is_member` is `True`,
because it always will be. Instead, if a channel/DM/whatever has an
`is_open` property, use that, and only fall back to `is_member` when
`is_open` isn't present (such as for channels).
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Make the method a bit easier to follow, and don't use exceptions for
flow control.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add option to disable sending typing notification to Slack
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Many IM clients that support alerting the receiving user that you're
typing include an option to disable this behavior. This commit adds
the `send_typing_notice` boolean option. When it is false
`typing_notification_cb` is not registered for the
`input_text_changed` Weechat signal. By default this option is
true.
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Hilight team identifier in slack
|
| |/ / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Remove the nicklist from the team buffers
|
| | |/ / /
| |/| | |
| | | | |
| | | | | |
This list is not populated anymore, so we shouldn't show it at all.
|
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
- Fix a regression from 95fa08 that disabled the nicklist in multi-person direct
messages
|
|\ \ \ \
| |/ / /
|/| | | |
Add irc_privmsg to message tags; remove unused "highlightme" tagset
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In plain weechat, irc_privmsg is used for all messages received via the
IRC PRIVMSG command, which includes messages to channels, not just PMs.
Not having this tag means some weechat settings related to hilighting
don't behave as expected, and some other scripts like anotify don't
play nice with slack buffers.
Fixes #283.
Signed-off-by: Ben Kelly <bk@ancilla.ca>
Signed-off-by: Ben Kelly <btk@google.com>
|
|\ \ \
| | | |
| | | | |
Set the server buffer variable on server buffers
|
|/ / / |
|
|\ \ \ |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Add mpim API type for multiparty DMs
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously MPDMs used the groups API, which worked fine except when trying to
close them. The closing events were never properly synced with Slack so the
buffers would always reappear after restarting WeeChat. Using the mpim API
(except for info since it doesn't exist: https://api.slack.com/methods#mpim)
seems to fix that.
|
|\ \ \ \
| |/ / /
|/| | | |
Add a decorator for decoding function arguments from UTF-8
|
| | | |
| | | |
| | | |
| | | | |
Fixes #407
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix errors when joining DMs and multiparty DMs
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- The DM error was caused by not specifying `return_im`
(https://api.slack.com/methods/im.open#arguments) in the request which
led to `unread_count_display` not being included in the response and a
KeyError in `handle_imopen`
- The MPDM error was caused by using "name" instead of "channel" for the
channel ID (https://api.slack.com/methods/groups.info#arguments) in the
request which led to an error response and a KeyError in
`handle_groupsinfo`
|
|\ \ \
| | | |
| | | | |
fix: Make /topic behave the same way as on IRC
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
So we can assert on all of the return values. Since True == 1 in python,
this doesn't change the value of WEECHAT_RC_OK.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
I also changed the channel to only store the topic value, since that is
the only part of the topic property we get from Slack that we use.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Split out the parts of topic_command_cb that's most interesting and
easiest to test into parse_topic_command and add tests for that
function.
|