* feat: show chat badges on suspicious user messages
* feat: display emotes in suspicious user messages
* feat: add search filters for suspicious messages
* chore: update changelog
* refactor: resolve initial nits
* fix: finish adding new filter identifier
* Comment the new message flags
* Add a list of known issues to low trust update messages
* fix: Keep shared-pointerness of the channel
Without this change, we would have the possibility of using the
TwitchChannel after the Channel itself has gone out of scope, albeit not
realistically since we just post this to a thread and parse it - there's
no networking or big delays involved. but this shows the intent better
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* Remove unused `setAccountData` function
* Move PubSub out of TwitchIrcServer and into Application
* Add changelog entry
* fix: assert feedback
* Add PubSub::unlistenPrefix as per review suggestion
* Fix tests
* quit pubsub on exit
might conflict with exit removal, so can be reverted but this shows it's possible
* Don't manually call stop on clients, it's called when the connection is closed
* nit: rename `mainThread` to `thread`
* Join in a thread!!!!!!!!
If we also have a subscriber emote set for a channel, then don't treat
a follower emote set as local to that channel.
Co-authored-by: iProdigy <8106344+iProdigy@users.noreply.github.com>
* Add a few pre-made sanitizer suppressions
* Test Sanitization: Fix threading issues
* Test Sanitization: Allow deletion of PubSub
We still don't delete it in main code, but this allows us to try
deleting it in tests.
* Test Sanitization: Fix some memory leaks
* fix gtest clang-tidy warning
* const emojis test :-)
* feat: more hype chat
* Add `std::chrono::seconds` overload to formatTime
* Move & rename it to HypeChat + some other mini things
* Add changelog entry
* fix formattime test
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This fixes a crash that could occur when closing a split before the
display name had a chance to update
The reason I found this was because the LiveController change I made
updated display names more regularly
Additionally, we now make sure to not send duplicate `displayNameUpdated` signals
upon each request for channels with CJK characters in their display name
* Default-initialize the `actualDisplayName` with the user's login name to not send an initial display name update if the display name is the same casing as the login name
* Specifically, this adds a caller to the network request, which makes the
success or failure callback not fire.
This has the unintended consequence of the block list not reloading if
the usercard is closed, but it's not a big concern.
* Add unrelated `-DUSE_ALTERNATE_LINKER` cmake option
From 0517d99b46/CMakeLists.txt (L87-L103)
Available test channels:
- `$$$` - Fill up scrollback (1000 messages), then add a new message every 500ms
- `$$$:e` - Add a new message every 500ms
- `$$$$` - Fill up scrollback (1000 messages), then add a new message every 250ms
- `$$$$:e` - Add a new message every 250ms
- `$$$$$` - Fill up scrollback (1000 messages), then add a new message every 100ms
- `$$$$$:e` - Add a new message every 100ms
- `$$$$$$` - Fill up scrollback (1000 messages), then add a new message every 50ms
- `$$$$$$:e` - Add a new message every 50ms
- `$$$$$$$` - Fill up scrollback (1000 messages), then add a new message every 25ms
- `$$$$$$$:e` - Add a new message every 25ms