rdzobot 0.1.0

Modular, but monolithic Matrix bot
Documentation
// SPDX-License-Identifier: AGPL-3.0-or-later
// SPDX-FileCopyrightText: 2025 Wojtek Porczyk <woju@hackerspace.pl>

//! Prelude module for rdzobot.
//!
//! This module re-exports several items required for most common code. In particular, there's very
//! common pattern to handle a&nbsp;text message by replying to it:
//!
//! ```
//! # use rdzobot::prelude::*;
//! pub async fn on_room_message(
//!     event: OriginalSyncRoomMessageEvent,
//!     client: Client,
//!     room: Room,
//!     bot: Ctx<Rdzobot>,
//! ) -> anyhow::Result<()> {
//!     let Some(body) = text_message_gate(&event, &client, &room) else {
//!         return Ok(());
//!     };
//!
//!     // handle the message using `body`
//!
//!     if body.starts_with("hello") {
//!         room.send(
//!             RoomMessageEventContent::notice_plain("Hello, world!")
//!                 .make_reply_to(&event.clone().into_full_event(room.room_id().into()),
//!             ForwardThread::No,
//!             AddMentions::Yes,
//!         ));
//!     }
//!
//!     Ok(())
//! }
//! ```
//!
//! All necessary types are provided by this module.

pub use crate::bot::Rdzobot;
pub use crate::utils::{
    nie_zesraj_siÄ™,
    text_message_gate,
};

pub use clap::{
    CommandFactory,
    FromArgMatches,
};
pub use matrix_sdk::event_handler::Ctx;
pub use matrix_sdk::ruma::OwnedRoomOrAliasId;
pub use matrix_sdk::ruma::events::room::message::{
    AddMentions,
    ForwardThread,
    MessageType,
    OriginalSyncRoomMessageEvent,
    RoomMessageEventContent,
};
pub use matrix_sdk::{
    Client,
    Room,
};
pub use serde::Deserialize;