#pragma once #include "providers/twitch/emotevalue.hpp" #include "providers/twitch/twitchaccount.hpp" #include "providers/twitch/twitchemotes.hpp" #include "util/concurrentmap.hpp" #include "util/emotemap.hpp" #include namespace chatterino { namespace providers { namespace twitch { class TwitchEmotes { public: util::EmoteData getEmoteById(long int id, const QString &emoteName); /// Twitch emotes void refresh(const std::shared_ptr &user); struct TwitchAccountEmoteData { struct TwitchEmote { std::string id; std::string code; }; // emote set std::map> emoteSets; std::vector emoteCodes; util::EmoteMap emotes; bool filled = false; }; std::map emotes; private: // emote code util::ConcurrentMap _twitchEmotes; // emote id util::ConcurrentMap _twitchEmoteFromCache; }; } // namespace twitch } // namespace providers } // namespace chatterino