aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Increase the number of channel members we fetchTrygve Aaberge2021-03-061-1/+1
| | | | | | | | 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.
* Get user info for unknown users after getting channel membersTrygve Aaberge2021-03-061-4/+4
| | | | | | | 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.
* Fallback to user identifier if we can't find a name in get_senderTrygve Aaberge2021-03-061-1/+1
| | | | | | | | | | | | | | | 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.
* Get message sender nick from profile for unknown usersTrygve Aaberge2021-03-061-0/+7
| | | | | | 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.
* feat(ci): add python 3.9 to the test matrixBenjamin Denhartog2021-03-061-2/+2
|
* feat(ci): add python 3.8 to the test matrixBenjamin Denhartog2021-03-061-2/+2
|
* feat(ci): use github actions instead of travis-ciBenjamin Denhartog2021-03-062-23/+103
| | | | | | | This patch removes the configuration for Travis-CI, and adds configuration for Github Actions. Co-authored-by: Ashish Kulkarni <ashish@kulkarni.dev>
* Release v2.7.0v2.7.0Trygve Aaberge2021-02-242-1/+51
|
* Update Options.md after last commitsTrygve Aaberge2021-02-241-0/+6
|
* Add tests for link_previous option added in previous commitTrygve Aaberge2021-02-221-0/+31
|
* Add support to disable teammate link previews (#815)Joan Touzet2021-02-221-0/+5
|
* Don't escape <>& in me messagesTrygve Aaberge2021-02-211-14/+16
| | | | | | | | | 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
* lookup message via hash with fallback to countAshish Kulkarni2021-02-202-3/+6
|
* allow new threads to be opened via /thread <THREADID>Ashish Kulkarni2021-02-201-2/+1
| | | | | This was broken in #774 as it checked if there was at least one reply, which is not the case for new threads.
* Replace deprecated APIs with conversations APITrygve Aaberge2021-02-202-20/+22
| | | | | | | | | | | | | | | 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
* Fix thread id collision detection not working in Python 2Trygve Aaberge2020-10-091-1/+1
| | | | | | | | | 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
* Combine duplicated send_message codeTrygve Aaberge2020-10-051-19/+14
|
* Print error message when sending message failsTrygve Aaberge2020-10-052-4/+7
| | | | Relates to #797
* Remove unnecessary team parameter in SlackMessage initTrygve Aaberge2020-10-051-7/+7
|
* Don't display the typing indicator for muted conversations (#794)Latchezar Tzvetkoff2020-10-041-1/+1
|
* Remove section about adding dependencies from contributing docsTrygve Aaberge2020-10-041-28/+0
| | | | | | | Since people install this either just by copying the script, or by installing it from WeeChats repo, and neither of these methods install dependencies automatically, I really want to keep dependencies to a minimum. So I don't think it's useful to document how to add new ones.
* Remove outdated info about virtualenv and improve debugging docsTrygve Aaberge2020-10-041-7/+13
| | | | | | How to install the dependencies for development and running tests is now documented in docs/contributing.md, so change the development section to just a debugging section.
* Use direct pypi url to skip redirectTrygve Aaberge2020-10-041-2/+2
| | | | | Doesn't matter much, but this skips a redirect, and is the url I get when starting a new Pipenv.
* feat: use pipenv to manage the development environment (#784)Ben Denhartog2020-10-046-5/+109
| | | | | | | | | | | | | | | | | | | | [Pipenv][0] makes it easier to maintain a consistent development environment for projects using Python. You no longer need to manage `pip` and `virtualenv` separately, nor deal with the drift and other issues requirements.txt brings. It enables gaining insights into your dependency graph, but most importantly - it enables deterministic builds, which prevents the entire class of "it works on my machine" problems. [Pipenv][0] is similar to package managers from other ecosystems, such as Node.js' `npm` or Rust's `cargo`. Additionally, [Pipenv][0] is an [officially recommended package manager][1] by the Python project. This patch brings [Pipenv][0] to the wee-slack project to simplify the development and contribution experience. Additionally, this patch brings basic contributing documentation to help onboarding. [0]: https://github.com/pypa/pipenv [1]: https://packaging.python.org/tutorials/managing-dependencies/#managing-dependencies
* Improve documentation for notify methodsTrygve Aaberge2020-09-161-7/+18
| | | | | | lnotify.py and all of the other local notification scripts for linux in the repo have issues (see https://github.com/weechat/scripts/issues/433), so recommend the trigger in the wiki instead, which seems to work great.
* Use slack_timeout for websocket connectionTrygve Aaberge2020-09-091-2/+3
| | | | Relates to #793
* Check that user is not None in typing noticesTrygve Aaberge2020-09-081-1/+1
| | | | | | | | | I have experienced this being called with a user id we're not aware of, in which case metadata["user"] will be None. I think shared teams/channels are the reason for this. We should look up the user id when it's unknown, but for now just ignore typing notices for unknown users so we don't get an exception.
* Fix argument names in format functionTrygve Aaberge2020-08-291-1/+1
| | | | | The argument names didn't match the names used in the template string. This bug was introduced in commit 63382c5.
* Fix session token description to work in FirefoxTrygve Aaberge2020-08-271-3/+4
|
* Fix thread broadcasts sent from wee-slack not becoming broadcastsTrygve Aaberge2020-08-241-1/+2
| | | | This was broken in commit d427501.
* Fix thread broadcasts not appearing in channelsTrygve Aaberge2020-08-241-2/+5
| | | | This was broken in commit d427501.
* Set correct localvar type for threads in pmsTrygve Aaberge2020-08-201-5/+9
| | | | | | | Previously threads in pms had localvar type set to channel. Now the type is set to the same as the parent channel. Fixes #789
* Support global weemoji.json fileTrygve Aaberge2020-08-181-2/+7
|
* Use native multiline input support for weechat >= 2.9Trygve Aaberge2020-08-181-5/+10
|
* Fix usage of dates with non ASCII characters for Python 2 (#788)Nicolas Schodet2020-08-111-1/+1
| | | | | When not using english locale, date could contains non ASCII characters. Fixes #419
* Fix thread bot messages appearing in channel instead of threadTrygve Aaberge2020-08-021-11/+7
| | | | | | | | Bot messages in threads have subtype set to bot_message (just like bot messages in channels), so we can't use subtype to check if a message is a thread message or a channel message. Fixes #749
* Remove thread short_name indent if buflist.format.indent checks slack_typeTrygve Aaberge2020-07-141-1/+4
| | | | | | | | | | | | | If buflist.format.indent includes "slack_type", assume that it handles the indent for slack threads specifically, so we should not add any indent in the short_name. Otherwise, add a space at the start of short_name so it is indented in the buflist. This means that you can use e.g. this value for buflist.format.indent to get a nice tree view in the buflist, with threads nested under the channels: /set buflist.format.indent "${color:237}${if:${buffer.local_variables.slack_type}==thread?${if:${buffer.next_buffer.local_variables.slack_type}==thread?│ ├─:│ └─}:${if:${buffer.next_buffer.local_variables.type}=~^(channel|private)$?├─:└─}}"
* Revert "Use buflist.format.indent for thread short name indent"Trygve Aaberge2020-07-141-3/+1
| | | | | | | | | | | | | | | | | | | | This caused some issues, so I think it's best to revert it: - If you don't set a color in the indent option, and otherwise use default format options, the normal indent will be colored green while the thread indent will be colored white. - It will look worse for people with tree-style indent unless they specifically change the indent option for Slack. - The indent will be included when the name is shown in the hotlist, and other places that show short_name. Even without this, it's still possible to get nice indenting of threads if you add the condition `${buffer.local_variables.slack_type}==thread` in the indent option and use that to print extra indent for threads. You will get an extra space before the name (the default indent), but I'll add a commit to remove that if the indent option includes slack_type. This reverts commit f55bf93ad9dd9a90afa987ee45ac7c862d85084b.
* Support creating channelsTrygve Aaberge2020-07-092-0/+39
| | | | | | | | Add command /slack create to create a channel. Currently doesn't switch to the channel after it's created, even when switch_buffer_on_join is true, that is a todo for later. Fixes #415
* Set buffer localvar slack_typeTrygve Aaberge2020-07-091-1/+4
| | | | | | The localvar type has to be set to server, channel or private for things to work properly. Add slack_type so you can differentiate between channels, groups/private channels, threads, ims and mpims.
* Set extra_var slack_thread in indent evaluationTrygve Aaberge2020-07-091-1/+1
| | | | | This allows you add a condition for slack threads in the indent option to display the correct thing, e.g. when using tree style indent.
* Set default color for thread short_nameTrygve Aaberge2020-07-091-1/+1
| | | | | The indent string may set a color and not reset it, because it's not necessary to reset it for normal channels.
* Evaluate buflist indent config option as an expressionTrygve Aaberge2020-07-091-1/+2
| | | | Fixes #783
* Revert "Don't set no_highlight for backlog messages"Trygve Aaberge2020-07-061-2/+2
| | | | | | | | | | | | | | | | | | | This caused a problem for relay clients. They are not notified when print hooks are disabled/enabled, so they have to use the tags and line properties to determine if a line should notify. One could argue that they should not notify when notify_none is present, even if it's a highlight, but this is not how the hotlist or default beep trigger in weechat behaves. When a message with a highlight is printed, that is added to the hotlist and beeps even if notify_none is set (wee-slack removes the buffer from the hotlist immediately after printing the line, which is why that wasn't a problem in plain weechat). Additionally, this caused messages you had reacted to to be highlighted when the buffer was reprinted, since the text now included your name when the line was printed. This reverts commit de5eb518fda26fed3b5cd41c20b064c04020bbb9.
* Set time zone to UTC for unfurl test (#782)Tollef Fog Heen2020-07-041-0/+2
| | | Fixes #781
* Fix buffers not changing color in buflist when (un)mutedTrygve Aaberge2020-06-241-0/+1
|
* Remove buffer notify option for unmuted buffersTrygve Aaberge2020-06-241-1/+2
| | | | | | | | | | | | | | | | | | | | | We were setting the notify level for unmuted buffers to 3. This is not the right thing to do because weechat has a weechat.look.buffer_notify_default option which might be set to a different value. By removing the option instead, weechat will use the default value. Additionally, when we change the notify level for a buffer, this is stored in the config (for weechat >= 2.6). Having such a config for all buffers is annoying, but with this change the config will only be present for muted buffers. This fix is not perfect because you still get config values for muted buffers, and since wee-slack is overriding the notify level you can't override it yourself for specific buffers. A potential solution to this could be to set notify level for each line instead of setting notify level for the buffer. Fixes #746
* Set localvar type to private for mpdmsTrygve Aaberge2020-06-241-1/+1
| | | | | | Mpdms should behave the same way as dms when it comes to notifications etc., so I think it makes more sense to set type to private than to channel.
* Support showing buflist presence when short_name is overriddenTrygve Aaberge2020-06-201-0/+2
| | | | | | | | | | | When you set a short name, the prefix wee-slack sets (# for channels, + for dms with present users etc.) is normally dropped so the short name is exactly how the user wants it. However that makes it impossible to see presence in the buflist when short name is set (unless you set it with /label which keeps the prefix). Therefore, if the short name is set to a name starting with a space, replace the space with + if the user is present. This gives the same prefix behavior and characters as when short name is not set.
* Add some tests for formatted_nameTrygve Aaberge2020-06-201-0/+201
|