Skip to main content

tuwunel_admin/media/
get_remote_thumbnail.rs

1use 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}