daydream

A small matrix web client written in rust
git clone git://archive.git.mtrnord.blog/daydream-mx/daydream.git
Log | Files | Refs | README | LICENSE

commit 23612dd84a978fa073c79537e6c32f80bb41781c
parent 67036f5a90d0ad10caee7d5efce660b6f6a7d836
Author: Marcel <mtrnord1@gmail.com>
Date:   Sun, 26 Jul 2020 11:15:59 +0200

Only display notifications when not sent by yourself (and add a convenient make script to open the ruma docs)

Took 8 minutes

Diffstat:
MMakefile.toml | 4++++
Msrc/app/matrix/sync.rs | 51++++++++++++++++++++++++++-------------------------
2 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/Makefile.toml b/Makefile.toml @@ -6,6 +6,10 @@ install_crate = "rustfmt" command = "cargo" args = ["fmt"] +[tasks.ruma-docs] +command = "cargo" +args = ["doc", "-p", "ruma", "--open"] + [tasks.wasm-clean] script_runner = "@rust" script = [ diff --git a/src/app/matrix/sync.rs b/src/app/matrix/sync.rs @@ -120,31 +120,32 @@ impl Sync { .get_joined_room(&local_room_id) .await .unwrap(); - - let (avatar_url, room_name, displayname) = { - let room = room.read().await; - ( - room.get_sender_avatar( - &homeserver_url, - &AnySyncMessageEvent::RoomMessage(cloned_event.clone()), - ), - room.display_name(), - room.get_sender_displayname(&AnySyncMessageEvent::RoomMessage( - cloned_event, - )) - .to_string(), - ) - }; - - let title = if displayname == room_name { - displayname - } else { - format!("{} ({})", displayname, room_name) - }; - - let notification = - Notifications::new(avatar_url, title, text_event.body.clone()); - notification.show(); + if cloned_event.sender.clone() != client.user_id().await.unwrap() { + let (avatar_url, room_name, displayname) = { + let room = room.read().await; + ( + room.get_sender_avatar( + &homeserver_url, + &AnySyncMessageEvent::RoomMessage(cloned_event.clone()), + ), + room.display_name(), + room.get_sender_displayname(&AnySyncMessageEvent::RoomMessage( + cloned_event, + )) + .to_string(), + ) + }; + + let title = if displayname == room_name { + displayname + } else { + format!("{} ({})", displayname, room_name) + }; + + let notification = + Notifications::new(avatar_url, title, text_event.body.clone()); + notification.show(); + } }); } }