-
Notifications
You must be signed in to change notification settings - Fork 13.1k
[FIX] Message search breaking URL, usertags and emojis #20878
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…s links, usernames, emojis (handles multiple matches)
|
I just updated the PR to rebase on As stated here, this PR will close 6 issues and 3 PRs :
@debdutdeb would it be possible for you (or someone else) to review that PR ? We discussed it with @sampaiodiego in #18913 (Sep 2020 - Feb 2021), I since cleaned the PR, and everything looks good to go ! Hope we'll finally get rid of this issue, a long await one ! 💪 |
|
@debdutdeb @dudanogueira @sampaiodiego Could you guys review (and accept if it looks good to you) this PR ? There's a lot of issues (and now, many PRs) aiming to fix that one, showing how disturbing it is for users to have broken links (regular urls and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hey @TBG-FR thx for the deep investigation on this issue..
I was wondering if we could still use a single regex to do the replace.. I give it a try a come up with this:
msg = msg.replace(new RegExp(`(${searchedText})(?![^<]*>)`, 'gi'), (str) => `<mark>${str}</mark>`);a tested very quick and got good results.. can you pls try it on your end to see if it works as expected as well?
Thanks for your message, and for that improvement ! I finally tested it, and:
Good catch with that solution that stays simple 😄 |
|
that's great to know 😄 I'd be happy to accept that as a contribution.. so feel free to update this PR with it :) |
…new regex thanks to @sampaiodiego)
|
PR updated ;) I also checked user tags ( |
…ranch2 * 'develop' of github.com:RocketChat/Rocket.Chat: (1555 commits) Chore: Show better error logs (RocketChat#27156) [FIX] Message search breaking URL, usertags and emojis (RocketChat#20878) [NEW] REST API endpoint `/v1/oauth-apps.create` (RocketChat#27054) i18n: Language update from LingoHub 🤖 on 2022-10-31Z (RocketChat#27150) Chore: Convert client/views/directory/hooks to ts (RocketChat#26936) Chore: Convert client/views/directory/RoomTags to ts (RocketChat#26937) [FIX] UserCard not opening inside Threads (RocketChat#27096) [FIX] Gap between message content and message header when there's no text. (RocketChat#27165) Chore: docs grammar fix (RocketChat#26894) [FIX] Removed mobile requirement for showing real name (RocketChat#26968) Chore: Cursor pointer to all the action buttons (RocketChat#24440) Chore: Bump actions/upload-artifact from 2 to 3 (RocketChat#27109) Chore: Enable PR Title Checker for forks (RocketChat#27144) Chore: Converting game center to typescript (RocketChat#26915) i18n: Language update from LingoHub 🤖 on 2022-10-24Z (RocketChat#27127) Chore: Add info log to remove all rooms method (RocketChat#27106) [IMPROVE] Quotes on E2EE Messages (RocketChat#26303) [NEW] REST API endpoint `/v1/rooms.delete` (RocketChat#26866) [FIX] Room Avatar being deleted after upload. (RocketChat#27060) Chore: Apps/Marketplace code organization (RocketChat#27061) ...
…llowArchived * 'develop' of github.com:RocketChat/Rocket.Chat: (2426 commits) Chore: Show better error logs (#27156) [FIX] Message search breaking URL, usertags and emojis (#20878) [NEW] REST API endpoint `/v1/oauth-apps.create` (#27054) i18n: Language update from LingoHub 🤖 on 2022-10-31Z (#27150) Chore: Convert client/views/directory/hooks to ts (#26936) Chore: Convert client/views/directory/RoomTags to ts (#26937) [FIX] UserCard not opening inside Threads (#27096) [FIX] Gap between message content and message header when there's no text. (#27165) Chore: docs grammar fix (#26894) [FIX] Removed mobile requirement for showing real name (#26968) Chore: Cursor pointer to all the action buttons (#24440) Chore: Bump actions/upload-artifact from 2 to 3 (#27109) Chore: Enable PR Title Checker for forks (#27144) Chore: Converting game center to typescript (#26915) i18n: Language update from LingoHub 🤖 on 2022-10-24Z (#27127) Chore: Add info log to remove all rooms method (#27106) [IMPROVE] Quotes on E2EE Messages (#26303) [NEW] REST API endpoint `/v1/rooms.delete` (#26866) [FIX] Room Avatar being deleted after upload. (#27060) Chore: Apps/Marketplace code organization (#27061) ...
* 'develop' of github.com:RocketChat/Rocket.Chat: (2462 commits) [FIX] Uploading Custom Sound files not working, but showing success (RocketChat#27177) Chore: Show better error logs (RocketChat#27156) [FIX] Message search breaking URL, usertags and emojis (RocketChat#20878) [NEW] REST API endpoint `/v1/oauth-apps.create` (RocketChat#27054) i18n: Language update from LingoHub 🤖 on 2022-10-31Z (RocketChat#27150) Chore: Convert client/views/directory/hooks to ts (RocketChat#26936) Chore: Convert client/views/directory/RoomTags to ts (RocketChat#26937) [FIX] UserCard not opening inside Threads (RocketChat#27096) [FIX] Gap between message content and message header when there's no text. (RocketChat#27165) Chore: docs grammar fix (RocketChat#26894) [FIX] Removed mobile requirement for showing real name (RocketChat#26968) Chore: Cursor pointer to all the action buttons (RocketChat#24440) Chore: Bump actions/upload-artifact from 2 to 3 (RocketChat#27109) Chore: Enable PR Title Checker for forks (RocketChat#27144) Chore: Converting game center to typescript (RocketChat#26915) i18n: Language update from LingoHub 🤖 on 2022-10-24Z (RocketChat#27127) Chore: Add info log to remove all rooms method (RocketChat#27106) [IMPROVE] Quotes on E2EE Messages (RocketChat#26303) [NEW] REST API endpoint `/v1/rooms.delete` (RocketChat#26866) [FIX] Room Avatar being deleted after upload. (RocketChat#27060) ...
…password-change * 'develop' of github.com:RocketChat/Rocket.Chat: (2885 commits) [FIX] Uploading Custom Sound files not working, but showing success (RocketChat#27177) Chore: Show better error logs (RocketChat#27156) [FIX] Message search breaking URL, usertags and emojis (RocketChat#20878) [NEW] REST API endpoint `/v1/oauth-apps.create` (RocketChat#27054) i18n: Language update from LingoHub 🤖 on 2022-10-31Z (RocketChat#27150) Chore: Convert client/views/directory/hooks to ts (RocketChat#26936) Chore: Convert client/views/directory/RoomTags to ts (RocketChat#26937) [FIX] UserCard not opening inside Threads (RocketChat#27096) [FIX] Gap between message content and message header when there's no text. (RocketChat#27165) Chore: docs grammar fix (RocketChat#26894) [FIX] Removed mobile requirement for showing real name (RocketChat#26968) Chore: Cursor pointer to all the action buttons (RocketChat#24440) Chore: Bump actions/upload-artifact from 2 to 3 (RocketChat#27109) Chore: Enable PR Title Checker for forks (RocketChat#27144) Chore: Converting game center to typescript (RocketChat#26915) i18n: Language update from LingoHub 🤖 on 2022-10-24Z (RocketChat#27127) Chore: Add info log to remove all rooms method (RocketChat#27106) [IMPROVE] Quotes on E2EE Messages (RocketChat#26303) [NEW] REST API endpoint `/v1/rooms.delete` (RocketChat#26866) [FIX] Room Avatar being deleted after upload. (RocketChat#27060) ...
Clean version of #18913 (still worth mentionning it for the discussions in comments about "missing" search results")
Proposed changes
It has been reported that when searching for a message, the results were displaying with bugs : URLs where broken, emojis title too,
and some results are missing. This PR aims to fix these issues.Elements resolved:
<mark><mark>mailto:links are broken by search<mark>[ ] Some search results are missing (is it really a bug ? See comment on [FIX] Message search breaking URL and emojis, and missing results [WIP] #18913 )Issue(s)
#18770 => reports that highlighted links, emojis (and mentions ?) are broken, as well as missing results
#18696 => reports that highlighted links are broken
#18456 => report that highlighted links are broken
How to test or reproduce
Go into a channel, and post these messages :
Then search for the word
smilein that channel. You'll notice that:<mark>tags)<mark>tags toosmilenot.comlink isn't part of the resultsScreenshots
See issues for screenshots
Types of changes
Checklist
Changelog
Further comments
Broken links/emojis
I fixed the
<mark>tag issue by doing threereplacestepssearchedTextwhich is inside atitle="..."orhref="..."and replacesearchedTextin them by an unique UUIDsearchedTextleft and we mark itsearchedTextI did this because I couldn't make a better REGEX, which would exclude
1and find only2. If you are able to do it, or if you see a better solution, feel free to comment ! Also, you may wonder "Why an UUID ?" : I used it because I thought that any arbitrary set of characters could end up being part of the initial search, and I think we're safe about that with a V4 UUID.Considering the other issue, which we'll call "missing results", I searched in the whole project and found that it uses a Meteor functionmessageSearch. So I suspect Meteor for being responsible of that bug, but we need more investigation to be sure.Related PR
Results highlighting has been implemented in #16166