0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-29 15:28:20 +02:00

ircd:Ⓜ️ Add contains_url to filter tuple.

This commit is contained in:
Jason Volk 2018-05-12 02:27:39 -07:00
parent 0abfc6e927
commit ea73700103
3 changed files with 34 additions and 47 deletions

View file

@ -51,7 +51,8 @@ struct ircd::m::room_event_filter
json::property<name::senders, json::array>,
json::property<name::not_types, json::array>,
json::property<name::not_rooms, json::array>,
json::property<name::not_senders, json::array>
json::property<name::not_senders, json::array>,
json::property<name::contains_url, bool>
>
{
using super_type::tuple;

View file

@ -230,6 +230,15 @@ struct ircd::m::vm::copts
/// Include origin_server_ts
bool add_origin_server_ts {true};
/// Add prev_events
bool add_prev_events {true};
/// Add prev_state
bool add_prev_state {true};
/// Add auth_events
bool add_auth_events {true};
/// Whether to log a debug message before commit
bool debuglog_precommit {false};

View file

@ -151,14 +151,9 @@ ircd::m::vm::eval__commit_room(eval &eval,
};
char ae_buf[512];
json::array auth_events
{
json::get<"auth_events"_>(evf)?
json::get<"auth_events"_>(evf):
json::array{"[]"}
};
json::array auth_events;
if(depth != -1)
if(depth != -1 && opts.add_auth_events)
{
std::vector<json::value> ae;
@ -247,49 +242,31 @@ ircd::m::vm::eval__commit_room(eval &eval,
});
}
//TODO: X
const auto &prev_state
static const json::array &prev_state
{
json::get<"prev_state"_>(evf)?
json::get<"prev_state"_>(evf):
json::array{"[]"}
};
/*
const event::fetch pvf
{
prev_event_id, std::nothrow
};
*/
//TODO: X
json::value prev_event0[]
{
{ string_view{prev_event_id} },
{ json::get<"hashes"_>(evf) }
json::empty_array
};
//TODO: X
json::value prev_event
const json::iov::add_if prevs[]
{
prev_event0, empty(prev_event_id)? 0UL: 2UL
};
//TODO: X
json::value prev_events_
{
&prev_event, !empty(prev_event_id)
};
std::string prev_events
{
json::strung(prev_events_)
};
//TODO: X
const json::iov::push prevs[]
{
{ event, { "auth_events", auth_events } },
{ event, { "prev_events", prev_events } },
{ event, { "prev_state", prev_state } },
{
event, opts.add_auth_events,
{
"auth_events", auth_events
}
},
{
event, opts.add_prev_events,
{
"prev_events", prev_events
}
},
{
event, opts.add_prev_state,
{
"prev_state", prev_state
}
},
};
return eval(event, contents);