99 lines
2.4 KiB
Rust
99 lines
2.4 KiB
Rust
#![allow(rustdoc::broken_intra_doc_links)]
|
|
mod commands;
|
|
|
|
use clap::Subcommand;
|
|
use conduwuit::Result;
|
|
use ruma::{OwnedEventId, OwnedMxcUri, OwnedServerName};
|
|
|
|
use crate::admin_command_dispatch;
|
|
|
|
#[admin_command_dispatch]
|
|
#[derive(Debug, Subcommand)]
|
|
pub(super) enum MediaCommand {
|
|
/// - Deletes a single media file from our database and on the filesystem
|
|
/// via a single MXC URL or event ID (not redacted)
|
|
Delete {
|
|
/// The MXC URL to delete
|
|
#[arg(long)]
|
|
mxc: Option<OwnedMxcUri>,
|
|
|
|
/// - The message event ID which contains the media and thumbnail MXC
|
|
/// URLs
|
|
#[arg(long)]
|
|
event_id: Option<OwnedEventId>,
|
|
},
|
|
|
|
/// - Deletes a codeblock list of MXC URLs from our database and on the
|
|
/// filesystem. This will always ignore errors.
|
|
DeleteList,
|
|
|
|
/// - Deletes all remote (and optionally local) media created before or
|
|
/// after [duration] time using filesystem metadata first created at date,
|
|
/// or fallback to last modified date. This will always ignore errors by
|
|
/// default.
|
|
DeletePastRemoteMedia {
|
|
/// - The relative time (e.g. 30s, 5m, 7d) within which to search
|
|
duration: String,
|
|
|
|
/// - Only delete media created before [duration] ago
|
|
#[arg(long, short)]
|
|
before: bool,
|
|
|
|
/// - Only delete media created after [duration] ago
|
|
#[arg(long, short)]
|
|
after: bool,
|
|
|
|
/// - Long argument to additionally delete local media
|
|
#[arg(long)]
|
|
yes_i_want_to_delete_local_media: bool,
|
|
},
|
|
|
|
/// - Deletes all the local media from a local user on our server. This will
|
|
/// always ignore errors by default.
|
|
DeleteAllFromUser {
|
|
username: String,
|
|
},
|
|
|
|
/// - Deletes all remote media from the specified remote server. This will
|
|
/// always ignore errors by default.
|
|
DeleteAllFromServer {
|
|
server_name: OwnedServerName,
|
|
|
|
/// Long argument to delete local media
|
|
#[arg(long)]
|
|
yes_i_want_to_delete_local_media: bool,
|
|
},
|
|
|
|
GetFileInfo {
|
|
/// The MXC URL to lookup info for.
|
|
mxc: OwnedMxcUri,
|
|
},
|
|
|
|
GetRemoteFile {
|
|
/// The MXC URL to fetch
|
|
mxc: OwnedMxcUri,
|
|
|
|
#[arg(short, long)]
|
|
server: Option<OwnedServerName>,
|
|
|
|
#[arg(short, long, default_value("10000"))]
|
|
timeout: u32,
|
|
},
|
|
|
|
GetRemoteThumbnail {
|
|
/// The MXC URL to fetch
|
|
mxc: OwnedMxcUri,
|
|
|
|
#[arg(short, long)]
|
|
server: Option<OwnedServerName>,
|
|
|
|
#[arg(short, long, default_value("10000"))]
|
|
timeout: u32,
|
|
|
|
#[arg(short, long, default_value("800"))]
|
|
width: u32,
|
|
|
|
#[arg(short, long, default_value("800"))]
|
|
height: u32,
|
|
},
|
|
}
|