* 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!!!!!!!!
* EmptyApplication: Add asserts to rest of getters (except for getSeventvAPI)
* Theme: make getTheme call getIApp()->getThemes() instead
this allows it to be used in tests
realistically this should be deprecated & users of it should just call
getIApp()->getThemes() directly
* Use getIApp() instead of getApp() in a few places
Fixed some language ✨stuff✨.
Added alternative to httpbin.
Updated expected space requirement on Windows.
Removed unused VS component on Windows.
Moved Qt Creator formatting to Windows docs.
Updated nativs link to Qt 6.
Added missing language to code blocks.
Removed # Description from PR template and added instructions to fix a GitHub issue.
Co-authored-by: Wissididom <30803034+Wissididom@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson+github@pajlada.com>
This changes the `make coverage` function to use `gcovr` instead of `lcov`, and to have it generate an html file directly at `coverage/index.html` under the build directory
The only thing this changes, other than adding tests, is making the `Expression` class pure virtual. Every derived class should implement each of the functions
* 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 :-)
* Tests: Fix InputCompletion tests in Qt6
This is achieved by not checking exact order for certain completion tests
* Tests: Use Ubuntu 22.04 for all tests
This allows us to be a bit more loose and use more C++20 features in
tests
* Update dockerfiles
* 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>
Use QTemporaryDir to create the test directory
Add option to use httpbin over local docker
Increase delay for opening a connection
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This feature is enabled by default and can be disabled in settings with the "Enable BTTV live emotes updates" setting.
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
* ci: format yaml and json files with prettier
* chore: add changelog entry
* fix: format everything
* ci: run pretter on all files
* ci: rename prettier step
This change enforces strict include grouping using IncludeCategories
In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:
In ChatterSet.hpp, I changed lrucache to a <>include
In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
* feat(helix): create response model for VIP listing
* feat(helix): stub out channel/vips request + handler
* feat(helix): parse VIPs list from data and pass to callback
* feat(helix): handle errors when getting VIP list then pass to callback
* feat(command): add barebones handler for helix-based /vips
* feat(command): provide better /vips output when user is not broadcaster
* chore(format): bulk reformat with clang-format
* chore(changelog): add entry for /vips Helix migration
* fix(helix): use correct method when calling VIP list endpoint
* fix(helix): use correct VIP list endpoint
* chore(tidy): please clang-tidy by marking parameter as unused
* feat(command): display unsorted VIP list returned from Helix API
* feat(settings): clone raid timegate settings for /vips
* feat(command): check /vips timegate setting before execution
* feat(command): handle 0 VIPs from Helix response
* feat(command): sort users alphabetically from Helix VIPs response
* fix(command): highlight users in Helix /vips output to match IRC
* fix(command): replace dynamic /vips error message with hardcoded string
* chore(comment): remove TODO comment that was DONE
* chore(format): bulk reformat using clang-format
* fix(command): send 0 VIP message after creation
* chore: apply suggestions from Felanbird
* fix(helix): change mention of user ban to VIPs in VIP list error message
* feat(helix): distinguish non-broadcaster auth error when getting VIPs
* chore(command): move handling of non-broadcaster /vips usage to API response
* chore(format): re-indent multiline string to get away from 80 char limit
* reformat
* fix tests
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
* All non-phrase highlights can now trigger on messages from self
New state:
Allows self highlights: Subscription, Whisper, User, Badge
Does not allow self highlights: Message
* Add changelog entry
* fix PR number in changelog
* Use circular buffer for LimitedQueue
* Reduce copying of snapshot
* Small optimizations
* Remove unneeded lock statements
* Add LimitedQueue tests
* Fix includes for limited queue benchmark
* Update CHANGELOG.md
* Use correct boost version iterators
* Use a shared_mutex to clarify reads and writes
* Update `find`/`rfind` to return the result as a boost::optional
* Use `[[nodiscard]]` where applicable
* Update comments
* Add a couple more doc comments
* Replace size with get
get is a safe (locked & checked) version of at
* Use std::vector in LimitedQueueSnapshot
* Update LimitedQueue benchmarks
* Add mutex guard to buffer accessors
We do not know whether T is an atomic type or not
so we can't safely say that we can copy the value
at a certain address of the buffer.
See https://stackoverflow.com/a/2252478
* Update doc comments, add first/last getters
* Make limit_ const
* Omit `else` if the if-case always returns
* Title case category comments
* Remove `at`
* Fix `get` comment
* Privatize/comment/lock property accessors
- `limit` is now private
- `space` is now private
- `full` has been removed
- `empty` now locks
* Remove `front` function
* Remove `back` method
* Add comment to `first`
* Add comment to `last`
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* Add basic benchmark
* Add basic documentation for how to run and add tests/benchmarks
* Update benchmark example output
* Add changelog entry
Co-authored-by: zneix <zneix@zneix.eu>