tuwunel_admin/media/
get_remote_thumbnail.rs1use std::time::Duration;
2
3use ruma::{Mxc, OwnedMxcUri, OwnedServerName};
4use tuwunel_core::Result;
5use tuwunel_service::media::Dim;
6
7use crate::admin_command;
8
9#[admin_command]
10pub(super) async fn get_remote_thumbnail(
11 &self,
12 mxc: OwnedMxcUri,
13 server: Option<OwnedServerName>,
14 timeout: u32,
15 width: u32,
16 height: u32,
17) -> Result {
18 let mxc: Mxc<'_> = mxc.as_str().try_into()?;
19 let timeout = Duration::from_millis(timeout.into());
20 let dim = Dim::new(width, height, None);
21 let mut result = self
22 .services
23 .media
24 .fetch_remote_thumbnail(&mxc, server.as_deref(), timeout, &dim)
25 .await?;
26
27 let len = result.content.len();
28 result.content.clear();
29
30 write!(self, "```\n{result:#?}\nreceived {len} bytes for file content.\n```").await
31}