* 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>
* Add initial support for finding hotkey display key sequences
* Make neededArguments work
* Implement displaying key combos in SplitHeader main menu
* Make Settings search text dynamic
* Make tab hide notice use a custom hotkeys key sequence
* Make Notebook menus use custom hotkeys key combo lookup for hiding tabs
* shut up changelog ci
* Make NotebookTab menus show custom hotkeys. SCUFFED:
this does not update dynamically!
* Scuffed: Make the show prefs button setting show the key bind
* Scuffed: Make the R9K description refer to hotkeys
* @pajlada, is something like this ok?
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
For commands affected by the timegating, they will continue to use their IRC command equivalent until the 11th of February, 2023.
This is one week before the actual migration is supposed to start. The wording of the date is shaky, so we start a bit before to be sure.
Any highly affected commands will have a temporary setting at the bottom of the General settings page to override the timegating functionality.
Any commands that are affected will also have their changelog entry updated to notify of the timegating. As of this commit, this is only active for /raid
* 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
Opens the channel points requests queue for the provided channel or the current channel if no input is provided.
Co-authored-by: Mm2PL <mm2pl+gh@kotmisia.pl>
Use a single api call for fetching live status of fake channels; batch by 100s
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: zneix <zneix@zneix.eu>
* popout command could use some love too
* changelog
* forward slash is sorry for force push
* copied the old changelog too literally that I misplaced it
* apparently i didn't save the changelog change
/(un)follow commands are marked as deprecated and link to the issue this PR is closing.
follow button on the usercard is removed completely
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
You can create clips with `/clip` command, `Alt+X` keybind or `Create a clip` option in split header's context menu. This requires a new authentication scope so re-authentication will be required to use it.
Co-authored-by: Leon Richardt <leon.richardt@gmail.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Also changes the way timeouts happen, since right now if a timeout was met (which it mostly wasn't), it would run the error callback twice causing potentially undefined behaviour
This was an error introduced in ec94869. Instead of the
Qt::CheckStateRole, which stores the state represented in the table
view, the Qt::DisplayRole was used. As per [1], this always returns
`false` in our use case.
[1]: https://doc.qt.io/qt-5/qvariant.html#toBool
Adds custom channel filters complete with their own mini-language. Filters can be created in settings, and applied by clicking the three dots to open the Split menu and selecting "Set filters".
* Add missing includes
We would normally have these included in another file already, or even
the precompiled headers, but having the files included here too makes
testing single parts easier.
* Modify the regex building of highlight phrases for non-regex phrases
For phrases like !test, the word boundary checking we did before was not
enough, so we now check for either a word boundary, a whitespace
character, or the line start/end.
* Add tests for ensuring I haven't fully broken the highlight system
* Add changelog entry
- /usercard command doesn't close imidiatelly
- removed "Dialog" window flag. It seems to be unnecessary and causes issues (on left-clicking user name it sometimes didnt render unless you clicked 2-3 times.
* Better Highlights: Fix wrong color for migrated phrases
Prior to this commit, no default color was set when an "old" highlight
phrase (one added prior to #1320 / 5957551) was deserialized. This
commit makes highlight phrases uses the default self-highlight color for
these situations. This approach is reasonably sensible since that color
is also similar to the old highlight color.
Fixes#1565.
* Update default self-highlight color
The new default color was suggested in [1] by @RAnders00. Refer to the
link for further information.
[1]: https://github.com/Chatterino/chatterino2/issues/1565#issuecomment-590441625
* Theme: Remove highlight color
As highlight color is independent of the selected theme now, the member
has been removed from the `Theme` singleton. Instead, the fallback theme
color is defined in `HighlightPhrase` now.
Uses of `themes->messages.backgrounds.highlighted` have been replaced
with `HighlightPhrase::FALLBACK_COLOR` accordingly.
* Update src/controllers/highlights/HighlightPhrase.hpp
attempt to just remove constexpr
Co-Authored-By: Ruben Anders <ruben.anders@robotty.de>
* Initialize FALLBACK_COLOR outside header file
* Rename FALLBACK_COLOR to FALLBACK_HIGHLIGHT_COLOR
In preparation for the next commit introducing a new variable.
* Moved subscription highlight color into HighlightPhrase
* Use actual subscription color as a fallback
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Co-authored-by: Ruben Anders <ruben.anders@robotty.de>
There's a document in src/providers/twitch/api which describes how we interact with the Twitch API.
Keeping this up to date might be a healthy way for us to ensure we keep using the right APIs for the right job.