nit: fix some eventsub mini things (#5895)

This commit is contained in:
pajlada
2025-02-02 17:51:46 +01:00
committed by GitHub
parent 0f8a29fdb9
commit da0a247f16
10 changed files with 7 additions and 113 deletions
+1 -1
View File
@@ -20,7 +20,7 @@
- Bugfix: Fixed announcements not showing up in mentions tab. (#5857)
- Bugfix: Fixed the reply button showing for inline whispers and announcements. (#5863)
- Bugfix: Fixed suspicious user treatment update messages not being searchable. (#5865)
- Dev: Add initial experimental EventSub support. (#5837)
- Dev: Add initial experimental EventSub support. (#5837, #5895)
- Dev: Highlight checks now use non-capturing groups for the boundaries. (#5784)
- Dev: Updated Conan dependencies. (#5776)
- Dev: Disable QT keywords (i.e. `emit`, `slots`, and `signals`). (#5882)
@@ -1,35 +0,0 @@
#pragma once
#include <boost/json/object.hpp>
#include <iostream>
#include <optional>
#include <string_view>
namespace chatterino::eventsub::lib {
template <typename T>
std::optional<T> readMember(const boost::json::object &obj,
std::string_view key)
{
const auto *it = obj.find(key);
if (it == obj.end())
{
// No member with the key found
std::cerr << "No member with the key " << key << " found\n";
return std::nullopt;
}
const auto result = boost::json::try_value_to<T>(it->value());
if (!result.has_value())
{
std::cerr << key << " could not be deserialized to the desired type\n";
// Member could not be serialized to this type
return std::nullopt;
}
return result.value();
}
} // namespace chatterino::eventsub::lib
@@ -461,8 +461,6 @@ CommandController::CommandController(const Paths &paths)
this->registerCommand("/debug-test", &commands::debugTest);
this->registerCommand("/debug-eventsub", &commands::debugEventSub);
this->registerCommand("/shield", &commands::shieldModeOn);
this->registerCommand("/shieldoff", &commands::shieldModeOff);
@@ -9,7 +9,6 @@
#include "messages/Message.hpp"
#include "messages/MessageBuilder.hpp"
#include "messages/MessageElement.hpp"
#include "providers/twitch/eventsub/Controller.hpp"
#include "providers/twitch/PubSubActions.hpp"
#include "providers/twitch/TwitchChannel.hpp"
#include "providers/twitch/TwitchIrcServer.hpp"
@@ -190,57 +189,4 @@ QString debugTest(const CommandContext &ctx)
return "";
}
QString debugEventSub(const CommandContext &ctx)
{
(void)ctx;
if (ctx.twitchChannel == nullptr)
{
return "";
}
// purposefully subscribe multiple times to ensure we can't sub too many times
// or create too many connections
static eventsub::SubscriptionHandle handle1;
handle1 = getApp()->getEventSub()->subscribe(eventsub::SubscriptionRequest{
.subscriptionType = "channel.ban",
.subscriptionVersion = "1",
.conditions =
{
{
"broadcaster_user_id",
ctx.twitchChannel->roomId(),
},
},
});
auto handle2 =
getApp()->getEventSub()->subscribe(eventsub::SubscriptionRequest{
.subscriptionType = "channel.ban",
.subscriptionVersion = "1",
.conditions =
{
{
"broadcaster_user_id",
ctx.twitchChannel->roomId(),
},
},
});
auto handle3 =
getApp()->getEventSub()->subscribe(eventsub::SubscriptionRequest{
.subscriptionType = "channel.ban",
.subscriptionVersion = "1",
.conditions =
{
{
"broadcaster_user_id",
ctx.twitchChannel->roomId(),
},
},
});
return "";
}
} // namespace chatterino::commands
@@ -24,6 +24,4 @@ QString forceImageUnload(const CommandContext &ctx);
QString debugTest(const CommandContext &ctx);
QString debugEventSub(const CommandContext &ctx);
} // namespace chatterino::commands
+1 -13
View File
@@ -1473,18 +1473,6 @@ void TwitchChannel::refreshPubSub()
{
getApp()->getTwitchPubSub()->listenToAutomod(roomId);
getApp()->getTwitchPubSub()->listenToLowTrustUsers(roomId);
this->eventSubChannelBanHandle =
getApp()->getEventSub()->subscribe(eventsub::SubscriptionRequest{
.subscriptionType = "channel.ban",
.subscriptionVersion = "1",
.conditions =
{
{
"broadcaster_user_id",
roomId,
},
},
});
this->eventSubChannelModerateHandle =
getApp()->getEventSub()->subscribe(eventsub::SubscriptionRequest{
@@ -1505,7 +1493,7 @@ void TwitchChannel::refreshPubSub()
}
else
{
this->eventSubChannelBanHandle.reset();
this->eventSubChannelModerateHandle.reset();
}
getApp()->getTwitchPubSub()->listenToChannelPointRewards(roomId);
}
-1
View File
@@ -500,7 +500,6 @@ private:
pajlada::Signals::SignalHolder signalHolder_;
std::vector<boost::signals2::scoped_connection> bSignals_;
eventsub::SubscriptionHandle eventSubChannelBanHandle;
eventsub::SubscriptionHandle eventSubChannelModerateHandle;
friend class TwitchIrcServer;
@@ -31,10 +31,6 @@ public:
///
/// If no open connection has room for this subscription, this function will
/// create a new connection and queue up the subscription to run again after X seconds.
///
/// TODO: Return a SubscriptionHandle that handles unsubscriptions
/// Dupe subscriptions should return shared subscription handles
/// So no more owners of the subscription handle means we send an unsubscribe request
[[nodiscard]] virtual SubscriptionHandle subscribe(
const SubscriptionRequest &request) = 0;
};
@@ -8,7 +8,7 @@ namespace chatterino::eventsub {
RawSubscriptionHandle::RawSubscriptionHandle(SubscriptionRequest request_)
: request(std::move(request_))
{
// getApp()->getEventSub()->addRef(request);
// The reference is added by the EventSub controller
}
RawSubscriptionHandle::~RawSubscriptionHandle()
@@ -14,6 +14,10 @@ struct RawSubscriptionHandle {
~RawSubscriptionHandle();
};
/// Keeps a reference count of a specific subscription
///
/// If no more references exist of a specific subscription, we send an
/// unsubscription request
using SubscriptionHandle = std::unique_ptr<RawSubscriptionHandle>;
} // namespace chatterino::eventsub