Skip to content

Commit 36ccbe7

Browse files
committed
Use let chains for readability
1 parent 7af1e33 commit 36ccbe7

File tree

2 files changed

+26
-40
lines changed

2 files changed

+26
-40
lines changed

joke_bot/src/main.rs

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -161,37 +161,30 @@ async fn create_matrix_session(
161161
async fn handle_message(
162162
http_client: &HttpClient,
163163
matrix_client: &MatrixClient,
164-
e: &Raw<AnySyncTimelineEvent>,
164+
ev: &Raw<AnySyncTimelineEvent>,
165165
room_id: OwnedRoomId,
166166
bot_user_id: &UserId,
167167
) -> Result<(), Box<dyn Error>> {
168168
if let Ok(AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
169169
SyncMessageLikeEvent::Original(m),
170-
))) = e.deserialize()
170+
))) = ev.deserialize()
171+
// workaround because Conduit does not implement filtering
172+
&& m.sender != bot_user_id
173+
&& let MessageType::Text(t) = m.content.msgtype
171174
{
172-
// workaround because Conduit does not implement filtering.
173-
if m.sender == bot_user_id {
174-
return Ok(());
175-
}
176-
177-
if let MessageType::Text(t) = m.content.msgtype {
178-
println!("{}:\t{}", m.sender, t.body);
179-
if t.body.to_ascii_lowercase().contains("joke") {
180-
let joke = match get_joke(http_client).await {
181-
Ok(joke) => joke,
182-
Err(_) => "I thought of a joke... but I just forgot it.".to_owned(),
183-
};
184-
let joke_content = RoomMessageEventContent::text_plain(joke);
175+
println!("{}:\t{}", m.sender, t.body);
176+
if t.body.to_ascii_lowercase().contains("joke") {
177+
let joke = match get_joke(http_client).await {
178+
Ok(joke) => joke,
179+
Err(_) => "I thought of a joke... but I just forgot it.".to_owned(),
180+
};
181+
let joke_content = RoomMessageEventContent::text_plain(joke);
185182

186-
let txn_id = TransactionId::new();
187-
let req = send_message_event::v3::Request::new(
188-
room_id.to_owned(),
189-
txn_id,
190-
&joke_content,
191-
)?;
192-
// Do nothing if we can't send the message.
193-
let _ = matrix_client.send_request(req).await;
194-
}
183+
let txn_id = TransactionId::new();
184+
let req =
185+
send_message_event::v3::Request::new(room_id.to_owned(), txn_id, &joke_content)?;
186+
// Do nothing if we can't send the message.
187+
let _ = matrix_client.send_request(req).await;
195188
}
196189
}
197190

message_log/src/main.rs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ use ruma::{
44
api::client::{filter::FilterDefinition, sync::sync_events},
55
assign,
66
events::{
7-
AnySyncMessageLikeEvent, AnySyncTimelineEvent, OriginalSyncMessageLikeEvent,
8-
SyncMessageLikeEvent,
9-
room::message::{MessageType, RoomMessageEventContent, TextMessageEventContent},
7+
AnySyncMessageLikeEvent, AnySyncTimelineEvent, SyncMessageLikeEvent,
8+
room::message::MessageType,
109
},
1110
presence::PresenceState,
1211
};
@@ -51,21 +50,15 @@ async fn log_messages(
5150
{
5251
// Filter out the text messages
5352
if let AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
54-
SyncMessageLikeEvent::Original(OriginalSyncMessageLikeEvent {
55-
content:
56-
RoomMessageEventContent {
57-
msgtype:
58-
MessageType::Text(TextMessageEventContent {
59-
body: msg_body, ..
60-
}),
61-
..
62-
},
63-
sender,
64-
..
65-
}),
53+
SyncMessageLikeEvent::Original(m),
6654
)) = event
55+
&& let MessageType::Text(t) = m.content.msgtype
6756
{
68-
println!("{sender} in {room_id}: {msg_body}");
57+
println!(
58+
"{sender} in {room_id}: {msg_body}",
59+
sender = m.sender,
60+
msg_body = t.body
61+
);
6962
}
7063
}
7164
}

0 commit comments

Comments
 (0)