aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make the help text for --no-secretstorage more detailedTrygve Aaberge2023-12-131-1/+4
|
* Add no-secretstorage option for extract_token_from_browser.pyKrzysztof Konopko2023-12-131-15/+23
| | | | | | | | | | | On some Linux systems org.freedesktop.Secret D-Bus service is not available (installed/enabled), typically as a deliberate choice. In those cases `extract_token_from_browser.py` hands for the duration of D-Bus timeout and eventually fails. Note that it does not handle the timeout exception, so a fallback is not used. This commit adds `--no-secretstorage` option which skips using that service.
* Make /thread work on thread repliesTrygve Aaberge2023-10-291-0/+3
| | | | | | | Previously running /thread with a message id for a thread reply (or pressing T on the message in cursor mode, which is the same thing) would open a buffer with just the thread reply. Now the thread buffer for the thread the message is in is opened instead.
* Correctly show reactions with more than 50 usersTrygve Aaberge2023-10-252-4/+33
| | | | | | | | | If a reaction has more than 50 users, the list of users will be cropped to just 50 users. This made the counts wrong since we used the number of users rather than the count property. Fix it by using the count property instead and adding "and others" to the list of users if show_reaction_nicks is enabled (the same as the Slack client shows when you hover over the reaction).
* Support color rich text elementsTrygve Aaberge2023-10-252-0/+19
| | | | Fixes #912
* Update Python versions run in CITrygve Aaberge2023-10-221-10/+10
|
* Upgrade dependencies used in GitHub Actions workflowTrygve Aaberge2023-10-221-2/+2
|
* Simplify GitHub Actions workflowTrygve Aaberge2023-10-221-80/+13
| | | | | | | The caching doesn't seem to help much and it spends a while in the post step for the cache so the total runtime is lower without the cache. Having linting and testing in separate jobs doesn't seem valuable to me either.
* Properly fix rendering of < and >Trygve Aaberge2023-10-183-50/+174
| | | | | | | | I tried to do a fix for this in commit 6478c141, but it only fixed normal text, not e.g. code blocks and attachments. With this I think it should be correct everywhere. Fixes #908
* Handle Firefox containers in extract_token_from_browser.py (#909)Toke Høiland-Jørgensen2023-10-181-7/+42
| | | | | | | | | | | | | | | | | | | | | The extract_token_from_browser.py script does not handle Firefox containers correctly. The container support works by namespacing cookies and local storage with a 'userContextId'. In effect this means that when containers are used, running the script will select the cookie from whichever container happens to be returned first by the database query, which will be combined with the non-containerised instance of the local storage. Add correct handling by adding a new --container flag which specifies a container either by numeric ID or by name, and including the correct userContextId into the cookie query and local storage path (or excluding all cookies from containers from the query if no --container flag is supplied). With this the script can be run like: python extract_token_from_browser.py --container Work firefox to get the Slack auth token for the 'Work' container. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
* Handle millisecond-level timestamps in attachments (#905)Steinar H. Gunderson2023-10-061-0/+5
| | | | | | | | | | | | | | The Slack documentation claims that the “ts” flag on attachments is “An integer Unix timestamp”. However, evidently it can be in milliseconds (i.e., a timestamp multiplied by 1000), causing out-of-range exceptions when trying to feed them to date.fromtimestamp(). This can cause all messages after such attachments to just vanish, as if they were never there, as parsing stops. Accept both; as a heuristic, the Slack web interface seems to use 100000000000 as a threshold, so we do the same and divide by 1000 if so. Co-authored-by: Steinar H. Gunderson <steinar+git@gunderson.no>
* Mark conversation/thread as read when `/buffer set unread` is runTrygve Aaberge2023-10-011-0/+1
| | | | | It already marks it as read when `/input set_unread_current_buffer` is run, but this command was replaced with `/buffer set unread` in WeeChat 3.8.
* Only open subscribed threads with auto_open_threadsTrygve Aaberge2023-10-011-1/+1
| | | | | | | | | Only subscribed threads can be marked as read. This means that if we open other threads, they will be opened every time you reload wee-slack which is impractical and annoying. Previously, any thread with a highlight (in WeeChat, not necessarily a Slack highlight) was opened. Fixes #803, fixes #830
* Fix rendering of text styles for certain messagesTrygve Aaberge2023-09-291-16/+10
| | | | | | This fixes a regression in commit 74da303 which caused certain messages to include the bold/italic/strikethrough characters (but not the color attributes) even though the style should not be active.
* Release v2.10.1v2.10.1Trygve Aaberge2023-09-222-1/+17
|
* Ignore some websocket messages for unknown channelsTrygve Aaberge2023-09-221-2/+16
|
* Show unread join messages for your own user in hotlistTrygve Aaberge2023-09-221-2/+2
| | | | | | | When you're invited to a new channel, it's useful that it shows up in the hotlist so you notice it. Previously it would not do that until a message was posted to the channel after you joined. Now the join message itself will also be added to the hotlist.
* Fix being invited to a private channel not workingTrygve Aaberge2023-09-221-1/+8
| | | | | | If someone invited you to a private channel, it wouldn't work because the channel would be unknown to wee-slack and the join function didn't create a new channel instance.
* Fix links/refs not being processed in normal blocksTrygve Aaberge2023-09-221-11/+22
| | | | | | | In commit 6478c14 the block rendering was changed to escape `<` and `>`. However, this caused links and refs in normal (not rich_text) blocks to be shown as refs instead of rendered correctly. The correct behavior is to not process refs in rich_text blocks, but do it in normal blocks.
* Make render_emoji_as_string = "both" work with rich_text blocks (#902)melanie witt2023-09-223-1/+106
| | | | | | | | | | | | | | | | | | | Commit 74da30342e8d328fc085d2158e37afda3b908f2c added support for using rich_text blocks to format messages. With this change, the use of replace_string_with_emoji() for text type "emoji" can result in running the replacement twice as replace_string_with_emoji() is also called as one of the last steps in SlackMessage.render(). This works fine in the default case when render_emoji_as_string = "", however render_emoji_as_string = "both" results in output like: 😄 (😄 (:smile:)) instead of the intended: 😄 (:smile:) This excludes blocks rendered earlier in the method from the second call of replace_string_with_emoji().
* Include cookie when making the websocket connectionTrygve Aaberge2023-09-191-1/+6
| | | | Slack began to require this for xoxc tokens today.
* Print error message when running /reply without any argumentsTrygve Aaberge2023-09-161-0/+7
| | | | Fixes #900
* Fix < and > being removed in messagesTrygve Aaberge2023-09-161-2/+6
| | | | | | | This fixes a regression in commit 74da303 which caused < and > to be removed from messages. Escaping them in unfurl_block_element so they can be unescaped later isn't the nicest fix, but it's the easiest so I'll do it this way until this is rewritten in the new version.
* Fix rendering of huddlesTrygve Aaberge2023-08-251-7/+4
| | | | | After using blocks to render messages in commit 74da303, huddle messages got the text twice since they already used blocks.
* Release v2.10.0v2.10.0Trygve Aaberge2023-08-242-1/+32
|
* Update the readme with info about multiline in WeeChat >= 4.0.0Trygve Aaberge2023-08-241-1/+8
|
* Revert "Use prefix_nick_<color> tag for messages in WeeChat 4.0.0"Trygve Aaberge2023-08-241-23/+1
| | | | | | | | | This caused some nicks and bots to be colored as offline if the option weechat.look.color_nick_offline was enabled because not all nicks and bots are included in the nicklist. Revert this for now, and see if we can bring it back later. This reverts commit 7310fe88d6fbf94d1bda7c10f24fa9e396d80311.
* Fix regresion with option unfurl_auto_link_displayTrygve Aaberge2023-08-241-11/+16
| | | | | This option wasn't accounted for when the message rendering was changed to using blocks in commit 74da303.
* Rename text variable to elementTrygve Aaberge2023-08-241-27/+27
|
* Render adjacent text styles correctlyTrygve Aaberge2023-08-232-28/+160
| | | | Fixes #550 properly.
* Fix display of message unfurl originTrygve Aaberge2023-08-191-1/+9
| | | | | | | When a Slack message is linked and unfurled (previewed) the footer previously contained the channel name for the message, but now it just says "Slack Conversation" or "Thread in Slack Conversation" instead. This brings back display of the channel name.
* Fix regression with messages not being shown as deletedTrygve Aaberge2023-08-162-10/+10
| | | | | | | | The commit 74da303 introduced a regression with messages not being shown as deleted anymore because deleting only changed the text field, and that's not being used anymore with that commit. Fixes #897
* Fix flake8 errors after new flake8 releaseTrygve Aaberge2023-07-301-1/+1
| | | | I missed this file in commit 6202a7c.
* Update documentation after commit 7a27effTrygve Aaberge2023-07-301-1/+2
|
* Fix flake8 errors after new flake8 releaseTrygve Aaberge2023-07-301-7/+9
| | | | | For some reason these errors were not reported by flake8 before version 6.1.0.
* feat: Filter channel list based on regular expression (#896)Bryan Mason2023-07-301-3/+10
| | | | | It can be difficult to find a specific channel if there are thousands of them in your slack workspace. This enhancement allows you to filter the channels based on a regular expression.
* Update instructions for running docker with shared stateTrygve Aaberge2023-07-071-7/+9
|
* docker: Update script path for wee_slack.py (#894)Jordan Matelsky2023-07-071-1/+1
|
* Split long line to satisfy flake8Trygve Aaberge2023-07-071-1/+4
|
* Support and use rich_text blocks for message contentTrygve Aaberge2023-07-072-10/+397
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of just using the text field of a message, use the rich_text blocks to format the message. The main reason for doing this was that messages that include images suddenly started just having "This message contains interactive elements." in the text field. There are some other benefits as well: - It fixes some bugs with multiple formatting styles not being applied correctly. - It fixes links in code blocks not being rendered verbatim (but with text and url, like outside code blocks). - It fixes code blocks sometimes having newlines after/before ``` and sometimes not, depending on how the message was sent. It looks like messages with images are now back to having the proper text in the text field (for new messages), so this change isn't necessary to fix that after all (except for for messages in the history sent in the last couple of days), but since it fixes other issues as well, it's best to keep it. There is one bug left when inline code blocks contains links. Then there will be ` characters before and after the link, which shouldn't be there, but I'll leave fixing this for later. Fixes #354, fixes #550, fixes #893
* Support printing URLs without a title/alt textTrygve Aaberge2023-07-061-5/+9
| | | | Not sure if this ever occurs, but better safe than sorry.
* Fix indentation errorTrygve Aaberge2023-06-291-1/+1
| | | | | This line was wrongly indented after the merge conflict resolution in commit e86e05e.
* Update readme for extract_token_from_browser.py scriptTrygve Aaberge2023-06-292-5/+8
|
* Merge pull request #887 from frozencemetery/default-profileTrygve Aaberge2023-06-292-13/+52
|\
| * extract_token_from_browser: Add manual --profile-pathRobbie Harwood2023-03-131-14/+31
| | | | | | | | | | | | | | | | | | This flag overrides detction and uses the specified profile path. This helps when a non-default profile is used for Slack. It also helps if autodetection fails; accordingly, recommend use of the flag in that case. Signed-off-by: Robbie Harwood <rharwood@redhat.com>
| * extract_token_from_browser: use new local storage pathRobbie Harwood2023-03-132-4/+18
| | | | | | | | | | | | | | | | | | webappsstore.sqlite seems to be deprecated, and firefox is migrating to per-page locations. The values inside the database can be snappy-compressed, so handle decoding with a new dependency on python-snappy. Suggested by Trygve Aaberge. Signed-off-by: Robbie Harwood <rharwood@redhat.com>
| * extract_token_from_browser: read default from profiles.iniRobbie Harwood2023-03-131-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | Firefox's default profile can have several different name suffixes, including ".default-release", the legacy ".default", and others for different release channels. Rather than guessing, just parse profiles.ini to determine the default path. Suggested by Trygve Aaberge. Link: https://support.mozilla.org/gl/questions/1264072 Link: https://support.mozilla.org/en-US/kb/understanding-depth-profile-installation Signed-off-by: Robbie Harwood <rharwood@redhat.com>
* | Fix or ignore flake8 errorsTrygve Aaberge2023-06-292-1/+5
| |
* | Gracefully handle not finding Chrome local storage valuesTrygve Aaberge2023-06-291-1/+1
| |
* | Delete temp copy of leveldb after reading itTrygve Aaberge2023-06-291-11/+11
| |