diff --git a/src/providers/ffz/ffzemotes.cpp b/src/providers/ffz/ffzemotes.cpp index c60df5f82..a0b437a8e 100644 --- a/src/providers/ffz/ffzemotes.cpp +++ b/src/providers/ffz/ffzemotes.cpp @@ -44,68 +44,6 @@ void fillInEmoteData(const QJsonObject &urls, const QString &code, const QString } // namespace -void FFZEmotes::loadChannelEmotes(const QString &channelName, std::weak_ptr _map) -{ - printf("[FFZEmotes] Reload FFZ Channel Emotes for channel %s\n", qPrintable(channelName)); - - QString url("https://api.frankerfacez.com/v1/room/" + channelName); - - util::NetworkRequest req(url); - req.setCaller(QThread::currentThread()); - req.setTimeout(3000); - req.getJSON([this, channelName, _map](QJsonObject &rootNode) { - auto map = _map.lock(); - - if (_map.expired()) { - return; - } - - map->clear(); - - auto setsNode = rootNode.value("sets").toObject(); - - std::vector codes; - for (const QJsonValue &setNode : setsNode) { - auto emotesNode = setNode.toObject().value("emoticons").toArray(); - - for (const QJsonValue &emoteNode : emotesNode) { - QJsonObject emoteObject = emoteNode.toObject(); - - // margins - int id = emoteObject.value("id").toInt(); - QString code = emoteObject.value("name").toString(); - - QJsonObject urls = emoteObject.value("urls").toObject(); - - auto emote = this->getChannelEmoteFromCaches().getOrAdd(id, [id, &code, &urls] { - util::EmoteData emoteData; - fillInEmoteData(urls, code, code + "
Channel FFZ Emote", emoteData); - emoteData.pageLink = - QString("https://www.frankerfacez.com/emoticon/%1-%2").arg(id).arg(code); - - return emoteData; - }); - - this->channelEmotes.insert(code, emote); - map->insert(code, emote); - codes.push_back(code.toStdString()); - } - - this->channelEmoteCodes[channelName.toStdString()] = codes; - } - }); -} - -util::EmoteMap &FFZEmotes::getEmotes() -{ - return this->globalEmotes; -} - -util::ConcurrentMap &FFZEmotes::getChannelEmoteFromCaches() -{ - return this->_channelEmoteFromCaches; -} - void FFZEmotes::loadGlobalEmotes() { QString url("https://api.frankerfacez.com/v1/set/global"); @@ -141,6 +79,58 @@ void FFZEmotes::loadGlobalEmotes() }); } +void FFZEmotes::loadChannelEmotes(const QString &channelName, std::weak_ptr _map) +{ + printf("[FFZEmotes] Reload FFZ Channel Emotes for channel %s\n", qPrintable(channelName)); + + QString url("https://api.frankerfacez.com/v1/room/" + channelName); + + util::NetworkRequest req(url); + req.setCaller(QThread::currentThread()); + req.setTimeout(3000); + req.getJSON([this, channelName, _map](QJsonObject &rootNode) { + auto map = _map.lock(); + + if (_map.expired()) { + return; + } + + map->clear(); + + auto setsNode = rootNode.value("sets").toObject(); + + std::vector codes; + for (const QJsonValue &setNode : setsNode) { + auto emotesNode = setNode.toObject().value("emoticons").toArray(); + + for (const QJsonValue &emoteNode : emotesNode) { + QJsonObject emoteObject = emoteNode.toObject(); + + // margins + int id = emoteObject.value("id").toInt(); + QString code = emoteObject.value("name").toString(); + + QJsonObject urls = emoteObject.value("urls").toObject(); + + auto emote = this->channelEmoteCache.getOrAdd(id, [id, &code, &urls] { + util::EmoteData emoteData; + fillInEmoteData(urls, code, code + "
Channel FFZ Emote", emoteData); + emoteData.pageLink = + QString("https://www.frankerfacez.com/emoticon/%1-%2").arg(id).arg(code); + + return emoteData; + }); + + this->channelEmotes.insert(code, emote); + map->insert(code, emote); + codes.push_back(code.toStdString()); + } + + this->channelEmoteCodes[channelName.toStdString()] = codes; + } + }); +} + } // namespace ffz } // namespace providers } // namespace chatterino diff --git a/src/providers/ffz/ffzemotes.hpp b/src/providers/ffz/ffzemotes.hpp index d1e71cae9..8c2247a21 100644 --- a/src/providers/ffz/ffzemotes.hpp +++ b/src/providers/ffz/ffzemotes.hpp @@ -20,17 +20,11 @@ public: std::map> channelEmoteCodes; void loadGlobalEmotes(); - void loadChannelEmotes(const QString &channelName, std::weak_ptr channelEmoteMap); - util::EmoteMap &getEmotes(); - util::ConcurrentMap &getChannelEmoteFromCaches(); - - util::ConcurrentMap channels; - private: - util::ConcurrentMap _channelEmoteFromCaches; + util::ConcurrentMap channelEmoteCache; }; } // namespace ffz