mirror of
https://github.com/matrix-construct/construct
synced 2024-11-26 00:32:35 +01:00
ircd:Ⓜ️:push: Add tool to determine if rule has highlight tweak set.
This commit is contained in:
parent
c4c1c47351
commit
98562fe488
2 changed files with 42 additions and 2 deletions
|
@ -28,8 +28,8 @@ namespace ircd::m::push
|
||||||
path make_path(const string_view &type, const string_view &state_key);
|
path make_path(const string_view &type, const string_view &state_key);
|
||||||
path make_path(const event &);
|
path make_path(const event &);
|
||||||
|
|
||||||
// true on "notify" or "coalesce"
|
bool highlighting(const rule &); // true for highlight tweak
|
||||||
bool notifying(const rule &);
|
bool notifying(const rule &); // true on "notify" or "coalesce"
|
||||||
|
|
||||||
extern log::log log;
|
extern log::log log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -590,6 +590,46 @@ ircd::m::push::notifying(const rule &rule)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ircd::m::push::highlighting(const rule &rule)
|
||||||
|
{
|
||||||
|
const json::array &actions
|
||||||
|
{
|
||||||
|
json::get<"actions"_>(rule)
|
||||||
|
};
|
||||||
|
|
||||||
|
for(const string_view &action : actions)
|
||||||
|
{
|
||||||
|
if(json::type(action, std::nothrow) != json::OBJECT)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const json::object &object
|
||||||
|
{
|
||||||
|
action
|
||||||
|
};
|
||||||
|
|
||||||
|
const json::string set_tweak
|
||||||
|
{
|
||||||
|
object["set_tweak"]
|
||||||
|
};
|
||||||
|
|
||||||
|
if(set_tweak != "highlight")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const auto &value
|
||||||
|
{
|
||||||
|
object["value"]
|
||||||
|
};
|
||||||
|
|
||||||
|
// Spec sez: If a highlight tweak is given with no value, its value is
|
||||||
|
// defined to be true. If no highlight tweak is given at all then the
|
||||||
|
// value of highlight is defined to be false.
|
||||||
|
return !value || value == "true";
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// path
|
// path
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue