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
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "ForwardDecl.hpp"
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
class RecentMessagesApi
|
||||
{
|
||||
public:
|
||||
using ResultCallback = std::function<void(const std::vector<MessagePtr> &)>;
|
||||
using ErrorCallback = std::function<void()>;
|
||||
|
||||
/**
|
||||
* @brief Loads recent messages for a channel using the Recent Messages API
|
||||
*
|
||||
* @param channelName Name of Twitch channel
|
||||
* @param channelPtr Weak pointer to Channel to use to build messages
|
||||
* @param onLoaded Callback taking the built messages as a const std::vector<MessagePtr> &
|
||||
* @param onError Callback called when the network request fails
|
||||
*/
|
||||
static void loadRecentMessages(const QString &channelName,
|
||||
std::weak_ptr<Channel> channelPtr,
|
||||
ResultCallback onLoaded,
|
||||
ErrorCallback onError);
|
||||
};
|
||||
|
||||
} // namespace chatterino
|
||||
Reference in New Issue
Block a user