From 8ebd2089f2f85250381e1f00b9333906fcd4b55c Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sat, 11 Mar 2023 14:14:35 -0800 Subject: [PATCH] ircd::m::media: Add optional file name to file room state. --- include/ircd/m/media.h | 2 +- matrix/media.cc | 9 ++++++++- modules/media/upload.cc | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/ircd/m/media.h b/include/ircd/m/media.h index f7601c5e4..e4e170aa0 100644 --- a/include/ircd/m/media.h +++ b/include/ircd/m/media.h @@ -33,7 +33,7 @@ namespace ircd::m::media::file room::id::buf room_id(const mxc &); size_t read(const room &, const closure &); - size_t write(const room &, const user::id &, const const_buffer &content, const string_view &content_type); + size_t write(const room &, const user::id &, const const_buffer &content, const string_view &content_type, const string_view &name = {}); room::id::buf download(const mxc &, diff --git a/matrix/media.cc b/matrix/media.cc index 5e5bfb6eb..87b94b594 100644 --- a/matrix/media.cc +++ b/matrix/media.cc @@ -221,7 +221,8 @@ size_t ircd::m::media::file::write(const m::room &room, const m::user::id &user_id, const const_buffer &content, - const string_view &content_type) + const string_view &content_type, + const string_view &name) try { static const size_t BLK_SZ @@ -256,6 +257,12 @@ try { "mime_type", content_type } }); + if(name) + send(room, user_id, "ircd.file.stat.name", "", json::members + { + { "name", name } + }); + size_t off{0}, wrote{0}; while(off < size(content)) { diff --git a/modules/media/upload.cc b/modules/media/upload.cc index c8b676447..f4a3e39b4 100644 --- a/modules/media/upload.cc +++ b/modules/media/upload.cc @@ -75,7 +75,7 @@ post__upload(client &client, const size_t written { - m::media::file::write(room, request.user_id, buf, content_type) + m::media::file::write(room, request.user_id, buf, content_type, filename) }; char uribuf[256];