summaryrefslogtreecommitdiff
path: root/src/irc/message.cpp
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-04-21 01:14:09 +0500
committerilotterytea <iltsu@alright.party>2024-04-21 01:14:09 +0500
commitedcf0fd1b942531ac0c6a6442fa5ad21096fe218 (patch)
treef9ec31fc3d18be67276c7f7c7288a5ecd3296ddb /src/irc/message.cpp
parent09daf1148d2f546bde040105a112ae50b1402e89 (diff)
feat: irc message parser
Diffstat (limited to 'src/irc/message.cpp')
-rw-r--r--src/irc/message.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/irc/message.cpp b/src/irc/message.cpp
new file mode 100644
index 0000000..123a0da
--- /dev/null
+++ b/src/irc/message.cpp
@@ -0,0 +1,30 @@
+#include "message.hpp"
+
+#include <optional>
+#include <string>
+#include <vector>
+
+namespace RedpilledBot {
+ namespace IRC {
+ std::optional<MessageType> define_message_type(const std::string &msg) {
+ std::vector<std::string> parts = split_text(msg, ' ');
+ int i;
+
+ if (msg[0] == '@') {
+ i = 2;
+ } else if (msg[0] == ':') {
+ i = 1;
+ } else {
+ return std::nullopt;
+ }
+
+ if (parts[i] == "NOTICE") {
+ return MessageType::Notice;
+ } else if (parts[i] == "PRIVMSG") {
+ return MessageType::Privmsg;
+ }
+
+ return std::nullopt;
+ }
+ }
+}