MCPcopy Create free account
hub / github.com/WarmUpTill/SceneSwitcher / parseMessage

Function parseMessage

plugins/twitch/chat-connection.cpp:250–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

248}
249
250static IRCMessage parseMessage(const std::string &message)
251{
252 IRCMessage parsedMessage;
253
254 size_t idx = 0;
255 std::string rawTagsComponent;
256 std::string rawSourceComponent;
257 std::string rawCommandComponent;
258 std::string rawMessageComponent;
259
260 if (message[idx] == '@') {
261 size_t endIdx = message.find(' ');
262 rawTagsComponent = message.substr(1, endIdx - 1);
263 idx = endIdx + 1;
264 }
265
266 if (message[idx] == ':') {
267 idx += 1;
268 size_t endIdx = message.find(' ', idx);
269 rawSourceComponent = message.substr(idx, endIdx - idx);
270 idx = endIdx + 1;
271 }
272
273 size_t endIdx = message.find(':', idx);
274 if (endIdx == std::string::npos) {
275 endIdx = message.length();
276 }
277
278 rawCommandComponent = message.substr(idx, endIdx - idx);
279 if (endIdx != message.length()) {
280 idx = endIdx + 1;
281 rawMessageComponent = message.substr(idx);
282 }
283
284 parseTags(rawTagsComponent, parsedMessage);
285 parseSource(rawSourceComponent, parsedMessage);
286 parseCommand(rawCommandComponent, parsedMessage);
287 parsedMessage.message = rawMessageComponent;
288 return parsedMessage;
289}
290
291static std::vector<IRCMessage> parseMessages(const std::string &messagesStr)
292{

Callers 1

parseMessagesFunction · 0.85

Calls 5

parseTagsFunction · 0.85
parseSourceFunction · 0.85
parseCommandFunction · 0.85
findMethod · 0.80
substrMethod · 0.80

Tested by

no test coverage detected