aboutsummaryrefslogtreecommitdiffstats
path: root/slack
Commit message (Collapse)AuthorAgeFilesLines
...
* Check enterprise_user when determining if a user is externalTrygve Aaberge2024-02-182-1/+12
| | | | | | | The team id in the profile may be either the enterprise id or the workspace id depending on the token used and the workspace the user belongs to, so if the user has enterprise_user set, check the enterprise_id too.
* Only open channels for the current sub workspaceTrygve Aaberge2024-02-182-1/+31
| | | | | | | | | | | | | | | | | | | | | It's possible to have a token that's only for one workspace in an enterprise grid. For me with such a token, it returns channels in all workspaces in client.userBoot, but only channels in the tokens workspace in client.counts. This meant that we didn't get last_read for all channels we opened, and additionally some methods like conversations.members would fail with "channel_not_found" for those channels. This filters the channels from client.userBoot by checking that the channel is in the current sub workspace, if the token we're using is not an org level (for all workspaces the user is in) token. Additionally it raises an error if any of the channels to open isn't included in the response from client.counts to prevent missing last_read for any channels if there are other channels that isn't included. I could have filtered the list of channels to open by the channels included from client.counts, but I don't want any channels to just silently be ignored.
* Show thread broadcast prefix in thread buffersTrygve Aaberge2024-02-182-10/+11
|
* Fix bugs with /slack reply commandTrygve Aaberge2024-02-184-17/+21
|
* Use the api_cookie value as the `d` cookie if no keys are specifiedTrygve Aaberge2024-02-181-0/+2
| | | | | | Usually, only the `d` cookie is needed, so this allows you to only specify the value of that cookie without the key if you don't need to set any other cookies.
* URL encode cookies if not encodedTrygve Aaberge2024-02-183-4/+21
| | | | | The cookies need to be encoded for the Slack API to accept them, so this makes it work if the config is set with cookies that are not encoded.
* Revert "Only use letters for message hashes"Trygve Aaberge2024-02-181-3/+1
| | | | | | | | | | I have display_thread_replies_in_channel and often search for the thread hash in a buffer to scroll between the different messages in the thread. After changing the hashes to use only letters, this has made the search match other messages much more often (matching words including the hash characters), which is inconvenient. This reverts commit 78bdd84765e53d4c33d963f0d3a8c54652b64ca9.
* Make URL format configurableTrygve Aaberge2024-02-182-7/+13
|
* Fix URLs not being shown (only URL text was) in _unfurl_refsTrygve Aaberge2024-02-181-13/+18
|
* Perform nick completion in last spoken orderTrygve Aaberge2024-02-181-11/+45
| | | | | | | | | | | | | | | This makes it complete nicks that spoke last first, and then nicks that haven't spoken, and lastly yourself. This is the same as the IRC plugin does by default. It adds completion of nicks both with and without @, as the default completion of nicks from the nicklist is just alphabetical. Completion of workspace nicks is removed for now. It only completed workspace nicks that are already loaded, so it might be better to complete workspace nicks in the `input_complete_cb` function instead (since functions using `completion_list_add` can't be async, only `input_complete_cb` can).
* Support color rich text elementsTrygve Aaberge2024-02-181-0/+4
|
* Add command /slack replyTrygve Aaberge2024-02-183-1/+24
|
* Set options value to True if it's set without a valueTrygve Aaberge2024-02-181-47/+27
| | | | | | | It became very confusing to use None to represent it being set without a value, so use True instead. If it has a value it will always be a string, so you can still distinguish between an option without a value and an option with a truthy value.
* Mark conversations info team as not requiredTrygve Aaberge2024-02-181-1/+1
| | | | | I have a huddle message in an IM on an enterprise workspace that doesn't have this field.
* Support API restricted workspacesTrygve Aaberge2024-02-183-51/+173
| | | | | | | | | | | | | | | | | | Some enterprise workspaces are restricted in which API methods they can use, so we have to use some of the APIs the official web client uses (which can't be used by OAuth tokens) instead (mainly to initialize the workspace with client.userBoot and client.counts, and to connect to the websocket). This also has the benefit of being more performant, as the API methods the web client uses are more suited for creating a client than the official API methods. I think which API methods are restricted may be configured by the workspace admins, so it may not be the same for different workspaces, but for me it seems to be at least rtm.connect, users.conversations, conversations.list and conversations.members, so these are the ones I've changed to be conditional on the token type.
* Don't return sort_key from _conversation_if_should_openTrygve Aaberge2024-02-181-2/+4
| | | | | This originally had to be returned here because it was an async function, but now that it's a sync function this can be simplified.
* Remove logging of some known unhandled websocket message typesTrygve Aaberge2024-02-181-1/+7
|
* Fix ruff lint errorsTrygve Aaberge2024-02-181-2/+2
|
* Format all files with ruffTrygve Aaberge2024-02-183-7/+5
|
* Support completion of all workspace nicksTrygve Aaberge2024-02-182-3/+21
|
* Fix compatibility with WeeChat 2.9Trygve Aaberge2024-02-181-5/+11
|
* Add completion of emoji namesTrygve Aaberge2024-02-187-7/+55
|
* Make SlackConversation constructor asyncTrygve Aaberge2024-02-182-28/+33
| | | | | | This is perhaps a bit hacky, but it makes the type checker enforce that we complete the async initialization of SlackConversation instead of getting a runtime exception.
* Add completion for conversation namesTrygve Aaberge2024-02-183-8/+19
|
* Make conversations.name not asyncTrygve Aaberge2024-02-185-51/+73
| | | | | This means a lot of methods don't have to be async. It's especially useful for the next commit adding conversations completions.
* Support completing @nicks in current bufferTrygve Aaberge2024-02-184-6/+80
| | | | | | | | | | | Adds all known nicks in the current buffer with an @ prefix to the nicks completion. Disables the API search based nick completion for now until it's working properly. It currently doesn't have any context of which conversation/thread you are in, so you often get other nicks than the one you want to complete first. Additionally, it doesn't work with OAuth tokens.
* Support bold/italic attributes when sending messagesTrygve Aaberge2024-02-181-1/+5
|
* Support mentioning usersTrygve Aaberge2024-02-181-3/+24
| | | | | | | This currently has the limitation that the user has to be known to wee-slack for the mention to work. That is, there needs to be some interaction with it (message or reaction from or mention) or it has to be in the loaded members in any of the loaded conversations.
* Support group broadcast refsTrygve Aaberge2024-02-181-2/+3
| | | | This is an alias for @channel.
* Support open/close/joined/left conversation eventsTrygve Aaberge2024-02-182-2/+23
|
* Close IM/MPIM and remove from open_conversations on buffer closeTrygve Aaberge2024-02-182-0/+19
|
* Open closed IM/MPIM buffers on new messagesTrygve Aaberge2024-02-181-5/+11
|
* Show user status in DM buffer titleTrygve Aaberge2024-02-185-32/+68
|
* Check if closed IMs/MPIMs have unread messages on startTrygve Aaberge2024-02-181-3/+15
| | | | | Sometimes an IM/MPIM can have unread messages even when is_open is false, so we have to check the history if there are any unread messages.
* Show conversation topic in buffer titleTrygve Aaberge2024-02-182-2/+15
|
* Handle when some items are missing from the responseTrygve Aaberge2024-02-182-6/+21
|
* Log connected/disconnected from workspaceTrygve Aaberge2024-02-181-0/+3
| | | | | We should create a server buffer for each workspace, but print to the core buffer for now.
* Log unknown websocket messages to debug buffer instead of coreTrygve Aaberge2024-02-181-5/+14
| | | | | This just logs that a message is unknown/unhandled. The contents of the message will be printed on the line above.
* Fetch all mentioned users at once in fill_historyTrygve Aaberge2024-02-182-8/+23
|
* Don't crash when message for hash is missingTrygve Aaberge2024-02-181-6/+7
| | | | | We can have a hash for a message we don't have if e.g. a broadcast reply is sent, and the parent is older than the history we have fetched.
* Print error when loosing connection, for debuggingTrygve Aaberge2024-02-181-2/+2
|
* Handle unknown user/bot when adding to nicklistTrygve Aaberge2024-02-181-12/+24
|
* Handle errors when looking up chat itemsTrygve Aaberge2024-02-182-16/+69
|
* Fix bug with setting bool config valuesTrygve Aaberge2024-02-181-2/+5
|
* Use one debug buffer for all debug loggingTrygve Aaberge2024-02-185-56/+79
| | | | | I will implement filtering like the /server raw buffer, instead of having multiple debug buffers.
* Add tests for attachments and fix rendering bugsTrygve Aaberge2024-02-181-31/+63
|
* Apply code block styles firstTrygve Aaberge2024-02-181-5/+5
| | | | | | | It looks better to have the `` characters around the other styles when there's styling inside code blocks. It makes it look a bit worse when theres code blocks inside styled text though. It should really remember the order the styles are opened to close them in the correct order.
* Catch errors when rendering messageTrygve Aaberge2024-02-181-20/+27
|
* Support editing and deleting messagesTrygve Aaberge2024-02-183-20/+119
|
* Support adding and removing reactionsTrygve Aaberge2024-02-185-4/+89
|