Commit graph

631 commits

Author SHA1 Message Date
Paweł 1f5b62e6e5
Implemented bit emotes (#2550)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-03-21 15:42:45 +01:00
Paweł af4e3f5062
Refactored loading emotes and emotesets (#2539)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-03-21 15:19:49 +01:00
Auro 6ef515a0e2
Added system message if no bttv emotes found instead of "unknown error" (#2542)
Co-authored-by: Paweł <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-03-21 14:27:28 +01:00
Paweł a893cdaebe
Ensure twitch emote names are escaped (#2543) 2021-03-20 23:49:42 +01:00
Paweł ce947a89d7
Fixed deprecated method QTime::elapsed (#2504)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-03-13 17:54:34 +01:00
James Upjohn d94d9e74dd
Implement missing cheer emote tooltip (#2503) 2021-03-13 14:16:32 +01:00
Paweł efde73e684
Fixed remaining timeout message (#2502) 2021-03-07 18:03:53 +01:00
Paweł b2aa370015
Fixed emote pasting bug with multiple spaces (#2490) 2021-03-04 01:13:36 +01:00
pajlada e015013773
Add lint github action (#2473) 2021-02-21 14:45:42 +01:00
Paweł 7d9f4c2b0c
Migrated block, unblock and get user block list methods to Helix (#2370)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-02-14 14:01:13 +01:00
pajlada 6b0ce396d6
Update to Emoji v13 (2020) (#1555) 2021-02-13 19:17:22 +01:00
M4tthewDE c2782666a6
Added formatting for remaining timeout duration (#2398) 2021-01-31 13:55:44 +01:00
Paweł 278a00a700
Implement /marker command (#2360)
This command works the same as it does on Twitch web chat - it creates a streamer marker at the current timestamp with an optional description
2021-01-30 15:39:01 +01:00
Paweł 857705668e
Migrated getChannel to Helix (#2381)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-01-21 13:48:48 +01:00
Paweł 766700adc8
Removed empty liveStatusChanged connect signal (#2374) 2021-01-18 13:09:14 +01:00
Paweł e48937e0aa
Fixed some spelling mistakes across files (#2367)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-01-17 20:19:10 +01:00
Paweł cfcac99ae6
Added clip creation support 🎬 (#2271)
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>
2021-01-17 14:47:34 +01:00
Paweł b587173e18
Added /chatters command (#2344) 2021-01-16 13:58:11 +01:00
Paweł fca62f7c1d
Added automatic streamer mode detection to Linux (#2316) 2021-01-09 22:14:25 +01:00
pajlada b3e01a40d7
Try to improve Twitch IRC network stability (#2347) 2021-01-09 18:05:02 +01:00
pajlada 0e66b17ff0
Add Network tests (#2304)
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
2020-12-26 12:42:39 +01:00
Paweł 2f5df3db4a
Migrated follow and unfollow methods to Helix API (#2306) 2020-12-22 09:55:58 +01:00
Rasmus Karlsson a539b821e2 Fix another "use twitch-channel when it's null" error 2020-12-20 17:28:04 +01:00
fanway 38966e2b19
Add option for truecase username autocompletion (#1883)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-12-20 16:43:35 +01:00
Wolf Clément b8104863a5
Fix crash when receiving whisper (#2298)
PR #2284 introduced this bug: whispers aren't linked to a twitch channel
but we're storing user colors in a twitch channel. So, dereferencing
a nullptr. Not good.
2020-12-20 09:38:34 +01:00
Wolf Clément fea52faa66
Color mentions to match the mentioned users color (#2284)
You can disable this by unchecking "Color @usernames" under `Settings -> General -> Advanced (misc.)`

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-12-19 14:42:20 +01:00
Paweł 155b40985b
Made emote tooltips use author's displayName consistently (#2267) 2020-12-12 16:15:49 +01:00
Mm2PL eb8eecdfed
Improve the "You are banned" message (#2266)
Added reconnect link to the "You are banned" message
2020-12-12 14:19:51 +01:00
Paweł cfa9e5903e
Migrated Kraken's getUser to Helix (#2260) 2020-12-06 19:41:52 +01:00
fanway bf4c9cebb1
Use display/localized names in tab and split titles (#2189) 2020-12-06 14:07:33 +01:00
pajlada 4436109a2f
Add setting to limit number of historical messages to load on connect (#2252) 2020-12-06 13:04:49 +01:00
Paweł 8b2c3c7386
Fixed thumbnails merging with link info without thumbnails (#2244) 2020-12-05 15:03:13 +01:00
pajlada 1a4d4dca79
Fix freeze in Ignore & Replace if replacement followed by emote (#2231)
shiftIndicesAfter now also shifts the item end position along with the item start position
2020-11-28 15:03:36 +01:00
Paweł 05aab86845
Added links to twitchemotes.com to Twitch emotes' context menus (#2214) 2020-11-22 15:54:58 +01:00
Paweł b79d5fa6f0
Fixed "raw mentions" not being clickable with special characters appended to them (#2212) 2020-11-22 14:02:55 +01:00
Steve Wills df722a72c1
Switch to QT Category logging (#2206)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-11-21 16:20:10 +01:00
Daniel b572c187a4
Fix FFZ emote assertion crash (#2192)
* Fix crash on null urls from FFZ API

* Update CHANGELOG.md

* Turns out there's an actual method for this
2020-11-17 10:27:14 +01:00
Leon Richardt 0eed45ae67
Chore: Proper Lambda Formatting (#2167)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-08 12:02:19 +01:00
Paweł fbd5df53d8
Ensure Twitch username in UserCard uses display name from API (#2160) 2020-11-08 11:39:10 +01:00
fanway f36c0fee97
Fix runIgnoreReplaces fall into infinity loop (#2151)
* Fix `runIgnoreReplaces` fall into infinity loop

The regex pattern was not checked for emptiness, which led to an endless
loop

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-04 23:11:17 +01:00
Mm2PL 3ee08b9ffd
Add support FrankerFaceZ badges. (#2101)
On startup, we poll https://api.frankerfacez.com/v1/badges/ids and store the mappings of user IDs to badges for the remainder of the applications lifetime.
2020-10-25 10:36:00 +01:00
Leon Richardt ec94869480
Allow highlights to be excluded from /mentions (#2036) 2020-10-24 14:33:15 +02:00
pajlada f191de2514
Add CI workflow to check line endings of all source files (#2082)
In addition, all found errors (formatting & line ending) have been fixed in this PR.
2020-10-18 15:54:48 +02:00
dnsge 4199a01b96 Advanced channel filters (#1748)
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".
2020-10-18 15:18:20 +02:00
Paweł 2232c6d925
Changed Streamer Mode settings (#2001)
There's now a new (yet another, sigh) section in Settings -> General, which lets you set streamer mode to 'enable/disable/detect obs' and there are also separate settings for each of the things that streamer mode covers. I just have to add ping sounds and PR is ready to be merged :)

* Show "Streamer Mode" image as link thumbnails if applicable

* Moved hideViewerCountAndDuration to streamerMode settings

Set it to false by default (just how it used to be under /misc settings, also reworked live tooltip to be a bit prettier and say "<Streamer Mode>" in gray instead of "Live with <hidden> for <hidden> viewers"
2020-10-11 13:52:14 +02:00
Dave 84613187e1
Fixed missing timestamps on point redemption messages (#2043)
* Added timestamps to point redemption messages

* updated change log

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-09 17:26:45 +02:00
Paweł 776ce8bdbc
Added subage and followage to usercard (#2023)
* Added subage and followage information to usercard

We are using Leppunen's API here to determine user's subage to the current channel and since that API call also returns followage information I decided to utilize that and save ourselves an extra Helix API call.
I also added new files specifying new class and methods for Ivr API, which can be very easily expanded with new methods in the future if we ever have to do that.
When I was coding I also saw couple unnecessary nitpicks which I fixed :)

* Added changelog entry

* remove empty lambda

* Update UserInfoPopup.cpp

* xd

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-04 18:32:52 +02:00
Leon Richardt aff59495df
Improve "Login expired!" message (#2029)
* feat: improve "Login expired!" message

Since this message occurs when the OAuth token becomes invalid, users
have to re-add their account in order to continue using the application.
The previous message did not make this clear enough, often leading to
confusion and questions by users.

This commit changes the system message to more clear about what the user
has to do, and adds a link that opens the "Accounts" page in the
preferences.

* Update changelog

* Update ChannelView.cpp

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-04 17:36:38 +02:00
Vilgot Fredenberg de04ff82a7
Clean up compiler warnings (#2027)
Fix the following compiler warning
../src/common/NetworkResult.hpp: In constructor ‘chatterino::NetworkResult::NetworkResult(const QByteArray&, int)’:
../src/common/NetworkResult.hpp:28:16: warning: ‘chatterino::NetworkResult::data_’ will be initialized after [-Wreorder]
   28 |     QByteArray data_;
      |                ^~~~~
../src/common/NetworkResult.hpp:27:9: warning:   ‘int chatterino::NetworkResult::status_’ [-Wreorder]
   27 |     int status_;
      |         ^~~~~~~
../src/common/NetworkResult.cpp:9:1: warning:   when initialized here [-Wreorder]
    9 | NetworkResult::NetworkResult(const QByteArray &data, int status)

* Clang compiler warnings

Fixes every instance of the following error:

In file included from ../src/widgets/settingspages/CommandPage.cpp:12:
In file included from ../src/controllers/commands/CommandModel.hpp:5:
../src/common/SignalVectorModel.hpp:242:10: warning: 'moveRows' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
    bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count,
         ^
../src/controllers/commands/CommandModel.hpp:12:29: note: in instantiation of template class 'chatterino::SignalVectorModel<chatterino::Command>' requested here
class CommandModel : public SignalVectorModel<Command>
2020-10-04 12:47:23 +02:00
Daniel 58a6983796
Fix timestamps on some messages loaded from the recent-messages service on startup (#2020) 2020-10-03 13:37:07 +02:00
pajlada 20e4d6b3d2
Update emote parsing (#1714)
Fixes #1707
2020-09-26 14:21:46 +02:00
Auro cc5eb7000f
Fixed the english of a system message (#1878)
* Update TwitchIrcServer.cpp

* made english better

changed "sending messages too fast" to "You are sending messages too fast"

* changed english

* Changed English

Changed the English in 2 system messages

* Update CHANGELOG.md

* Changed too fast to too quickly

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-26 13:06:37 +02:00
fourtf ed87d6e2fa fixed recent messages being parsed concurrently 2020-09-25 22:20:15 +02:00
pajlada 0cbddf7e9b
Fix/be respectful of special characters like exclamation marks in highlight phrases since they are also word boundaries (#1890)
* 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
2020-08-22 15:37:03 +02:00
fourtf 83b6fad8e6 fixed some concurrency issues 2020-08-22 11:45:18 +02:00
Jonas Schmitt 58725efbd5
Fix styling of channel point reward message text. (#1845)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-08-09 11:50:53 +02:00
Jonas Schmitt 11b8948290
Add support for non-highlight channel point rewards (#1809) 2020-08-08 15:37:22 +02:00
Daniel ba06b10135
Open usercard on mention click (#1674) 2020-07-18 16:03:51 +02:00
pajlada ffdf5a144c
Handle conversion of historical CLEARCHAT messages to NOTICE messages in Chatterino instead of relying on the Recent Messages API to handle it for us (#1804)
This has historically been done in the Recent Messages API, but this functionality is being moved to Chatterino instead

* Remove `clearchatToNotice=true` query parameter to the Recent Messages API
2020-07-18 14:12:11 +02:00
Paweł b66c2478a0
Added higher tier information to sub badge tooltip (#1759) 2020-07-05 14:08:28 +02:00
pajlada e4af009fda
[irc] Partially fix IRC colors (#1594)
Doesn't fix #1379 but it is a big step forward.

Needs some "real life" testing, but should be good.
2020-07-04 15:15:59 +02:00
Daniel de2108b8c5
Fix highlighted whisper crash (#1756) (#1757) 2020-06-27 13:20:21 +02:00
Roger Chavez 1eeb09a78e
Display authors name on hover for supported emotes (FFZ only for now) (#1721)
Co-authored-by: Paweł <44851575+zneix@users.noreply.github.com>
2020-06-13 14:15:22 +02:00
alazymeme f3f8b2d024
Fix popout player url (#1730)
* Update TwitchChannel.cpp

* Reformatting forsenY

* fixed other things

* xd

* Update TwitchChannel.cpp
2020-06-12 19:44:05 +02:00
thekalio 56d09ac198
Show visual feedback when BTTV and FFZ emotes are loaded (#1671)
Upon joining a channel or pressing F5, BTTV and FFZ emotes are
(re)loaded. This change adds visual feedback of the network requests and
their outcome, in the form of a system message in the associated
channel's chat window. 

Non-error messages are suppressed when joining a
channel (which automatically loads emotes).
2020-05-16 12:43:44 +02:00
Daniel Pasch 8532c6d3bc
Add thumbnails to link tooltips if available (#1664)
This feature is off by default and can be enabled in the settings with the "Show link thumbnail" setting. This feature also requires the "Show link info when hovering" setting to be enabled.

thumbnails support is only there for direct image links, twitch clips, and youtube links. can be expanded in the future in the /api repo

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-05-10 12:11:10 +02:00
pajlada a08754b409
Remove more debug output (#1677) 2020-05-09 13:13:30 +02:00
pajlada ef9c631c65
Only listen to new pubsub "moderator added" syntax (#1659) 2020-05-03 12:21:00 +02:00
fourtf 6052846bc3 added checks to mitigate floating point crashes 2020-04-19 21:05:40 +02:00
fourtf 097f4ccb3a refined highlight and added bits highlights 2020-04-15 23:15:45 +02:00
pajlada 6f926e7d77
Get better timeout messages for self (#1629)
* Don't require mod rights to listen to moderation actions topic

* Format timeout messages directed at you differently

e.g. "You were banned" or "You were timed out for 4h20m", also including
reason if specified.
2020-04-13 12:31:06 +02:00
apa420 3a05700744
Changed text to moderator (#1619) 2020-04-05 12:34:16 +02:00
Mm2PL d1d17d4e4b
Add new zero-width emotes from BTTV (#1613)
New zero-width emotes are cvMask and cvHazmat

Fixes #1612
2020-03-27 21:23:32 +01:00
Leon Richardt 95c909b337
Better Highlights: Fix Wrong Color for Migrated Phrases (#1568)
* 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>
2020-03-22 13:14:07 +01:00
pajlada 15cf8bfcfa
Don't set game to game id, always wait for the game name to be resolved (#1609)
Fixes #1606
2020-03-22 11:22:36 +01:00
Leon Richardt 17aa3f71cd
Remove Debug Output In Many Different Places (#1607)
* Application.cpp: Remove whisper debug output

* TwitchAccount.cpp: Remove AutoMod debug output

* BaseWindow.cpp: Remove mouse tracking debug output

* RunGui.cpp: Remove debug output for cleared cache items

* Notebook.cpp: Remove debug output for selected widgets

* LimitedQueue.hpp: Remove commented debug output

* IrcMessageHandler.cpp: Remove debug output when receiving whispers

* UserInfoPopup.cpp: Remove user name debug output

* ChannelView.cpp: Remove debug output when clicking a message

* Image.cpp: Remove commented debug output

* AttachedWindow.cpp: Remove commented debug output

* SplitOverlay.cpp: Remove commented debug output

* TwitchMessageBuilder.cpp: Remove debug output for highlights

* TwitchMessageBuilder.cpp: Remove debug output for blocked messages

* PubsubClient.cpp: Remove debug output on PubSub::listen

* PubsubClient.cpp: Remove debug output on PubSub::tryListen

* IncognitoBrowser.cpp: Remove debug output of browser command

* NativeMessaging.cpp: Remove debug output of message
2020-03-19 18:06:21 +01:00
pajlada 9a8b85e338
Twitch API: v5 to Helix migration (#1560)
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.
2020-03-14 12:13:57 +01:00
pajlada 20612a1381
Fix repeated signal connects on reconnect in irc server (#1576) 2020-03-01 06:05:08 -05:00
fourtf ba5d842767 removed MutedChannelController 2020-02-28 19:04:25 +01:00
fourtf e537277fa8 did some more things and stuff 2020-02-23 23:07:28 +01:00
fourtf 5ad427bd61 moved some Settings from Application to Settings 2020-02-23 22:15:13 +01:00
fourtf f8a9850151 absorbed HighlightController into Application 2020-02-23 21:18:40 +01:00
fourtf d0a81f3fe7 refactored TaggedUsers and Ping 2020-02-23 20:34:00 +01:00
fourtf 89389608e9 removed compat class for SignalVector 2020-02-23 19:52:10 +01:00
fourtf 2ebe07bace removed compat functions in SignalVector 2020-02-23 19:44:13 +01:00
fourtf e2c493f369 removed compat aliases for SignalVector 2020-02-23 19:37:02 +01:00
fourtf 843e2ad994 refactored HighlightController 2020-02-23 19:31:43 +01:00
fourtf e1838154ff refactored SignalVector 2020-02-23 17:11:15 +01:00
pajlada 2b5c6ffe33
Remove chatroom code (#1561)
People who had chatrooms still open should notice no difference at all, since it will just try to join a channel with the chatroom name.

Documentation for the closing/deprecation of twitch chat rooms:
    https://discuss.dev.twitch.tv/t/rooms-are-closing-how-it-affects-the-api-and-irc/22996
    https://dev.twitch.tv/docs/change-log (see 2020-01-10 entry)
2020-02-22 06:05:36 -05:00
Rasmus Karlsson b5764c6a1f Remove stupid assert in PubSubClient
Fixes #1550
2020-02-15 14:49:22 +01:00
Leon Richardt b8953157cc
Better Highlights: Rework highlight parsing order (#1524)
This commit is in response to #1523.

Whispers are now only added to the `/mentions` tab if they also match a
user name or phrase highlight. On a related note, the `highlightVisual_`
member has been removed as it is no longer necessary.
2020-02-02 08:33:25 -05:00
hemirt 1fd64be7f5
Makes it possible to hide one man spam (#1496) 2020-02-02 08:31:37 -05:00
pajlada a078d116d2
Fix ping payload not breaking portable mode (#1516)
This payload was initialized before main was called, so before the
QApplication was initialized. This broke our portable checker

Fixes #1481
2020-01-25 14:33:38 +01:00
apa420 4b1202437b Sort emotes alphabetically in emote picker (#1499) 2020-01-25 13:05:59 +01:00
Mm2PL 410de82261 Make a command that shows the Chatterino user card (/usercard) (#1375)
* Make UserInfoPopup be able to show that fetching the information failed.
2020-01-25 12:59:31 +01:00
Leon Richardt 5957551d06 Better Highlights (#1320)
* Support for user-defined sounds and colors

* Make color & sound columns selectable

* Add custom row for subscription highlights

* Add subscriptions to custom highlights and centrally manage highlight colors

* Dynamically update message highlight colors
2020-01-25 11:03:10 +01:00
Rasmus Karlsson 81b79e14b5 Fix a crash in TwitchChannel::refreshCheerEmotes
If you closed down the split right after the refreshCheerEmotes call was
made, then refreshCheerEmotes used this after it was free'd
2020-01-12 10:06:01 +01:00
pajlada 90296a2d85
Expect a PONG response to our PINGs (#1476)
If no PONG was received, force a reconnection

Fixes #1164
2020-01-03 20:55:13 +01:00
pajlada 3c8992cac1
Remove FMT dependency (#1472)
All occurrences of log() have been replaced with qDebug()

bonus meme: remove a bunch of std::string usages in the pubsub client

Fixes #1467
2020-01-03 20:51:37 +01:00
Rasmus Karlsson f02988b657 Correct "Emote Link" for BTTV Global and Channel emotes 2019-12-31 21:21:53 +01:00