Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Handle messages without a user field | Trygve Aaberge | 2024-02-18 | 1 | -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 titles | Trygve Aaberge | 2024-02-18 | 1 | -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 workspace | Trygve Aaberge | 2024-02-18 | 1 | -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 elements | Trygve Aaberge | 2024-02-18 | 1 | -0/+6 |
| | |||||
* | Mark conversations info team as not required | Trygve Aaberge | 2024-02-18 | 1 | -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 required | Trygve Aaberge | 2024-02-18 | 1 | -1/+1 |
| | | | | | It seems that if you request conversations.info right after joining a channel, it's missing in the response. | ||||
* | Support API restricted workspaces | Trygve Aaberge | 2024-02-18 | 4 | -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 ruff | Trygve Aaberge | 2024-02-18 | 1 | -1/+4 |
| | |||||
* | Add completion of emoji names | Trygve Aaberge | 2024-02-18 | 1 | -0/+12 |
| | |||||
* | Support open/close/joined/left conversation events | Trygve Aaberge | 2024-02-18 | 1 | -0/+49 |
| | |||||
* | Show user status in DM buffer title | Trygve Aaberge | 2024-02-18 | 2 | -1/+10 |
| | |||||
* | Show conversation topic in buffer title | Trygve Aaberge | 2024-02-18 | 3 | -1/+20 |
| | |||||
* | Add tests for attachments and fix rendering bugs | Trygve Aaberge | 2024-02-18 | 1 | -1/+12 |
| | |||||
* | Add render blocks tests from old version | Trygve Aaberge | 2024-02-18 | 1 | -6/+7 |
| | |||||
* | Support muted conversations config | Trygve Aaberge | 2024-02-18 | 2 | -0/+23 |
| | |||||
* | Support highlight notifications without rendering history | Trygve Aaberge | 2024-02-18 | 1 | -0/+1 |
| | |||||
* | Update message when subscribed/unsubscribed | Trygve Aaberge | 2024-02-18 | 1 | -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 buffer | Trygve Aaberge | 2024-02-18 | 1 | -0/+5 |
| | |||||
* | Mark buffer as read when conversation/thread is marked | Trygve Aaberge | 2024-02-18 | 1 | -0/+59 |
| | |||||
* | Add types for broadcast messages from rtm | Trygve Aaberge | 2024-02-18 | 3 | -6/+19 |
| | |||||
* | Use hook_url for http requests when available | Trygve Aaberge | 2024-02-18 | 1 | -1/+29 |
| | |||||
* | Show prefix for thread broadcast messages | Trygve Aaberge | 2024-02-18 | 2 | -0/+10 |
| | |||||
* | Support showing thread replies in the channel | Trygve Aaberge | 2024-02-18 | 2 | -0/+41 |
| | |||||
* | Render thread suffix in messages | Trygve Aaberge | 2024-02-18 | 2 | -1/+3 |
| | |||||
* | Support rendering huddles | Trygve Aaberge | 2024-02-18 | 2 | -0/+76 |
| | |||||
* | Update weechat stub file | Trygve Aaberge | 2024-02-18 | 1 | -228/+307 |
| | |||||
* | Use blocks to render messages | Trygve Aaberge | 2024-02-18 | 1 | -10/+208 |
| | |||||
* | Render me/action messages correctly | Trygve Aaberge | 2024-02-18 | 2 | -0/+14 |
| | |||||
* | Render reactions after messages | Trygve Aaberge | 2024-02-18 | 1 | -0/+28 |
| | |||||
* | Support rendering message edits and deletions | Trygve Aaberge | 2024-02-18 | 1 | -0/+6 |
| | |||||
* | Render join and leave messages correctly | Trygve Aaberge | 2024-02-18 | 2 | -0/+31 |
| | |||||
* | Support sending and receiving typing | Trygve Aaberge | 2024-02-18 | 2 | -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_connection | Trygve Aaberge | 2024-02-18 | 1 | -3/+27 |
| | |||||
* | Add messages received over rtm to channels | Trygve Aaberge | 2024-02-18 | 2 | -10/+135 |
| | |||||
* | Add command /slack disconnect | Trygve Aaberge | 2024-02-18 | 1 | -0/+5 |
| | |||||
* | Assume some unknown lists from slack to be list of strings | Trygve Aaberge | 2024-02-18 | 2 | -4/+4 |
| | |||||
* | Fix some mypy specific type issues | Trygve Aaberge | 2024-02-18 | 3 | -6/+6 |
| | |||||
* | Move SlackErrorResponse into slack_common.pyi | Trygve Aaberge | 2024-02-18 | 12 | -19/+16 |
| | |||||
* | Open all conversation types on start | Trygve Aaberge | 2024-02-18 | 3 | -4/+21 |
| | |||||
* | Support unfurling usergroup names | Trygve Aaberge | 2024-02-18 | 2 | -0/+52 |
| | |||||
* | Fix compatibility with Python 3.7 | Trygve Aaberge | 2024-02-18 | 8 | -13/+14 |
| | |||||
* | Add support for completing nicks | Trygve Aaberge | 2024-02-18 | 3 | -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. | ||||
* | Fetch multiple users/bots in the same request | Trygve Aaberge | 2024-02-18 | 2 | -0/+22 |
| | | | | | | | Turns out you can query for multiple users/bots with users.info/bots.info even though it's not documented. Use that to query for multiple users/bots in one request, instead of making tons of requests. | ||||
* | Add missing final decorators | Trygve Aaberge | 2024-02-18 | 2 | -1/+7 |
| | |||||
* | Combine error response types | Trygve Aaberge | 2024-02-18 | 7 | -53/+33 |
| | |||||
* | Change SlackUsers to singular since it only concerns one user | Trygve Aaberge | 2024-02-18 | 2 | -15/+15 |
| | |||||
* | Show nick suffix for bots | Trygve Aaberge | 2024-02-18 | 2 | -4/+44 |
| | |||||
* | Update slack user typings | Trygve Aaberge | 2024-02-18 | 2 | -19/+49 |
| | |||||
* | Use display name or real name | Trygve Aaberge | 2024-02-18 | 1 | -20/+24 |
| | |||||
* | Ping websocket every 5 seconds | Trygve Aaberge | 2024-02-18 | 1 | -1/+2 |
| |