Chat client for https://twitch.tv
Go to file
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
.CI Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
.github Only run clang-tidy CI Action on PRs (#3892) 2022-07-31 15:32:43 +00:00
benchmarks Rewrite & optimize LimitedQueue (#3798) 2022-06-18 10:44:48 +00:00
cmake Add the ability to skip generation of git and date data (#3800) 2022-06-05 14:44:20 +00:00
docs Add basic benchmark (#3038) 2021-08-08 14:16:30 +02:00
lib Delete .pri files, move warnings to src/CMakeLists.txt (#3883) 2022-07-30 12:39:13 +02:00
resources Added support for Twitch's Chat Replies (#3722) 2022-07-31 10:45:25 +00:00
src Automatically load recent messages on reconnect (#3878) 2022-08-06 18:18:34 +02:00
tests Allow non-message phrases to be highlighted by self (#3835) 2022-06-26 10:43:34 +00:00
tools Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
.cirrus.yml Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
.clang-tidy Add .clang-tidy file and CI (#3890) 2022-07-31 14:16:22 +00:00
.gitattributes Add .gitattributes file to normalize line endings 2019-09-08 22:01:12 +02:00
.gitignore Add Visual Studio stuff to .gitignore (#3759) 2022-05-22 14:16:52 +00:00
.gitmodules Build GoogleTest & GoogleMock as submodules (#3760) 2022-05-22 15:43:41 +02:00
.prettierignore Add custom hotkeys. (#2340) 2021-11-21 17:46:21 +00:00
.prettierrc.toml Add lint github action (#2473) 2021-02-21 14:45:42 +01:00
BUILDING_ON_FREEBSD.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_LINUX.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_MAC.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_WINDOWS.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_WINDOWS_WITH_VCPKG.md Add guide for building chatterino2 on Windows with vcpkg (#3634) 2022-05-15 15:57:31 +00:00
CHANGELOG.md Automatically load recent messages on reconnect (#3878) 2022-08-06 18:18:34 +02:00
CMakeLists.txt Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
conanfile.txt Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
CONTRIBUTING.md Update Conventions examples in Contributing.md (#3538) 2022-01-22 19:36:53 +00:00
LICENSE Add LICENSE file (#130) 2017-10-13 21:57:43 +02:00
README.md Updated link to VCRedist in README (#3749) 2022-05-22 09:36:03 +00:00
vcpkg.json Fix vcpkg manifest and finding RapidJSON and Websocketpp modules (#3753) 2022-05-21 15:38:10 +00:00

alt text Chatterino 2 GitHub Actions Build (Windows, Ubuntu, MacOS) Cirrus CI Build (FreeBSD only) Chocolatey Package Flatpak Package

Chatterino 2 is a chat client for Twitch.tv. The Chatterino 2 wiki can be found here. Contribution guidelines can be found here.

Download

Current releases are available at https://chatterino.com. Windows users can also install Chatterino from Chocolatey.

Nightly build

You can download the latest Chatterino 2 build over here

You might also need to install the VC++ Redistributables from Microsoft if you do not have it installed already.
If you still receive an error about MSVCR120.dll missing, then you should install the VC++ 2013 Restributable.

Building

To get source code with required submodules run:

git clone --recurse-submodules https://github.com/Chatterino/chatterino2.git

or

git clone https://github.com/Chatterino/chatterino2.git
cd chatterino2
git submodule update --init --recursive

Building on Windows

Building on Windows with vcpkg

Building on Linux

Building on Mac

Building on FreeBSD

Code style

The code is formatted using clang format in Qt Creator. .clang-format contains the style file for clang format.

Get it automated with QT Creator + Beautifier + Clang Format

  1. Download LLVM: https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe
  2. During the installation, make sure to add it to your path
  3. In QT Creator, select Help > About Plugins > C++ > Beautifier to enable the plugin
  4. Restart QT Creator
  5. Select Tools > Options > Beautifier
  6. Under General select Tool: ClangFormat and enable Automatic Formatting on File Save
  7. Under Clang Format select Use predefined style: File and Fallback style: None

Qt creator should now format the documents when saving it.

Doxygen

Doxygen is used to generate project information daily and is available here.