diff options
| -rw-r--r-- | src/irc/message.hpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/irc/message.hpp b/src/irc/message.hpp index 94541a6..5f090b7 100644 --- a/src/irc/message.hpp +++ b/src/irc/message.hpp @@ -1,6 +1,7 @@ #pragma once #include <functional> +#include <map> #include <optional> #include <sstream> #include <string> @@ -18,6 +19,8 @@ namespace bot { std::string display_name; int id; + std::map<std::string, int> badges; + // More fields will be here }; @@ -85,6 +88,24 @@ namespace bot { source.id = std::stoi(value); } else if (key == "user-id") { sender.id = std::stoi(value); + } else if (key == "badges") { + std::vector<std::string> badges = + utils::string::split_text(value, ','); + + std::map<std::string, int> map; + + for (const auto &badge : badges) { + std::istringstream iss2(badge); + std::string name; + std::string value; + + std::getline(iss2, name, '/'); + std::getline(iss2, value); + + map.insert(name, value); + } + + sender.badges = map; } } |
