aboutsummaryrefslogtreecommitdiffstats
path: root/wee_slack.py
Commit message (Collapse)AuthorAgeFilesLines
* Automatically enable emoji/usergroups completionTrygve Aaberge2023-06-231-0/+15
| | | | | | Automatically set completion_default_template on wee-slack buffers, so emojis and usergroups can be tab completed without having to set weechat.completion.default_template manually.
* Return from modify_buffer_line if the line isn't foundTrygve Aaberge2023-06-231-0/+3
| | | | | | | | | If the line isn't found, line_pointer becomes an empty string which will crash WeeChat when it's used with hdata_update. This happened when the history for a channel that contained a reply also posted to the channel was loaded, because in that case wee-slack tries to modify the parent message before the channel history is printed, so it couldn't find the line.
* Use prefix_nick_<color> tag for messages in WeeChat 4.0.0Trygve Aaberge2023-06-031-1/+23
| | | | | | | | | | Since WeeChat now has multiline support, the problems with using prefix_nick_<color> (mainly that it isn't possible to distinguish between a multiline message and multiple messages when weechat.look.prefix_same_nick is set) isn't present anymore, so we can use this tag to properly mark lines as chat messages from a nick. This also means that we don't have to use prefix_same_nick or nick_prefix/suffix ourselves anymore.
* Only modify a single chat line for one message in WeeChat 4.0.0Trygve Aaberge2023-06-031-0/+5
| | | | | | | | | Since WeeChat now has multiline support, the whole message is in one chat line. This means that we don't need to look for all the lines belonging to a message and modify them, we can just modify the line for the message directly. This has the benefit of making it possible to increase and decrease the number of lines for a message, rather than having to join extra lines or get blank lines.
* Support multiline rendering in WeeChat 4.0.0Trygve Aaberge2023-06-031-4/+5
| | | | | | Don't insert a prefix at the start of each line of a message so it renders normally in WeeChat 4.0.0 which supports chat lines with multiple lines.
* Include a space between nicks in reaction stringTrygve Aaberge2023-05-301-1/+1
| | | | | | | | | Without spaces, WeeChat will consider all the nicks as one word, which means that rather than wrapping between nicks, it will fill the whole line and wrap in the middle of nicks. Additionally, if you have disabled weechat.look.align_multiline_words it will start from the beginning of the line when wrapping, rather than after the prefix, which doesn't look nice.
* Fix some text formattingTrygve Aaberge2023-03-071-2/+2
| | | | | Remove a space before a colon and add a comma after a sentence starting with if.
* Format with new black versionTrygve Aaberge2023-03-071-7/+1
|
* feat(huddle): Display link to join huddle when started (#885)Romain THERRAT2023-03-071-0/+30
|
* Capitalize WeeChat correctly in the docsTrygve Aaberge2023-01-121-21/+21
|
* Add missing space in auto_open_threads option descriptionTrygve Aaberge2023-01-121-2/+2
|
* Release v2.9.1v2.9.1Trygve Aaberge2022-10-301-1/+1
|
* Show useful link for Slack postsTrygve Aaberge2022-10-301-6/+11
| | | | | | | | | | | | | The url_private link for Slack posts just downloads a json of the post, which isn't very useful to click on. The permalink goes to the web view for a post, which is what we want. The web client adds origin_team and origin_channel, which makes the post page show info about where the post is shared, so add that here as well. We still want to use url_private for images etc., not permalink there as well, because that links to the Slack client with the image shown in the sidebar, which is much more inconvenient than just getting the image directly.
* Fix link previews from apps not being recognizedTrygve Aaberge2022-10-291-1/+3
| | | | | | | | If a link preview was added by an app, like GitHub, instead of directly by Slack, it was not detected by wee-slack as a link preview, so it would be shown even if link_previews was set to false. Fixes #834
* Support receiving multiple header blocks in http responsesTrygve Aaberge2022-10-151-5/+5
| | | | | | | | | | | One user experiences receiving a "HTTP/1.1 200 Connection established" header block before a "HTTP/2 200" header block with the headers. I'm not sure why specifically this happens, but I know a similar response will happen if redirects are followed. This wasn't supported by the http_check_ratelimited function which splits the header from the body. It now splits out all the header blocks from the body and uses the status and headers from the last one.
* Evaluate value of weechat.look.buffer_time_formatTrygve Aaberge2022-10-091-2/+5
| | | | Fixes #871
* Remove compatibility for irc_nick_color_nameTrygve Aaberge2022-10-081-2/+1
| | | | | This is only required for WeeChat < 1.5, and we require >= 2.2, so there's no point in keeping this.
* Update WeeChat version check to require >= 2.2Trygve Aaberge2022-10-081-2/+2
| | | | | | | After moving the token in Slack API requests from a query string param to an Authorization header in commit 2185a58 we require WeeChat >= 2.2 because that was the version which added support for setting HTTP headers.
* Open open IMs and MPIMs on startTrygve Aaberge2022-10-041-0/+2
| | | | | | | | | | | | | We used the response from rtm.start to find which IMs and MPIMs to open, but after moving away from that we didn't have the information from the response from conversations.list, so commit 962bbc5 changed to only open unread ones. However, it turns out that conversations.info has the information, and we are already requesting that for each IM/MPIM to check if it's unread, so we can use that to open the correct ones. Fixes #875
* Fix old type MPIMs not being marked as unread on startTrygve Aaberge2022-10-041-1/+1
| | | | | | | | Old type MPIMs (has `is_group: true`) has `is_open`, but not `unread_count_display` in the response from `conversations.list`, so they were not marked as unread on start if background_load_all_history was set to false because we have to request the history, but `check_should_open` created the buffer, so it wasn't requested here.
* Fall back to bot_id as nick if no other info is availableTrygve Aaberge2022-10-021-1/+1
| | | | | | | | | | Apparently there are some bots which are not listed in users.list and which sends messages where the only info about the sender is a bot_id. To fix this properly we will have to look up the bot with bots.info when we encounter an unknown bot_id, but for now just fall back to using the id directly like we do with unknown users to make it possible to use triggers and filters.
* Update script author to myselfTrygve Aaberge2022-10-021-2/+2
| | | | | I've been the maintainer of this script for several years now, and Ryan isn't involved anymore, so it makes sense to update the script author.
* Update usage of deprecated WeeChat API methodsTrygve Aaberge2022-10-021-16/+24
| | | | | The script will use the new methods if the WeeChat version is new enough, and the old deprecated methods if it's too old for the new ones.
* Release v2.9.0v2.9.0Trygve Aaberge2022-09-191-1/+1
|
* Fix compatibility with Python 2Trygve Aaberge2022-09-191-9/+7
|
* Reformat code after last commitTrygve Aaberge2022-09-191-1/+1
|
* feat(display): Add URL when slack block contain URL (#863)Romain THERRAT2022-09-191-0/+2
| | | | | | When slack return a button message type and a url field is present we should output the URL. Fix: #811 and #810
* Fix limit parameter in history requestTrygve Aaberge2022-09-181-1/+1
| | | | | Limit should be used now, so it seems like count has been renamed to limit.
* Check if channel is mpim before shared on loadTrygve Aaberge2022-09-181-2/+2
| | | | | | On one of my teams, all the MPIMs have is_shared set to true and the name is not set correctly if they are created as SlackSharedChannel instead of SlackMPDMChannel.
* Load list of MPIMs separately on startTrygve Aaberge2022-09-181-14/+26
| | | | | On one of my Slack teams, none of the MPIMs are included in conversations.list if types include public_channel for some reason.
* Fix /query not working for new MPIMsTrygve Aaberge2022-09-181-18/+34
|
* Support retrying requests when ratelimitedTrygve Aaberge2022-09-181-48/+87
|
* Gracefully handle user_is_restricted error on initial loadTrygve Aaberge2022-09-181-1/+10
| | | | | | If you are a guest on a team, requesting the user groups may fail with this error. Instead of failing the whole startup, report an error and continue.
* Support including the d-s cookieTrygve Aaberge2022-09-181-1/+5
| | | | | According to one comment it was necessary for them to include this cookie as well.
* Support specifying both url encoded and raw (not url encoded) cookiesTrygve Aaberge2022-09-181-3/+15
|
* Don't open all DMs and MPDMs on startTrygve Aaberge2022-09-181-11/+32
| | | | | | | | Instead open only unread DMs and MPDMs. Unfortunately it doesn't seem to be possible to know which DMs or MPDMs are open from the last run or in the official client (without using internal APIs). We could explore alternatives like opening the ones with recent messages, or storing which are open, but this will have to do for now.
* Handle conversations.info for all typesTrygve Aaberge2022-09-181-18/+11
| | | | | | This sets last_read on the channel, though we have no guarantee that we get the result from info before history, and if we get history first, the read messages will still be marked as unread.
* Use SlackRequest options in file downloadTrygve Aaberge2022-09-181-1/+2
|
* Show which requests fail at startupTrygve Aaberge2022-09-181-6/+7
|
* Check if members is not empty in SlackMPDMChannelTrygve Aaberge2022-09-171-1/+1
| | | | | | If you use an xoxc token, the conversations.list endpoint returns an empty list for members of mpdms that have is_group set to true, which made this fail.
* Support specifying an auth cookie in slack_api_tokenTrygve Aaberge2022-09-171-1/+13
| | | | | | | | | | | | This is necessary for xoxc tokens. The cookie is specified after the token with a colon separating them, i.e. "token1,token2:cookiefor2,token3". This makes slack_api_token even more inconvenient, but it will have to do until we rewrite the config to have a section for each team, like the irc config has. Fixes #844
* Support specifying cookies in SlackRequestTrygve Aaberge2022-09-171-9/+28
| | | | This is a necessary step for #844
* Remove empty hook_process_hashtable callsTrygve Aaberge2022-09-171-3/+0
| | | | | I don't think these are necessary. I've not experienced any errors after removing them.
* Support starting wee-slack without using rtm.startTrygve Aaberge2022-09-171-21/+256
| | | | | | | | | | | 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
* Don't crash on missing mode on files in messagesTrygve Aaberge2022-09-171-1/+1
|
* Use correct parameter name for info requestTrygve Aaberge2022-09-171-1/+1
|
* Fix tests and formatting after last commitTrygve Aaberge2022-09-171-3/+3
|
* Check closed IM channels for unread messages (#859)Daniel Nelson2022-09-171-0/+17
| | | | | 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.
* Fix message changes not being processedTrygve Aaberge2022-01-311-1/+2
| | | | | | | | | | | | | 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.
* Fix formatting after black upgradeTrygve Aaberge2022-01-301-9/+5
|