modules/console: Improve feds perspective cmd output.

This commit is contained in:
Jason Volk 2023-03-04 20:34:18 -08:00
parent 9a74602523
commit 12641056d2
1 changed files with 42 additions and 13 deletions

View File

@ -14998,46 +14998,55 @@ console_cmd__feds__perspective(opt &out, const string_view &line)
{
const params param{line, " ",
{
"room_id", "server_name", "key_id",
"room_id", "server_name", "key_id", "op"
}};
const auto &room_id
{
m::room_id(param.at(0))
m::room_id(param["room_id"])
};
const string_view &server_name
{
param.at(1)
param["server_name"]
};
const string_view &key_id
{
param.at(2)
param["key_id"]
};
const string_view &op
{
param["op"]
};
const m::fed::key::server_key server_key
{
server_name, key_id
server_name,
key_id == "*"? string_view{}: key_id,
};
size_t count[3] {0};
m::feds::opts opts;
opts.op = m::feds::op::keys;
opts.timeout = out.timeout;
opts.room_id = room_id;
opts.arg[0] = server_key.first;
opts.arg[1] = server_key.second;
m::feds::execute(opts, [&out](const auto &result)
m::feds::execute(opts, [&out, &op, &key_id, &count]
(const auto &result)
{
out << std::setw(32) << trunc(result.origin, 32) << " :";
if(result.eptr)
{
out << what(result.eptr)
<< std::endl;
out
<< std::setw(32) << trunc(result.origin, 32) << " :"
<< what(result.eptr)
<< std::endl;
count[2]++;
return true;
}
else count[1]++;
const json::array &server_keys
{
@ -15046,13 +15055,33 @@ console_cmd__feds__perspective(opt &out, const string_view &line)
for(const json::object server_key : server_keys)
{
const m::keys &key{server_key};
out << key << std::endl;
const m::keys key
{
server_key
};
out << std::setw(32) << trunc(result.origin, 32) << " :";
if(has(op, "raw"))
{
out << key << std::endl;
continue;
}
for(const auto &[_key_id, key_obj] : json::get<"verify_keys"_>(key))
if(key_id == _key_id)
count[0]++;
pretty_oneline(out, key);
out << std::endl;
}
return true;
});
out
<< '\n'
<< count[0] << ':' << count[1] << ':' << count[2]
<< std::endl;
return true;
}