From 0e20d75f3dcd12cc0c66c321684eadbed1513a9f Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Thu, 2 May 2024 00:11:09 +0500 Subject: feat: method for getting chatter list --- src/api/twitch/helix_client.cpp | 27 +++++++++++++++++++++++++++ src/api/twitch/helix_client.hpp | 3 +++ 2 files changed, 30 insertions(+) (limited to 'src/api/twitch') diff --git a/src/api/twitch/helix_client.cpp b/src/api/twitch/helix_client.cpp index c5031f0..ceac720 100644 --- a/src/api/twitch/helix_client.cpp +++ b/src/api/twitch/helix_client.cpp @@ -75,4 +75,31 @@ namespace bot::api::twitch { return users; } + + std::vector HelixClient::get_chatters( + const int &broadcaster_id, const int &moderator_id) const { + cpr::Response response = + cpr::Get(cpr::Url{this->base_url + "/chat/chatters?broadcaster_id=" + + std::to_string(broadcaster_id) + + "&moderator_id=" + std::to_string(moderator_id)}, + cpr::Bearer{this->token}, + cpr::Header{{"Client-Id", this->client_id.c_str()}}); + + if (response.status_code != 200) { + return {}; + } + + std::vector users; + + nlohmann::json j = nlohmann::json::parse(response.text); + + for (const auto &d : j["data"]) { + schemas::User u{std::stoi(d["user_id"].get()), + d["user_login"]}; + + users.push_back(u); + } + + return users; + } } diff --git a/src/api/twitch/helix_client.hpp b/src/api/twitch/helix_client.hpp index fedec7f..2b5f4ea 100644 --- a/src/api/twitch/helix_client.hpp +++ b/src/api/twitch/helix_client.hpp @@ -15,6 +15,9 @@ namespace bot::api::twitch { const std::vector &logins) const; std::vector get_users(const std::vector &ids) const; + std::vector get_chatters(const int &broadcaster_id, + const int &moderator_id) const; + private: std::vector get_users_by_query( const std::string &query) const; -- cgit v1.2.3