aboutsummaryrefslogtreecommitdiffstats
path: root/typings
Commit message (Collapse)AuthorAgeFilesLines
* Update user info for open IM conversations when using session tokensTrygve Aaberge2024-04-181-0/+10
| | | | | | | | | | | | | | | | | | | | | | | When using session tokens we apparently don't get any user_status_changed events, so when a user updated their status the title in an IM with them wasn't updated. If we specify the query param slack_client=desktop when connecting to the websocket we at least get a user_invalidated event when the user info changes. This doesn't include any info though, so we have to make a request to get the updated user info. On workspaces with a lot of users, we may get user_invalidated very often, so we can't fetch new user info every time we get it, otherwise we would make a lot of requests. So at least for now, only update the user info if we have an open IM with the user. This ensures the status in the IM title is kept up to date at least. In other words, nick changes are not picked up and updated. This is also the case when using OAuth tokens, as we only listen for user_status_changed events, and not the other user updated events. Handling nick changes is also a bit more complex, so I'll leave that for later.
* Support date in rich text elementsTrygve Aaberge2024-02-211-0/+7
|
* Upgrade all dependenciesTrygve Aaberge2024-02-201-1/+0
|
* Add command `/slack join`Trygve Aaberge2024-02-181-0/+18
| | | | | For now this only supports known channels, which currently typically means they have to be referenced in a channel with history loaded.
* Add command `/slack query` to open DM/MPDM channelsTrygve Aaberge2024-02-181-0/+19
| | | | | | For now this only supports known nicks, i.e. mostly nicks that have posted a message, is mentioned in a message or appears in the nicklist in any of the conversations that's loaded.
* Support files in Slack Connect channelsTrygve Aaberge2024-02-182-36/+59
| | | | | | | | | Files uploaded in Slack Connect channels doesn't contain any information, so we have to make a request to files.info in order to get the information to render it. See https://api.slack.com/apis/channels-between-orgs#check_file_info for more info.
* Post users.profile.set as a JSON bodyTrygve Aaberge2024-02-182-72/+86
| | | | | It's better to post nested objects as JSON rather than url encoding them, and this fixes some type errors.
* Set user statusPierguido Lambri2024-02-181-0/+15
| | | | | | | It's now possible to set and clear the uses status. For now it's not possible to set the status emoji or the status expiration. Signed-off-by: Pierguido Lambri <plambri@redhat.com>
* Handle messages without a user fieldTrygve Aaberge2024-02-181-7/+26
| | | | | | This can happen in channels shared between workspaces if one of the workspaces are removed. Then messages from users in that workspace will not have a user field anymore, but instead a user_profile field.
* Unescape file titlesTrygve Aaberge2024-02-181-26/+26
| | | | | Also mark a lot of fields as NotRequired as tombstone files doesn't have these fields.
* Only open channels for the current sub workspaceTrygve Aaberge2024-02-181-0/+43
| | | | | | | | | | | | | | | | | | | | | 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.
* Support color rich text elementsTrygve Aaberge2024-02-181-0/+6
|
* 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.
* Mark conversations info last_read as not requiredTrygve Aaberge2024-02-181-1/+1
| | | | | It seems that if you request conversations.info right after joining a channel, it's missing in the response.
* Support API restricted workspacesTrygve Aaberge2024-02-184-7/+138
| | | | | | | | | | | | | | | | | | 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.
* Format all files with ruffTrygve Aaberge2024-02-181-1/+4
|
* Add completion of emoji namesTrygve Aaberge2024-02-181-0/+12
|
* Support open/close/joined/left conversation eventsTrygve Aaberge2024-02-181-0/+49
|
* Show user status in DM buffer titleTrygve Aaberge2024-02-182-1/+10
|
* Show conversation topic in buffer titleTrygve Aaberge2024-02-183-1/+20
|
* Add tests for attachments and fix rendering bugsTrygve Aaberge2024-02-181-1/+12
|
* Add render blocks tests from old versionTrygve Aaberge2024-02-181-6/+7
|
* Support muted conversations configTrygve Aaberge2024-02-182-0/+23
|
* Support highlight notifications without rendering historyTrygve Aaberge2024-02-181-0/+1
|
* Update message when subscribed/unsubscribedTrygve Aaberge2024-02-181-0/+14
| | | | | | Pyright doesn't allow me to set subscribed/last_read in _message_json since some of the _message_json types don't have them, so had to use separate attributes.
* Mark as read when switching away from bufferTrygve Aaberge2024-02-181-0/+5
|
* Mark buffer as read when conversation/thread is markedTrygve Aaberge2024-02-181-0/+59
|
* Add types for broadcast messages from rtmTrygve Aaberge2024-02-183-6/+19
|
* Use hook_url for http requests when availableTrygve Aaberge2024-02-181-1/+29
|
* Show prefix for thread broadcast messagesTrygve Aaberge2024-02-182-0/+10
|
* Support showing thread replies in the channelTrygve Aaberge2024-02-182-0/+41
|
* Render thread suffix in messagesTrygve Aaberge2024-02-182-1/+3
|
* Support rendering huddlesTrygve Aaberge2024-02-182-0/+76
|
* Update weechat stub fileTrygve Aaberge2024-02-181-228/+307
|
* Use blocks to render messagesTrygve Aaberge2024-02-181-10/+208
|
* Render me/action messages correctlyTrygve Aaberge2024-02-182-0/+14
|
* Render reactions after messagesTrygve Aaberge2024-02-181-0/+28
|
* Support rendering message edits and deletionsTrygve Aaberge2024-02-181-0/+6
|
* Render join and leave messages correctlyTrygve Aaberge2024-02-182-0/+31
|
* Support sending and receiving typingTrygve Aaberge2024-02-182-2/+3
| | | | | | This does not support globally showing typing from direct messages, like the old wee-slack did, because that's not supported by WeeChats typing plugin. It only shows typing in the current buffer.
* Fix typings for create_connectionTrygve Aaberge2024-02-181-3/+27
|
* Add messages received over rtm to channelsTrygve Aaberge2024-02-182-10/+135
|
* Add command /slack disconnectTrygve Aaberge2024-02-181-0/+5
|
* Assume some unknown lists from slack to be list of stringsTrygve Aaberge2024-02-182-4/+4
|
* Fix some mypy specific type issuesTrygve Aaberge2024-02-183-6/+6
|
* Move SlackErrorResponse into slack_common.pyiTrygve Aaberge2024-02-1812-19/+16
|
* Open all conversation types on startTrygve Aaberge2024-02-183-4/+21
|
* Support unfurling usergroup namesTrygve Aaberge2024-02-182-0/+52
|
* Fix compatibility with Python 3.7Trygve Aaberge2024-02-188-13/+14
|
* Add support for completing nicksTrygve Aaberge2024-02-183-2/+18
| | | | | | | This uses Slacks edgeapi which only works for session tokens, but has the benefit of being able to complete nicks without all users being loaded. So need to add some completion for the loaded users for when using OAuth tokens as well.