Compare commits

...

5 commits

2 changed files with 16 additions and 3 deletions

View file

@ -57,6 +57,7 @@ pub enum OpenState {
Closed,
}
#[instrument(skip(api))]
async fn get_open_state(api: &ItsApi) -> Result<OpenState> {
let state = api
.status()
@ -210,17 +211,29 @@ impl Bot {
ev: &OriginalRoomMessageEvent,
room: &Joined,
) -> Result<()> {
event!(Level::TRACE, ?ev, "handling message");
if Some(&*ev.sender) == self.client.user_id() {
event!(Level::TRACE, "message from ourselves, ignoring");
return Ok(());
}
let MessageType::Text(TextMessageEventContent { body, .. }) = &ev.content.msgtype else {
event!(Level::TRACE, "non-plaintext message, ignoring");
return Ok(());
};
let Some(command) = body.strip_prefix(&self.config.app.command_prefix) else {
event!(Level::TRACE, "non-command message, ignoring");
return Ok(());
};
let reply = |msg: &str| {
// workaround for broken IRC bridge
// https://github.com/matrix-org/matrix-appservice-irc/issues/683#issuecomment-1312688727
let msg = format!("\n{msg}");
room.send(
RoomMessageEventContent::notice_plain(msg).make_reply_to(ev),
RoomMessageEventContent::text_plain(msg).make_reply_to(ev),
None,
)
};

View file

@ -7,9 +7,9 @@ pub enum Error {
#[error("invalid URL")]
InvalidUrl(#[from] url::ParseError),
#[error("invalid response")]
InvalidResponse(reqwest::Error),
InvalidResponse(#[source] reqwest::Error),
#[error("network request failed")]
Network(reqwest::Error),
Network(#[source] reqwest::Error),
}
/// Handler for the IT-Syndikat API.