added emote loading

This commit is contained in:
fourtf
2017-01-13 18:59:11 +01:00
parent 0fbc40a52a
commit 4dbe2b0254
18 changed files with 402 additions and 181 deletions
+32 -38
View File
@@ -1,35 +1,17 @@
#include "emotes.h"
#include "resources.h"
ConcurrentMap<QString, TwitchEmoteValue *> *Emotes::m_twitchEmotes =
new ConcurrentMap<QString, TwitchEmoteValue *>();
ConcurrentMap<QString, LazyLoadedImage *> *Emotes::m_bttvEmotes =
new ConcurrentMap<QString, LazyLoadedImage *>();
ConcurrentMap<QString, LazyLoadedImage *> *Emotes::m_ffzEmotes =
new ConcurrentMap<QString, LazyLoadedImage *>();
ConcurrentMap<QString, LazyLoadedImage *> *Emotes::m_chatterinoEmotes =
new ConcurrentMap<QString, LazyLoadedImage *>();
ConcurrentMap<QString, LazyLoadedImage *>
*Emotes::m_bttvChannelEmoteFromCaches =
new ConcurrentMap<QString, LazyLoadedImage *>();
ConcurrentMap<QString, LazyLoadedImage *> *Emotes::m_ffzChannelEmoteFromCaches =
new ConcurrentMap<QString, LazyLoadedImage *>();
ConcurrentMap<int, LazyLoadedImage *> *Emotes::m_twitchEmoteFromCache =
new ConcurrentMap<int, LazyLoadedImage *>();
ConcurrentMap<QString, LazyLoadedImage *> *Emotes::m_miscImageFromCache =
new ConcurrentMap<QString, LazyLoadedImage *>();
QString Emotes::m_twitchEmoteTemplate(
"http://static-cdn.jtvnw.net/emoticons/v1/{id}/{scale}.0");
LazyLoadedImage *Emotes::m_cheerBadge100000 =
new LazyLoadedImage(new QImage(":/cheer100000"));
LazyLoadedImage *Emotes::m_cheerBadge10000 =
new LazyLoadedImage(new QImage(":/cheer10000"));
LazyLoadedImage *Emotes::m_cheerBadge5000 =
new LazyLoadedImage(new QImage(":/cheer5000"));
LazyLoadedImage *Emotes::m_cheerBadge1000 =
new LazyLoadedImage(new QImage(":/cheer1000"));
LazyLoadedImage *Emotes::m_cheerBadge100 =
new LazyLoadedImage(new QImage(":/cheer100"));
LazyLoadedImage *Emotes::m_cheerBadge1 =
new LazyLoadedImage(new QImage(":/cheer1"));
ConcurrentMap<QString, TwitchEmoteValue *> Emotes::m_twitchEmotes;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_bttvEmotes;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_ffzEmotes;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_chatterinoEmotes;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_bttvChannelEmoteFromCaches;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_ffzChannelEmoteFromCaches;
ConcurrentMap<long, LazyLoadedImage *> Emotes::m_twitchEmoteFromCache;
ConcurrentMap<QString, LazyLoadedImage *> Emotes::m_miscImageFromCache;
Emotes::Emotes()
{
@@ -38,9 +20,21 @@ Emotes::Emotes()
LazyLoadedImage *
Emotes::getTwitchEmoteById(const QString &name, long id)
{
#pragma message WARN("xD")
return new LazyLoadedImage(NULL);
// return m_twitchEmoteFromCache->getOrAdd()
return m_twitchEmoteFromCache.getOrAdd(id, [&name, id] {
qreal scale;
QString url = getTwitchEmoteLink(id, scale);
return new LazyLoadedImage(url, scale, name, name + "\nTwitch Emote");
});
}
QString
Emotes::getTwitchEmoteLink(long id, qreal &scale)
{
scale = .5;
return m_twitchEmoteTemplate.replace("{id}", QString::number(id))
.replace("{scale}", "2");
}
LazyLoadedImage *
@@ -54,16 +48,16 @@ LazyLoadedImage *
Emotes::getCheerBadge(long long amount)
{
if (amount >= 100000) {
return m_cheerBadge100000;
return Resources::cheerBadge100000();
} else if (amount >= 10000) {
return m_cheerBadge10000;
return Resources::cheerBadge10000();
} else if (amount >= 5000) {
return m_cheerBadge5000;
return Resources::cheerBadge5000();
} else if (amount >= 1000) {
return m_cheerBadge1000;
return Resources::cheerBadge1000();
} else if (amount >= 100) {
return m_cheerBadge100;
return Resources::cheerBadge100();
} else {
return m_cheerBadge1;
return Resources::cheerBadge1();
}
}