diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-11-23 20:34:09 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-11-23 20:34:09 -0500 |
commit | 0b8c83eaa1fdb0fcb610f9181145abde3d60d803 (patch) | |
tree | 9897253c0018fb89e2acdf5f3effe2a2e8b02294 /discord/message.hpp | |
parent | deb482a8db55874a536b6efec366343280214e48 (diff) | |
download | abaddon-portaudio-0b8c83eaa1fdb0fcb610f9181145abde3d60d803.tar.gz abaddon-portaudio-0b8c83eaa1fdb0fcb610f9181145abde3d60d803.zip |
progress 2
Diffstat (limited to 'discord/message.hpp')
-rw-r--r-- | discord/message.hpp | 102 |
1 files changed, 56 insertions, 46 deletions
diff --git a/discord/message.hpp b/discord/message.hpp index 629fc9f..99c58ab 100644 --- a/discord/message.hpp +++ b/discord/message.hpp @@ -35,89 +35,99 @@ enum class MessageFlags { }; struct EmbedFooterData { - std::string Text; // - std::string IconURL; // opt - std::string ProxyIconURL; // opt + std::string Text; + std::optional<std::string> IconURL; + std::optional<std::string> ProxyIconURL; + friend void to_json(nlohmann::json &j, const EmbedFooterData &m); friend void from_json(const nlohmann::json &j, EmbedFooterData &m); }; struct EmbedImageData { - std::string URL; // opt - std::string ProxyURL; // opt - int Height = 0; // opt - int Width = 0; // opt + std::optional<std::string> URL; + std::optional<std::string> ProxyURL; + std::optional<int> Height; + std::optional<int> Width; + friend void to_json(nlohmann::json &j, const EmbedImageData &m); friend void from_json(const nlohmann::json &j, EmbedImageData &m); }; struct EmbedThumbnailData { - std::string URL; // opt - std::string ProxyURL; // opt - int Height = 0; // opt - int Width = 0; // opt + std::optional<std::string> URL; + std::optional<std::string> ProxyURL; + std::optional<int> Height; + std::optional<int> Width; + friend void to_json(nlohmann::json &j, const EmbedThumbnailData &m); friend void from_json(const nlohmann::json &j, EmbedThumbnailData &m); }; struct EmbedVideoData { - std::string URL; // opt - int Height = 0; // opt - int Width = 0; // opt + std::optional<std::string> URL; + std::optional<int> Height; + std::optional<int> Width; + + friend void to_json(nlohmann::json &j, const EmbedVideoData &m); friend void from_json(const nlohmann::json &j, EmbedVideoData &m); }; struct EmbedProviderData { - std::string Name; // opt - std::string URL; // opt, null (docs wrong) + std::optional<std::string> Name; + std::optional<std::string> URL; // null + friend void to_json(nlohmann::json &j, const EmbedProviderData &m); friend void from_json(const nlohmann::json &j, EmbedProviderData &m); }; struct EmbedAuthorData { - std::string Name; // opt - std::string URL; // opt - std::string IconURL; // opt - std::string ProxyIconURL; // opt + std::optional<std::string> Name; + std::optional<std::string> URL; + std::optional<std::string> IconURL; + std::optional<std::string> ProxyIconURL; + friend void to_json(nlohmann::json &j, const EmbedAuthorData &m); friend void from_json(const nlohmann::json &j, EmbedAuthorData &m); }; struct EmbedFieldData { - std::string Name; // - std::string Value; // - bool Inline = false; // opt + std::string Name; + std::string Value; + std::optional<bool> Inline; + friend void to_json(nlohmann::json &j, const EmbedFieldData &m); friend void from_json(const nlohmann::json &j, EmbedFieldData &m); }; struct EmbedData { - std::string Title; // opt - std::string Type; // opt - std::string Description; // opt - std::string URL; // opt - std::string Timestamp; // opt - int Color = -1; // opt - EmbedFooterData Footer; // opt - EmbedImageData Image; // opt - EmbedThumbnailData Thumbnail; // opt - EmbedVideoData Video; // opt - EmbedProviderData Provider; // opt - EmbedAuthorData Author; // opt - std::vector<EmbedFieldData> Fields; // opt - + std::optional<std::string> Title; + std::optional<std::string> Type; + std::optional<std::string> Description; + std::optional<std::string> URL; + std::optional<std::string> Timestamp; + std::optional<int> Color; + std::optional<EmbedFooterData> Footer; + std::optional<EmbedImageData> Image; + std::optional<EmbedThumbnailData> Thumbnail; + std::optional<EmbedVideoData> Video; + std::optional<EmbedProviderData> Provider; + std::optional<EmbedAuthorData> Author; + std::optional<std::vector<EmbedFieldData>> Fields; + + friend void to_json(nlohmann::json &j, const EmbedData &m); friend void from_json(const nlohmann::json &j, EmbedData &m); }; struct AttachmentData { - Snowflake ID; // - std::string Filename; // - int Bytes; // - std::string URL; // - std::string ProxyURL; // - int Height = -1; // opt, null - int Width = -1; // opt, null - + Snowflake ID; + std::string Filename; + int Bytes; + std::string URL; + std::string ProxyURL; + std::optional<int> Height; // null + std::optional<int> Width; // null + + friend void to_json(nlohmann::json &j, const AttachmentData &m); friend void from_json(const nlohmann::json &j, AttachmentData &m); }; @@ -141,7 +151,7 @@ struct Message { std::string EditedTimestamp; // null bool IsTTS; bool DoesMentionEveryone; - std::vector<User> Mentions; + std::vector<User> Mentions; // currently discarded in store // std::vector<Role> MentionRoles; // std::optional<std::vector<ChannelMentionData>> MentionChannels; std::vector<AttachmentData> Attachments; |