mirror of
https://github.com/matrix-construct/construct
synced 2024-06-02 18:18:56 +02:00
modules/m_room_message: Stub media-specific effects hook.
This commit is contained in:
parent
b0b0f063a7
commit
7469c09130
|
@ -10,7 +10,10 @@
|
||||||
|
|
||||||
namespace ircd::m
|
namespace ircd::m
|
||||||
{
|
{
|
||||||
|
static void room_message_media(const event &, vm::eval &);
|
||||||
static void room_message_info(const event &, vm::eval &);
|
static void room_message_info(const event &, vm::eval &);
|
||||||
|
|
||||||
|
extern hookfn<vm::eval &> room_message_media_hook;
|
||||||
extern hookfn<vm::eval &> room_message_info_hook;
|
extern hookfn<vm::eval &> room_message_info_hook;
|
||||||
extern log::log room_message_log;
|
extern log::log room_message_log;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +40,16 @@ ircd::m::room_message_info_hook
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
decltype(ircd::m::room_message_media_hook)
|
||||||
|
ircd::m::room_message_media_hook
|
||||||
|
{
|
||||||
|
room_message_media,
|
||||||
|
{
|
||||||
|
{ "_site", "vm.effects" },
|
||||||
|
{ "type", "m.room.message" },
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::m::room_message_info(const event &event,
|
ircd::m::room_message_info(const event &event,
|
||||||
vm::eval &eval)
|
vm::eval &eval)
|
||||||
|
@ -67,3 +80,58 @@ ircd::m::room_message_info(const event &event,
|
||||||
size(body) > 128? "..."_sv : string_view{}
|
size(body) > 128? "..."_sv : string_view{}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::m::room_message_media(const event &event,
|
||||||
|
vm::eval &eval)
|
||||||
|
{
|
||||||
|
const m::room::message msg
|
||||||
|
{
|
||||||
|
json::get<"content"_>(event)
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto &msgtype
|
||||||
|
{
|
||||||
|
json::get<"msgtype"_>(msg)
|
||||||
|
};
|
||||||
|
|
||||||
|
const bool match
|
||||||
|
{
|
||||||
|
false
|
||||||
|
|| msgtype == "m.image"
|
||||||
|
|| msgtype == "m.video"
|
||||||
|
|| msgtype == "m.audio"
|
||||||
|
|| msgtype == "m.file"
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!match)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const auto &url
|
||||||
|
{
|
||||||
|
json::get<"url"_>(msg)
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!url)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const media::mxc mxc
|
||||||
|
{
|
||||||
|
url
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto file_room_id
|
||||||
|
{
|
||||||
|
media::file::room_id(mxc)
|
||||||
|
};
|
||||||
|
|
||||||
|
log::debug
|
||||||
|
{
|
||||||
|
room_message_log, "%s posted %s at %s in %s with %s",
|
||||||
|
json::get<"sender"_>(event),
|
||||||
|
msgtype,
|
||||||
|
json::get<"url"_>(msg),
|
||||||
|
json::get<"room_id"_>(event),
|
||||||
|
string_view{event.event_id},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue