abaddon/discord/sticker.cpp
2021-01-12 00:11:33 -05:00

33 lines
1.1 KiB
C++

#include "sticker.hpp"
void to_json(nlohmann::json &j, const StickerData &m) {
j["id"] = m.ID;
j["pack_id"] = m.PackID;
j["name"] = m.Name;
j["description"] = m.Description;
JS_IF("tags", m.Tags);
JS_IF("asset", m.AssetHash);
JS_IF("preview_asset", m.PreviewAssetHash);
j["format_type"] = m.FormatType;
}
void from_json(const nlohmann::json &j, StickerData &m) {
JS_D("id", m.ID);
JS_D("pack_id", m.PackID);
JS_D("name", m.Name);
JS_D("description", m.Description);
JS_O("tags", m.Tags);
JS_O("asset", m.AssetHash);
JS_ON("preview_asset", m.PreviewAssetHash);
JS_D("format_type", m.FormatType);
}
std::string StickerData::GetURL() const {
if (!AssetHash.has_value()) return "";
if (FormatType == StickerFormatType::PNG || FormatType == StickerFormatType::APNG)
return "https://media.discordapp.net/stickers/" + std::to_string(ID) + "/" + *AssetHash + ".png?size=256";
else if (FormatType == StickerFormatType::LOTTIE)
return "https://media.discordapp.net/stickers/" + std::to_string(ID) + "/" + *AssetHash + ".json";
return "";
}