Commit Graph

408 Commits

Author SHA1 Message Date
nerix 78a7ebb9f9 Improve color selection and display (#5057)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 20:52:29 +00:00
iProdigy 693d4f401d feat: add badges, emotes, and filters for suspicious messages (#5060)
* 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>
2024-01-06 13:22:00 +00:00
fraxx 4a0ef08a00 Added missing periods at mod-related messages and some system messages (#5061)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-03 12:24:23 +01:00
Mm2PL 69a54d944d Autogenerate docs/plugin-meta.lua (#5055) 2023-12-30 10:26:19 +00:00
nerix 9a2c27d258 Allow customization of whisper colors in settings (#5053) 2023-12-29 20:52:35 +00:00
pajlada d085ab578f refactor: Make Args less of a singleton (#5041)
This means it's no longer a singleton, and its lifetime is bound to our application.
This felt like a good small experiment to see how its changes would look
if we did this.
As a shortcut, `getApp` that is already a mega singleton keeps a
reference to Args, this means places that are a bit more difficult to
inject into call `getApp()->getArgs()` just like other things are
accessed.
2023-12-29 15:40:31 +01:00
iProdigy eb12cfa50b feat: add sound and flash alert for automod caught messages (#5026)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-25 23:17:44 +00:00
pajlada aa11a24163 fix: UserInfoPopup now requires a split as its parent (#5034)
Co-authored-by: Nerixyz <nerixdev@outlook.de>
2023-12-17 11:53:06 +00:00
Mm2PL 5f8c4c6b66 BREAKING: Replace custom import() with normal Lua require(). (#5014)
* Use require() instead of a custom import()

* Also search relative to the current file

* Update documentation
2023-12-16 12:16:54 +00:00
nerix 66f4480371 fix: Fixed some compiler warnings (#5028)
* fix(C4101): unreferenced local variable

* fix(C4189): variable initialized but not referenced

* fix(C4305): narrowing from double to float

* fix(C4457): declaration hiding function parameter

* fix(C4456): shadowing declaration

* fix(C4996): remove deprecations

* chore: add changelog entry

* fix: Remove more unused variables

* fix: removed unused lambda captures

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-16 11:24:28 +00:00
Mm2PL fd4cac2c2c Add a new completion API for experimental plugins feature. (#5000)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-10 13:41:05 +00:00
Mm2PL c3d3903b6f feat: add --safe-mode command line option (#4985)
This ensures the settings button isn't hidden, and disables plugins from being loaded to make sure the user can always recover from messing things up
2023-12-05 17:37:42 +00:00
pajlada 0fd4e8ffd6 fix: typo in debug log for hotkeys (#4997) 2023-12-02 12:35:55 +00:00
pajlada e327ed4166 Update magic_enum from v0.9.3 to v0.9.5 (#4992)
* Fix include path for magic enum
* Update .clang-format to ensure magic enum is caught as a third party library
2023-12-01 15:03:04 +01:00
Mm2PL 6d02bb7304 Make emote completion a lot smarter (#4987) 2023-11-28 10:06:35 +00:00
pajlada a240797b68 Add support for sound backends & some miniaudio changes (#4978)
Miniaudio now runs everything in a separate audio thread - this uses boost::asio's io_context.
Our miniaudio implementation is now also much simplified - it does not use its own resource manager or device. This might end up being stupid if sounds don't work after changing output device or locking or w/e
I've made the sound controller into an interface, meaning we can support multiple sound backends in Chatterino. I've added a Null sound backend that disables all sound. A QMediaPlayer or QSoundEffect or Qt backend could be added.
Miniaudio might idle & disable the device now too, not sure

I've added some unrelated changes in the form of a new setting type, and a new setting page helper function for it, which will hopefully make adding new enum settings easier in the future.
This setting stores its value as a string instead of an int, and uses magic_enum to convert between that string value and its enum value.
2023-11-26 22:06:12 +01:00
pajlada 5b741a8eb6 refactor: Remove Emoji's EmojiMap with a vector (#4980) 2023-11-26 18:17:58 +00:00
nerix 6faf63c5c4 refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
pajlada 244efaa0a9 fix: /banid and /ban id: performing duplicate bans (#4957) 2023-11-10 18:46:28 +00:00
pajlada 423829be43 feat: /unban and /untimeout by id (#4956) 2023-11-10 19:18:20 +01:00
pajlada fcc5f4b3df feat: Allow id: prefix in /ban and /timeout (#4945)
ban example: `/ban id:70948394`, equivalent to `/banid 70948394`
timeout example: `/timeout id:70948394 10 xd`
2023-11-08 21:42:06 +01:00
pajlada f89642ec66 refactor: Move all commands to their own files (#4946) 2023-11-08 18:57:09 +01:00
Mm2PL f943f70634 Add support for opening usercards by ID (#4934)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-11-06 20:42:24 +01:00
iProdigy 9dd83b040b feat: /reply command now replies to the latest message of the user (#4919)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-05 16:30:15 +01:00
pajlada 1d6c9ed279 feat: forward logging from miniaudio (#4836)
These logs are posted to the `chatterino.sound` category
miniaudio debug -> debug
miniaudio info -> debug
miniaudio warning -> warning
miniaudio error -> warning
2023-11-05 10:51:57 +00:00
pajlada e4c46355be refactor: move ban/banid/timeout to their own file (#4938) 2023-11-04 16:26:58 +00:00
pajlada 56346874e1 ci: Use clang-format 16 (#4929) 2023-10-31 17:24:47 +00:00
pajlada 25c776cfff refactor: FilterParser (#4925)
* Make explainIllType anonymous/static
* Comment constructor
2023-10-29 20:14:49 +00:00
pajlada 5c0219c245 refactor: Use override instead of virtual where possible (#4917) 2023-10-25 18:13:48 +02:00
pajlada ab3b2d8515 Add some more filter tests (#4897)
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
2023-10-14 10:41:10 +02:00
pajlada 9f23c8562a Test filters context map & message builder (#4886) 2023-10-13 15:41:23 +00:00
Daniel Sage b85d666b32 fix: Remove tab completion caching of source (#4893) 2023-10-13 09:43:16 +00:00
pajlada fec45889a8 Replace boost::optional with std::optional (#4877) 2023-10-08 16:50:48 +00:00
Daniel Sage 4bb196c644 fix: Fix username tab completion without @ (#4853) 2023-10-01 09:39:18 +00:00
GongBingWong ad8f960a8e Fix to interpret logger channel names as lowercase (#4848)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-01 05:56:03 +00:00
Daniel Sage 4d8b62364d fix: Commands now completable when not starting with / (#4846)
* Add commands to completable inputs when no prefix
2023-09-30 11:06:16 +00:00
nerix 783c7530f3 Allow any window to be bounds-checked (#4802)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 13:32:43 +00:00
Daniel Sage 37009e8e6b Consolidate input completion code in preparation for advanced completion strategies (#4639)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 12:17:17 +00:00
pajlada 8fe3af3522 Fix signal connection nodiscard warnings (#4818) 2023-09-16 11:52:51 +00:00
pajlada d4558b5fe5 Fix all warnings from the cppcoreguidelines-pro-type-member-init clang-tidy check (#4426) 2023-09-09 11:11:19 +00:00
pajlada ba440e0ccb Fixed /shoutout command not working with usernames starting with @'s (e.g. /shoutout @forsen) (#4800) 2023-08-28 17:17:03 +00:00
nerix af4233850d Remove offset logic from BaseWindow::moveTo (#4798)
It's now up to each window to offset its coordinates themselves (which is good 👍 )
2023-08-28 16:38:41 +00:00
pajlada 7cb04bf58b Remove BaseSettings & merge ConcurrentSettings (#4775) 2023-08-28 17:51:28 +02:00
Felanbird 381d5c4276 Change Elevated Messages to Hype Chats (#4766) 2023-08-14 17:19:20 +00:00
Mm2PL ec0d77643f Remove USEWEBENGINE (#4757)
This code has been sitting behind a define since 2018 (de3a490). I'm not opposed to this code coming back however in this state, it feels better to remove it.
2023-08-07 18:24:17 +00:00
Mm2PL 59160c5d04 Minor: Add missing hotkey Action for Open Player in Browser. (#4756) 2023-08-07 13:41:32 +00:00
pajlada 9e2eb0dd29 Fix tooltip & popup positioning (#4740)
* Fix tooltip & popup positioning

This tries to ensure the tooltip & popups are created on the correct
monitor

* Add changelog entry

* Clean up debug output

* Use the full frame geometry to figure out screen bound movements

* Remove the now-unused `setStayInScreenRect` function

* Change the UserInfoPopup offset to be based on its width & height
instead

* Remove more debug output
2023-08-05 11:22:37 +00:00
SputNikPlop 7079729591 fix: change viewer list to chatter list (#4732)
* fix: change viewer list to chatter list

* fix: enter changelog entry
2023-07-29 10:47:24 +00:00
nerix 9f8a1d8823 Add command to automatically reload your theme (#4718) 2023-07-23 12:13:21 +00:00
nerix fca57696bb Increase max number of blocked users loaded from 100 to 1,000 (#4721)
Also includes a little refactor of how the requests are made & how the blocked users are stored
2023-07-23 11:26:12 +00:00