mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 10:12:39 +01:00
ircd:Ⓜ️ Add pretty_msgline() suite.
This commit is contained in:
parent
79364ef610
commit
aeb41e7341
2 changed files with 56 additions and 0 deletions
|
@ -50,6 +50,10 @@ namespace ircd::m
|
||||||
// Informational pretty string on multiple lines.
|
// Informational pretty string on multiple lines.
|
||||||
std::ostream &pretty(std::ostream &, const event &);
|
std::ostream &pretty(std::ostream &, const event &);
|
||||||
std::string pretty(const event &);
|
std::string pretty(const event &);
|
||||||
|
|
||||||
|
// Informational content-oriented
|
||||||
|
std::ostream &pretty_msgline(std::ostream &, const event &);
|
||||||
|
std::string pretty_msgline(const event &);
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
|
|
|
@ -231,6 +231,58 @@ ircd::m::pretty_oneline(std::ostream &s,
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
ircd::m::pretty_msgline(const event &event)
|
||||||
|
{
|
||||||
|
std::string ret;
|
||||||
|
std::stringstream s;
|
||||||
|
pubsetbuf(s, ret, 4096);
|
||||||
|
pretty_msgline(s, event);
|
||||||
|
resizebuf(s, ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ostream &
|
||||||
|
ircd::m::pretty_msgline(std::ostream &s,
|
||||||
|
const event &event)
|
||||||
|
{
|
||||||
|
s << json::get<"depth"_>(event) << " :";
|
||||||
|
s << json::get<"type"_>(event) << " ";
|
||||||
|
s << json::get<"sender"_>(event) << " ";
|
||||||
|
s << json::get<"event_id"_>(event) << " ";
|
||||||
|
|
||||||
|
const auto &state_key
|
||||||
|
{
|
||||||
|
json::get<"state_key"_>(event)
|
||||||
|
};
|
||||||
|
|
||||||
|
if(defined(state_key) && empty(state_key))
|
||||||
|
s << "\"\"" << " ";
|
||||||
|
else if(defined(state_key))
|
||||||
|
s << state_key << " ";
|
||||||
|
else
|
||||||
|
s << "*" << " ";
|
||||||
|
|
||||||
|
const json::object &content
|
||||||
|
{
|
||||||
|
json::get<"content"_>(event)
|
||||||
|
};
|
||||||
|
|
||||||
|
switch(hash(json::get<"type"_>(event)))
|
||||||
|
{
|
||||||
|
case "m.room.message"_:
|
||||||
|
s << unquote(content.get("msgtype")) << " ";
|
||||||
|
s << unquote(content.get("body")) << " ";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
s << string_view{content};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
ircd::m::id::event
|
ircd::m::id::event
|
||||||
ircd::m::make_id(const event &event,
|
ircd::m::make_id(const event &event,
|
||||||
id::event::buf &buf)
|
id::event::buf &buf)
|
||||||
|
|
Loading…
Reference in a new issue