diff options
| author | ilotterytea <iltsu@alright.party> | 2024-05-17 23:39:18 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2024-05-17 23:39:18 +0500 |
| commit | d1e0d677e7135de3c17034638a7d697d8f0e7c2f (patch) | |
| tree | 67364e78332304b2ccd5ac48d68cf5a187f4613b | |
| parent | 646ca655501dace981001843289d896657ee6b82 (diff) | |
upd: Stream is now class
| -rw-r--r-- | src/api/twitch/schemas/stream.hpp | 30 | ||||
| -rw-r--r-- | src/stream.cpp | 8 |
2 files changed, 32 insertions, 6 deletions
diff --git a/src/api/twitch/schemas/stream.hpp b/src/api/twitch/schemas/stream.hpp index ea380db..e3d485e 100644 --- a/src/api/twitch/schemas/stream.hpp +++ b/src/api/twitch/schemas/stream.hpp @@ -1,9 +1,35 @@ #pragma once +#include <chrono> #include <string> + +#include "../../../utils/chrono.hpp" + namespace bot::api::twitch::schemas { - struct Stream { + class Stream { + public: + Stream(int user_id, std::string user_login, std::string game_name, + std::string title, std::string started_at) + : user_id(user_id), + user_login(user_login), + game_name(game_name), + title(title), + started_at(utils::chrono::string_to_time_point( + started_at, "%Y-%m-%dT%H:%M:%SZ")) {} + + Stream(int user_id) : user_id(user_id) {} + + const int &get_user_id() const { return this->user_id; } + const std::string &get_user_login() const { return this->user_login; } + const std::string &get_game_name() const { return this->game_name; } + const std::string &get_title() const { return this->title; } + const std::chrono::system_clock::time_point &get_started_at() const { + return this->started_at; + } + + private: int user_id; - std::string user_login, game_name, title, started_at; + std::string user_login, game_name, title; + std::chrono::system_clock::time_point started_at; }; } diff --git a/src/stream.cpp b/src/stream.cpp index 818d4de..86d35cc 100644 --- a/src/stream.cpp +++ b/src/stream.cpp @@ -52,10 +52,10 @@ namespace bot::stream { for (const auto &stream : streams) { bool is_already_live = std::any_of(this->online_ids.begin(), this->online_ids.end(), - [&](const auto &x) { return x == stream.user_id; }); + [&](const auto &x) { return x == stream.get_user_id(); }); if (!is_already_live) { - this->online_ids.insert(stream.user_id); + this->online_ids.insert(stream.get_user_id()); this->handler(schemas::EventType::LIVE, stream); } } @@ -64,7 +64,7 @@ namespace bot::stream { for (auto i = this->online_ids.begin(); i != this->online_ids.end();) { auto stream = std::find_if(streams.begin(), streams.end(), - [&](const auto &x) { return x.user_id == *i; }); + [&](const auto &x) { return x.get_user_id() == *i; }); if (stream == streams.end()) { this->handler(schemas::EventType::OFFLINE, @@ -85,7 +85,7 @@ namespace bot::stream { "SELECT id, channel_id, message, flags FROM events WHERE event_type " "= " + std::to_string(type) + - " AND target_alias_id = " + std::to_string(stream.user_id)); + " AND target_alias_id = " + std::to_string(stream.get_user_id())); for (const auto &event : events) { pqxx::row channel = work.exec1( |
