tuwunel_admin/media/
mod.rs1#![expect(rustdoc::broken_intra_doc_links)]
2mod delete;
3mod delete_all_from_server;
4mod delete_all_from_user;
5mod delete_by_event;
6mod delete_list;
7mod delete_range;
8mod get_file_info;
9mod get_remote_file;
10mod get_remote_thumbnail;
11mod preview;
12
13use clap::Subcommand;
14use ruma::{OwnedEventId, OwnedMxcUri, OwnedServerName};
15use tuwunel_core::Result;
16use url::Url;
17
18use crate::admin_command_dispatch;
19
20#[admin_command_dispatch]
21#[derive(Debug, Subcommand)]
22pub(super) enum MediaCommand {
23 Delete {
26 #[arg(long)]
28 mxc: OwnedMxcUri,
29 },
30
31 DeleteByEvent {
33 #[arg(long)]
35 event_id: OwnedEventId,
36 },
37
38 DeleteList,
41
42 DeleteRange {
46 duration: String,
48
49 #[arg(long, short)]
51 older_than: bool,
52
53 #[arg(long, short)]
55 newer_than: bool,
56
57 #[arg(long)]
59 yes_i_want_to_delete_local_media: bool,
60 },
61
62 DeleteAllFromUser {
65 username: String,
66 },
67
68 DeleteAllFromServer {
71 server_name: OwnedServerName,
72
73 #[arg(long)]
75 yes_i_want_to_delete_local_media: bool,
76 },
77
78 GetFileInfo {
79 mxc: OwnedMxcUri,
81 },
82
83 GetRemoteFile {
84 mxc: OwnedMxcUri,
86
87 #[arg(short, long)]
88 server: Option<OwnedServerName>,
89
90 #[arg(short, long, default_value("10000"))]
91 timeout: u32,
92 },
93
94 GetRemoteThumbnail {
95 mxc: OwnedMxcUri,
97
98 #[arg(short, long)]
99 server: Option<OwnedServerName>,
100
101 #[arg(short, long, default_value("10000"))]
102 timeout: u32,
103
104 #[arg(long, default_value("800"))]
105 width: u32,
106
107 #[arg(long, default_value("800"))]
108 height: u32,
109 },
110
111 Preview {
112 url: Url,
113
114 #[arg(short, long)]
116 no_cache: bool,
117 },
118}