Commit Graph

340 Commits

Author SHA1 Message Date
iProdigy c44e7295da feat: add /lowtrust command (#4542)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-15 10:13:26 +00:00
Daniel Sage 34db692895 Implement type checking/validation for filters (#4364)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-09 23:35:06 +02:00
nerix 149399a072 Fix plugin compilation error when using Qt 6 (#4504) 2023-04-02 20:30:15 +02:00
Mm2PL 5ba809804e Add basic lua scripting capabilities (#4341)
The scripting capabilities is locked behind a cmake flag, and is not enabled by default.

Co-authored-by: nerix <nerixdev@outlook.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-02 15:31:53 +02:00
iProdigy b5b85501ee Add ban user by id command /banid (#4411)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-02-26 20:03:14 +00:00
pajlada c95a65c153 Fix Qt6 building (#4393) 2023-02-19 20:19:18 +01:00
Lucas K ff53b7cc97 Fix inconsistent separator usage in command failure messages (#4379) 2023-02-14 21:27:33 +00:00
Mm2PL d38187f794 Remove sending part of the multipart emoji workaround (#4361) 2023-02-09 16:45:53 +01:00
Auro d6ccab2cdf Added option to highlight your own messages (#3833)
* Removed magic numbers when checking rowIndex

* Swap from static ints to enum

* Referred enum members by enum name

* Fixed formatting

* Added highlight option for self messages

* Update CHANGELOG.md

* Made disabled by default

* Moved setting from Messages tab to Users tab

* Moved checks to HighlightController

* Set row index to 0

sillE silly me

* Update CHANGELOG.md

* Moved check outside of loop

* Improved naming and documentation on variables

* Fixed formatting

* Fix compile errors

* Update ColorProvider self message highlight color when it's changed

Use the ColorProvider self message highlight color instead of rolling
our own non-updating color

* Update changelog entry

* Remove unused `customColor` from user highlights builder

* Use explicit lambda capture

* Update comment for the color provider color

* HighlightModelHpp: Future-proof custom row enum B)

* Document UserHighlightModel color changes

* Update colorprovider comment

* Update enabled, show in mentions & color setting paths

* Rename settings from `selfMessagesHighlight` to `selfMessageHighlight`

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-01-30 11:40:50 +01:00
pajlada 4958d08036 Change sound backend from Qt to miniaudio (#4334)
Thanks Greenlandicsmiley, Nerixyz, Yoitsu, and helmak for helping debug & test this

* Remove QMediaPlayer includes

* Prefer local path when generating the sound path

* Update changelog entry number

* Disable pitch & spatialization control
2023-01-29 10:36:25 +01:00
Thomas Petersen d5a0420f74 Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
pajlada f933d9cdf2 Change the highlight order to prioritize Message highlights over User highlights (#4303) 2023-01-15 13:21:42 +00:00
askepticaldreamer 4c782ce90c Add feature to select channels to log (#4302)
* Add checkbox for custom logging and table with channels to log on Logs page

* Add checkbox to enable and disable logging per channel

* Return from addMessage before logging if custom logging enabled and channel does not have logging enabled

* Use clang-format to fix formatting

* Add CHANGELOG.md entry

* Resolve PR comments

* Remove toggle for channels so any channel listed will be logged

* Move Only log channels listed below checkbox to just above table

* Fix formatting

* Re-order changelog

* ChannelLog constructor: Copy & move instead of const ref & copy

* ChannelLog::createEmpty: Curly brace initialize instead of repeating
name

* ChannelLog toString & createEmpty: nodiscard

* Use COUNT paradigm in model column

* Remove ChanneLoggingModel source file comments

* Use Column::Channel in getRowFromItem

* Rename `getItemFromRow` parameter and mark it as unused

* Curly brace initialize ChannelLog

* private & friend class the model

* Filter out channels to log using a set instead of iterating over a vector every time a message comes in

* Rename `ChannelLog::channel` member to `ChannelLog::channelName`

Also made it private

* mini comment on ChannelLog

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-01-15 11:47:22 +00:00
pajlada 18cb4bd6e5 Massage includes some more (#4294)
* Add `<functional>` include to QStringHash.hpp

This ensures the base `std::hash` template is declared before this
specialization

* Add missing includes to `src/providers/twitch/TwitchAccountManager.hpp`

* Move explicit HelixChatters constructor to the source file

* Remove unused includes & add used includes to NicknamesModel.hpp

* NicknamesModel.hpp: Remove `virtual` when `override` is used

* Add missing QStringHash include to TwitchEmotes.cpp

* Add missing includes to various files

* Print Qt version in cmake step

Technically unrelated, but I'm sneaking it in

* Add changelog entry
2023-01-08 12:07:06 +00:00
nerix 1043f9f803 Remove Unnecessary Includes in Headers (#4275)
* refactor: remove unnecessary includes in headers

* fix: formatting

* chore: changelog

* fix: scrollbar

* fix: suggestions and old appbase remains

* fix: suggestion

* fix: missing Qt forward declarations

* fix: another qt include

* fix: includes for precompiled-headers=off

* Add missing `<memory>` includes

* Add missing `#pragma once`

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-31 14:41:01 +00:00
nerix 86e71c8bd9 Migrate to C++ 20 & switch to websocketpp develop branch (#4252)
* feat: c++ 20

* fix: c++ 20 deprecations

* fix(msvc): warnings

* chore: add changelog entry

* fix: formatting

* Update websocketpp to the `develop` branch

* Specify other template type in FlagsEnum != operator

* Remove the user of simple template ids in our websocketpp template class

Also standardizes the file a bit by using nested namespaces, using
pragma once

* fix: turn `MAGIC_MESSAGE_SUFFIX` into a `QString`

* hacky unhacky hacky const char hack

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-24 11:56:11 +00:00
pajlada a715b1ffff Clean up TwitchAccount emote stuff (#4243)
* Remove unused TwitchAccount FollowResult enum

* Remove unused TwitchEmoteSetResolverResponse struct

* Remove unused and unimplemented `getEmoteSetBatches` function definition

* Remove unused `loadEmoteSetData` and `staticEmoteSets` from
TwitchAccount

* Remove forward declaration of TwitchAccount in TwitchAccountManager

* Clean up IgnorePhrase includes

* add missing newline in pubsubmanager.cpp
2022-12-18 14:36:39 +00:00
nerix 2aa8af47e7 Clear up Highlight sound settings (#4194)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Closes https://github.com/Chatterino/chatterino2/issues/1540
2022-12-03 17:01:49 +01:00
pajlada 032f290767 Sort and force grouping of includes (#4172)
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)
2022-11-27 19:32:53 +01:00
Felanbird 518262596a Fix issue with VIPs who have Asian Language display names (#4174)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-21 17:58:32 +00:00
nerix 9fba0bd4ab fix: /ban messages for self/mod bans (#4164) 2022-11-19 13:34:07 +00:00
Mm2PL 2f4272cc2a Add better support for IRC private messages (#4158)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-18 19:11:56 +00:00
Mm2PL 49eb5c90cf Make builtin commands work in IRC channels (#4160)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-17 19:22:47 +00:00
pajlada 1eabda8668 Initial backend test for user-based data/customizations (#4144)
Right now only support for colors and no real UX, idea is to test it & allow the idea to grow while figuring out the UX
2022-11-13 17:21:21 +00:00
xel86 46cdb89498 Allow Commercial API endpoint to handle commercial lengths (#4141) 2022-11-12 00:17:50 +01:00
pajlada c6a162c7ff Move ChatSettings commands to their own file (#4116)
* Move ChatSettings commands to their own file

* reformat error message strings

* move ChatCommands together in CommandController.cpp

* Allow CommandContext to be provided for builtin functions

using variants MEGADANK

* add missing include

* rename to ComandFunctionVariants

also include some move magic & const reffing
2022-11-06 12:07:54 +00:00
Mm2PL 6f88c1cc8a Make opening threads from a usercard opened with /usercard not crash the client (#3905)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-05 12:40:15 +00:00
pajlada 2ec26f57cc Fix chatters recursion not working (#4114) 2022-11-05 11:56:17 +00:00
Colton Clemmer e531161c7f Migrate /mods command to helix API (#4103)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-05 11:20:12 +00:00
xel86 f00f766eeb Migrate /commercial command to the Helix API (#4094)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-05 09:43:31 +00:00
Colton Clemmer 495f3ed4a9 Migrate /chatters commands to use Helix api (#4088)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-01 22:18:57 +00:00
yodax d23d5c142e Added stream titles to windows toast notifications (#2044)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: David Myers <dave-myers@outlook.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-30 12:29:43 +00:00
8thony 570746a8bd Hide inline whispers in streamer mode (#4076)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-22 10:04:51 +00:00
Felanbird dd6cb80ab9 Add searching & filtering for bits (#4069) 2022-10-18 20:26:12 +02:00
Kasia b232d16b55 Prevent copying in a couple places (#4066) 2022-10-16 14:25:24 +00:00
Aiden c71d3437f4 Migrate /uniquechat and /uniquechatoff to Helix API (#4057)
* Migrate /uniquechat and /uniquechatoff to Helix

* Update CHANGELOG.md

* Move & squash changelog entries

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-15 12:36:49 +02:00
James Upjohn ceecc7ef91 chore: migrate /vips command to Helix call (#4053)
* 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>
2022-10-10 12:56:55 +02:00
Mm2PL e604a36777 Make menus and placeholders display appropriate custom key combos. (#4045)
* 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>
2022-10-09 17:20:44 +02:00
nerix 4e2da540d2 refactor: Remove Leading Mention in Replies and Highlight Participated Threads (#4047) 2022-10-08 16:25:32 +02:00
Marko 29272e130a Migrate /unraid to Helix. (#4030)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-08 12:10:38 +00:00
nerix 974a8f11b7 Migrate /w to Helix API (#4052) 2022-10-08 13:11:55 +02:00
Felanbird 7f93885518 Remove trailing whitespace from Usernames in User Highlights (#4051) 2022-10-06 22:42:41 +00:00
nerix 874ef64216 Migrate /ban and /timeout to Helix API (#4049) 2022-10-06 23:52:25 +02:00
nerix 25bccc90b4 Migrate Remaining Chat Settings Commands to Helix API (#4040) 2022-10-03 19:42:02 +02:00
pajlada 4c2e97bea6 Enable Helix timegating (#4035)
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
2022-10-02 21:53:22 +00:00
Felanbird 766a30240d Add debug hotkey for test sub messages (#4037) 2022-10-02 17:17:32 -04:00
nerix 54129f76a3 Migrate /emoteonly and /emoteonlyoff commands to the Helix API (#4015)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 14:18:10 +00:00
Marko f8f9903892 Migrate /raid to Helix. (#4029)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 15:27:55 +02:00
Felanbird 9816722b5e Add showInMentions option for Badge Highlights (#4034)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 11:25:10 +00:00
Aiden a275a1793a Migrate /unban and /untimeout to Helix API (#4026)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-01 15:10:06 +00:00