mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-06-26 15:06:38 +02:00
59 lines
1.2 KiB
Rust
59 lines
1.2 KiB
Rust
mod alias;
|
|
mod commands;
|
|
mod directory;
|
|
mod info;
|
|
mod moderation;
|
|
|
|
use clap::Subcommand;
|
|
use conduwuit::Result;
|
|
use ruma::OwnedRoomId;
|
|
|
|
use self::{
|
|
alias::RoomAliasCommand, directory::RoomDirectoryCommand, info::RoomInfoCommand,
|
|
moderation::RoomModerationCommand,
|
|
};
|
|
use crate::admin_command_dispatch;
|
|
|
|
#[admin_command_dispatch]
|
|
#[derive(Debug, Subcommand)]
|
|
pub(super) enum RoomCommand {
|
|
/// - List all rooms the server knows about
|
|
#[clap(alias = "list")]
|
|
ListRooms {
|
|
page: Option<usize>,
|
|
|
|
/// Excludes rooms that we have federation disabled with
|
|
#[arg(long)]
|
|
exclude_disabled: bool,
|
|
|
|
/// Excludes rooms that we have banned
|
|
#[arg(long)]
|
|
exclude_banned: bool,
|
|
|
|
#[arg(long)]
|
|
/// Whether to only output room IDs without supplementary room
|
|
/// information
|
|
no_details: bool,
|
|
},
|
|
|
|
#[command(subcommand)]
|
|
/// - View information about a room we know about
|
|
Info(RoomInfoCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage moderation of remote or local rooms
|
|
Moderation(RoomModerationCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage rooms' aliases
|
|
Alias(RoomAliasCommand),
|
|
|
|
#[command(subcommand)]
|
|
/// - Manage the room directory
|
|
Directory(RoomDirectoryCommand),
|
|
|
|
/// - Check if we know about a room
|
|
Exists {
|
|
room_id: OwnedRoomId,
|
|
},
|
|
}
|