Commit graph

710 commits

Author SHA1 Message Date
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
Mm2PL
01de4d4b5d
Add support for Nicknames on IRC (#4170)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-11-20 16:28:29 +00:00
nerix
9fba0bd4ab
fix: /ban messages for self/mod bans (#4164) 2022-11-19 13:34:07 +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
nerix
39f7d8ac4c
feat: Live Emote Updates for 7TV (#4090)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-13 12:07:41 +01:00
pajlada
c714f15ce9
Add debug output to channel point reward callbacks (#4142) 2022-11-11 23:49:44 +00:00
xel86
46cdb89498
Allow Commercial API endpoint to handle commercial lengths (#4141) 2022-11-12 00:17:50 +01: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
pajlada
aac9ea53d0
Harden emote parsing (#3885) 2022-11-05 10:04:35 +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
pajlada
4196bba4ad
Fix recursive fetchChatters call (#4097) 2022-11-02 09:31:28 +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
mohad12211
d3eed626ec
Add missing Text tag to reply message text (#4092) 2022-10-30 20:09:40 +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
Felanbird
b27d6334f3
Update IRC whisper error (#4086) 2022-10-28 23:01:21 +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
nerix
3e41b84ed7
feat: Add 7TV Emotes and Badges (#4002)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-16 11:22:17 +00:00
pajlada
3e020b4891
Fix rare reply mention crash (#4055)
* Fix potential out-of-range access of at when stripping reply mention if
the message contained nothing other than the username

* Update changelog entry
2022-10-12 11:59:52 +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
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
nerix
874ef64216
Migrate /ban and /timeout to Helix API (#4049) 2022-10-06 23:52:25 +02:00
Felanbird
41581031b9
Add missing 403 handling for /unban (#4050) 2022-10-06 18:30:40 +00:00
nerix
25bccc90b4
Migrate Remaining Chat Settings Commands to Helix API (#4040) 2022-10-03 19:42:02 +02: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
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
Aiden
adbc4690af
Migrate /unvip to Helix API (#4025)
Co-authored-by: iProdigy <iProdigy@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-01 14:00:45 +00:00
Felanbird
0ab59d44f0
Add Basic Elevated Message support (#4016) 2022-09-30 23:23:31 +00:00
Aiden
ced1525e75
Migrate /vip to Helix API (#4010)
Fixes #3983 

Co-authored-by: iProdigy <iProdigy@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-25 09:45:46 +00:00
iProdigy
abb32f700c
chore: fix debug text on non-204 add mod success (#4011) 2022-09-25 06:16:39 +00:00
Mm2PL
8bda8a8b26
Migrate /announce command to Helix API. (#4003)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-24 17:50:02 +02:00
Aiden
1c97b3d094
Migrate /unmod command to Helix API (#4001)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-24 10:49:13 +00:00
Aiden
28de3e637d
Migrate /mod command to Helix API (#4000)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-23 16:12:34 +00:00
Aiden
838e156a04
Migrate /delete command to Helix API (#3999) 2022-09-20 00:26:48 +02:00
Aiden
6e7b4d8ec7
Migrate /clear command to Helix API (#3994)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-09-18 11:19:22 +00:00
pajlada
4f1976b1be
Migrate /color command to Helix API (#3988) 2022-09-16 21:15:28 +00:00
nerix
be72d73c3d
feat: add Go to message action in various places (#3953)
* feat: add `Go to message` action in search popup

* chore: add changelog entry

* fix: only scroll if the scrollbar is shown

* fix: go to message when view isn't focused

* feat: animate highlighted message

* fix: missing includes

* fix: order of initialization

* fix: add `ChannelView::mayContainMessage` to filter messages

* feat: add `Go to message` action in `/mentions`

* fix: ignore any mentions channel when searching for split

* feat: add `Go to message` action in reply-threads

* fix: remove redundant `source` parameter

* feat: add `Go to message` action in user-cards

* feat: add link to deleted message

* fix: set current time to 0 when starting animation

* chore: update changelog

* fix: add default case (unreachable)

* chore: removed unused variable

* fix: search in mentions

* fix: always attempt to focus split

* fix: rename `Link::MessageId` to `Link::JumpToMessage`

* fix: rename `selectAndScrollToMessage` to `scrollToMessage`

* fix: rename internal `scrollToMessage` to `scrollToMessageLayout`

* fix: deleted message link in search popup

* chore: reword explanation

* fix: use for-loop instead of `std::find_if`

* refactor: define highlight colors in `BaseTheme`

* core: replace `iff` with `if`

* fix: only return if the message found

* Reword/phrase/dot changelog entries

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-11 16:37:13 +02:00
Daniel Sage
8ec032fc84
Periodically free memory from unused images (#3915)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-04 11:23:14 +00:00
pajlada
46efa5df3d
Treat reorder warnings as errors (#3944) 2022-09-03 18:12:44 +02:00
pajlada
a9fc9f949f
Remove unused mutex from Emotes (#3943)
The mutex was initially used to limit access to the twitchEmotesCache_ member
but it's no longer necessary since it's been made a UniqueAccess type
2022-09-03 11:01:56 +00:00
nerix
c1af2c3faa
feat: add settings to toggle BTTV/FFZ global/channel emotes (#3935)
* feat: add settings to disable BTTV/FFZ global/channel emotes

* docs: add changelog entry

* fix: capitalize `BTTV` and `FFZ`

* fix: rename and move settings
2022-08-28 12:20:47 +02:00
Daniel Sage
46f43f3ce8
Automatically load recent messages on reconnect (#3878)
* Add working reconnect recent messages

* Rename method to messagesUpdated

* Use audo declarations

* Add docs to new LimitedQueue methods

* Add more documentation, try atomic loading flag

* Update CHANGELOG.md

* Remove unused include

* Rename 'reconnected' signal to 'connected'

* Reserve before filtering on arbitrary update

* Extract recent messages fetching to own class

* Use std::atomic_flag instead of std::atomic_bool

* Add PostToThread include

* Add chatterino.recentmessages logging

* Remove unneeded parameters, lambda move capture

* Remove TwitchChannel::buildRecentMessages

* Add documentation, use more clear method name

* Reword changelog entry

I think it sounds better like this :)

* Rework how filling in missing messages is handled

This should hopefully prevent issues with filtered channels with old messages
that no longer exist in the underlying channel

* Check existing messages when looking for reply

* Clean up string distribution in file

* Try to improve documentation

* Use std::function for RecentMessagesApi

* Only trigger filledInMessages if we inserted

* Remove old unused lines

* Use make_shared<MessageLayout> instead of new MessageLayout

* Alphabetize QLogging categories

* Reorder CHANGELOG.md
2022-08-06 18:18:34 +02:00
Daniel Sage
20c974fdab
Added support for Twitch's Chat Replies (#3722)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-31 10:45:25 +00:00
Jaxkey
f49e8b4bc8
Show all global FFZ badges of a user (#3818)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-27 18:36:58 +00:00
Kasia
f3f340335f
Make generic version of batcher function (#3822) 2022-06-17 20:52:20 +02:00
matt
d29243a2a5
Removed total views from the usercard (#3792) 2022-06-05 20:51:18 +00:00
pajlada
7ccf60111d
Overhaul highlight system (#3399)
Checks have been moved into a Controller allowing for easier tests.
2022-06-05 15:40:57 +00:00
Kasia
74ec310228
Fixed channels not being set as offline (#3767) 2022-05-28 18:10:10 +00:00
kornes
efcfb19187
Add safe checks around use of QImageReader (#3736)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-28 13:48:31 +02:00
Kasia
7d0023cf73
Corrected the way we parse comma-separated "list tags" in PRIVMSGs (#3771)
tl;dr: we now split by slash only its first occurrence instead of every occurrence.
2022-05-28 09:55:48 +00:00
Sidd
21934b6aaf
perf: use constant time live channel lookup (#3762) 2022-05-22 19:21:02 +02:00
xel86
dc34c16dbe
Batch checking live status for all channels after startup. (#3757) 2022-05-22 15:51:23 +00:00
badoge
bd3d2ed82a
Added /requests command. Usage: /requests [channel]. (#3746)
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>
2022-05-22 11:53:45 +00:00
pajlada
6bb96f128b
Make Helix an interface (#3756) 2022-05-22 10:11:33 +00:00
Kasia
137269e91b
Fix QString::SkipEmptyParts for real this time (#3747)
Follow-up to #3726
2022-05-17 09:33:27 +00:00
pajlada
3119a9bab3
Store serverReceivedTime in messages (#3735)
Co-authored-by: James Upjohn <jammehcow@jammehcow.co.nz>
2022-05-15 06:08:28 +00:00
Kasia
0c6358a2af
Add missing QDebug header (#3725)
* Fix apparent missing header

* I had format on save turned off
2022-05-13 10:45:42 +00:00
Sidd
94f067ce62
fix: unlisten to automod on user change (#3718)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-05-08 10:56:40 +00:00
Sidd
fd44f30c7d
fix: disable duplicate automod caught message handler (#3717) 2022-05-07 22:05:13 +02:00
nerix
f97780d84e
Improve Twitch PubSub connection reliability (#3643)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-05-07 15:22:39 +00:00
badoge
846ffbb422
Sorted usernames in /vips message to be case-insensitive (#3696) 2022-04-30 12:02:40 +00:00
Sidd
c399d4dbe9
refactor(TwitchChannel): remove getGameById call (#3662)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-09 12:27:04 +00:00
Sidd
870aa74427
Use login name for NotificationController lookup (#3648)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-06 21:10:22 +00:00
James Upjohn
f76306c6fa
fix: re-add missing Twitch emote reload message (#3645)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-04-05 10:01:18 +02:00
Mm2PL
28fa6b8f5c
Add tab-completion for the /announce Twitch command (#3642)
https://blog.twitch.tv/en/2022/03/31/raise-your-swords-for-mod-appreciation-day/
2022-04-01 22:14:42 +00:00
Mm2PL
832e34186b
Fix announcement rendering (#3639)
* Fix announcement rendering

* Changelog

* Add test message to Window.cpp
2022-03-31 22:24:19 +00:00
James Upjohn
96e2d1f971
Fix empty game update not updating header (#3609)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-03-19 18:58:19 +00:00
James Upjohn
67c10fafc7
chore: replace usages of obsolete twitch struct with backing field (#3614)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-19 11:02:29 +00:00
LosFarmosCTL
414313726e
Update PubSub client to use TLS v1.2 (#3599) 2022-03-12 11:50:41 +00:00
Paweł
df70ca59e3
Purged kraken (#3578)
* Purged kraken code

* Remove kraken documentation

* Update Helix documentation

* Ran prettier

* Removed kraken files from qmake build file

* Remove now unnecessary .finally() callback
2022-02-28 14:59:10 +00:00
Mm2PL
820099821a
Implement workaround for combined emoji (#3469) 2022-01-11 00:18:02 +00:00
Paweł
1682f0fb36
Refactor Tab completion for Twitch commands (#3144)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-12-26 14:21:52 +01:00
pajlada
aa1c16d90d
Make mods, vips, joined/parted messages searchable (#3426) 2021-12-25 17:35:55 +00:00
pajlada
51ece94f58
Update Settings and Signals version (#3398)
Co-authored-by: zneix <zneix@zneix.eu>
2021-12-19 14:57:56 +00:00
mmb L
179527611e Rename local variable and remove unused local variable in IrcMessageBuild.cpp 2021-11-28 13:02:07 +01:00
mmb L
ec966a1791 Remove local variables that are not referenced 2021-11-28 13:02:07 +01:00
Mm2PL
b94e21a600
Make join and part messages have user links (#3358)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-11-20 13:53:05 +00:00
Mm2PL
56f2207d22
Show picked outcome in prediction badges. (#3357)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-11-20 11:52:27 +00:00
Mm2PL
a68980878e
Make /delete errors a bit more verbose (#3350)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-11-13 12:34:04 +00:00
Mm2PL
6b3a420e42
Fixed the first link being broken in /mods and /vips (#3349)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-11-13 11:11:18 +00:00
Ryan
b4be7a4b1f
Fix underlying text from disabled emotes not being colorized after using /me (#3333) 2021-10-31 11:37:06 +01:00
Infinitay
b4b745024c
Clean up chat messages of special line characters prior to sending (#3312)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-10-30 12:49:41 +00:00
Mm2PL
5f7caebce0
Parse usernames out of /mods and /vips messages (#3187)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-10-24 13:28:43 +00:00
Felanbird
be3609a927
Capitalize mentions of Twitch, Chatterino, and IRC in comments and text/settings (#3274) 2021-10-17 15:06:58 +02:00
gempir
0ba7c0f3c5
Add highlights for first messages (#3267)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-10-02 12:17:24 +00:00
apa420
e499486418
Added regex option to Nicknames (#3146)
Co-authored-by: Mm2PL <miau@mail.kotmisia.pl>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-08-22 13:30:17 +02:00
pajlada
fe8aa33980
Update Usage messages to conform to new Usage message contributor guidelines (#3180) 2021-08-21 12:41:06 +00:00
James Upjohn
4b251c64b6
Allow resub messages to show in /mentions tab (#3148)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-08-15 10:39:58 +00:00
Paweł
9a1e405563
Fix /me not going through upon sending an identical message (#3166) 2021-08-15 11:52:32 +02:00
Marko
113a7795f4
Hide similar messages by any user (#2716)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-08-14 14:28:08 +02:00
fourtf
d5ecba3d30
Rewrite logic for when to show moderation buttons next to messages (#2800)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-08-14 11:06:58 +00:00
James Upjohn
6151cd5b05
Show system message when reloading subscriber emotes (#3135)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-08-08 10:59:28 +00:00
pajlada
54f6e4f9e9
Remove twitchemotes.com-related functionality (#3136)
Co-authored-by: Paweł <zneix@zneix.eu>
2021-08-07 11:13:05 +00:00
Paweł
cd7758a28e
Ensure we don't attempt to index an empty array (#3122) 2021-08-07 09:01:22 +00:00
Paweł
0c5abb8149
Deprecated /(un)follow commands and respective usercard action (#3078)
/(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>
2021-08-04 20:41:27 +00:00
pajlada
28dcdb238b
Remove JOINs from write connection (#3112)
Co-authored-by: zneix <zneix@zneix.eu>
2021-08-03 15:55:04 +00:00