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 411ae630685cb817f55a34dd045bab51b751ef80
parent d820a910e7c91180c225b097d4c237c751063384
Author: Marcel <mtrnord1@gmail.com>
Date:   Fri, 10 Jul 2020 18:37:52 +0200

Some more migration to the monorepo

Took 16 minutes

Diffstat:
Msrc/app/components/event_list.rs | 8++++----
Msrc/app/components/events/image.rs | 2+-
Msrc/app/components/events/mod.rs | 8+++-----
Msrc/app/components/events/notice.rs | 2+-
Msrc/app/components/events/text.rs | 2+-
Msrc/app/components/events/video.rs | 2+-
Msrc/app/matrix/mod.rs | 9+++++----
Msrc/app/matrix/sync.rs | 15+++++++++++----
8 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/src/app/components/event_list.rs b/src/app/components/event_list.rs @@ -3,8 +3,8 @@ use std::{collections::HashMap, rc::Rc}; use log::*; use matrix_sdk::{ events::{ - room::message::MessageEventContent, AnyMessageEventContent, AnyMessageEventStub, - MessageEvent + room::message::MessageEventContent, AnyMessageEvent, AnyMessageEventContent, + AnyMessageEventStub, }, identifiers::RoomId, Room, @@ -27,7 +27,7 @@ pub struct EventList { #[derive(Default)] pub struct State { // TODO handle all events - pub events: HashMap<RoomId, Vec<AnyMessageEventStub>>, + pub events: HashMap<RoomId, Vec<AnyMessageEvent>>, } #[allow(clippy::large_enum_variant)] @@ -94,7 +94,7 @@ impl Component for EventList { } } Response::OldMessages((room_id, messages)) => { - let mut deserialized_messages: Vec<AnyMessageEventStub> = messages + let mut deserialized_messages: Vec<AnyMessageEvent> = messages .iter() .map(|x| x.deserialize()) .filter_map(Result::ok) diff --git a/src/app/components/events/image.rs b/src/app/components/events/image.rs @@ -1,6 +1,6 @@ use std::rc::Rc; -use crate::app::components::events::{RoomExt, EventExt}; +use crate::app::components::events::{EventExt, RoomExt}; use matrix_sdk::{ events::{room::message::ImageMessageEventContent, AnyMessageEventStub}, Room, diff --git a/src/app/components/events/mod.rs b/src/app/components/events/mod.rs @@ -24,16 +24,16 @@ impl EventExt for AnyMessageEventStub { } pub trait RoomExt { - fn get_sender_displayname<'a>(&self, event: &'a AnyMessageEventStub) -> &'a str; + fn get_sender_displayname<'a>(&'a self, event: &'a AnyMessageEventStub) -> &'a str; fn get_sender_avatar<'a>( - &self, + &'a self, homeserver_url: &'a Url, event: &'a AnyMessageEventStub, ) -> Option<Url>; } impl RoomExt for Room { - fn get_sender_displayname<'a>(&self, event: &'a AnyMessageEventStub) -> &'a str { + fn get_sender_displayname<'a>(&'a self, event: &'a AnyMessageEventStub) -> &'a str { self.joined_members .get(&event.sender()) .or_else(|| self.invited_members.get(&event.sender())) @@ -56,6 +56,4 @@ impl RoomExt for Room { member.avatar_url.as_deref()?, )) } - } - diff --git a/src/app/components/events/notice.rs b/src/app/components/events/notice.rs @@ -9,7 +9,7 @@ use web_sys::Node; use yew::prelude::*; use yew::virtual_dom::VNode; -use crate::app::components::events::{RoomExt, EventExt}; +use crate::app::components::events::{EventExt, RoomExt}; pub(crate) struct Notice { props: Props, diff --git a/src/app/components/events/text.rs b/src/app/components/events/text.rs @@ -1,6 +1,6 @@ use std::rc::Rc; -use crate::app::components::events::{RoomExt, EventExt}; +use crate::app::components::events::{EventExt, RoomExt}; use linkify::LinkFinder; use matrix_sdk::{ events::{room::message::TextMessageEventContent, AnyMessageEventStub}, diff --git a/src/app/components/events/video.rs b/src/app/components/events/video.rs @@ -1,6 +1,6 @@ use std::rc::Rc; -use crate::app::components::events::{RoomExt, EventExt}; +use crate::app::components::events::{EventExt, RoomExt}; use matrix_sdk::{ events::{room::message::VideoMessageEventContent, AnyMessageEventStub}, Room, diff --git a/src/app/matrix/mod.rs b/src/app/matrix/mod.rs @@ -6,7 +6,7 @@ use matrix_sdk::{ api::r0::{filter::RoomEventFilter, message::get_message_events::Direction}, events::{ room::message::{ - FormattedBody, MessageEvent, MessageEventContent, MessageFormat, + FormattedBody, MessageEventContent, MessageFormat, TextMessageEventContent, }, AnyMessageEvent, AnyMessageEventStub, AnyRoomEvent, EventJson, @@ -68,7 +68,7 @@ pub enum Response { Sync((RoomId, EventJson<AnyMessageEventStub>)), JoinedRoomSync(RoomId), SyncPing, - OldMessages((RoomId, Vec<EventJson<MessageEvent>>)), + OldMessages((RoomId, Vec<EventJson<AnyMessageEvent>>)), JoinedRoom((RoomId, Room)), SaveSession(SessionStore), } @@ -287,7 +287,7 @@ impl Agent for MatrixAgent { .unwrap(); // TODO save end point for future loading - let mut wrapped_messages: Vec<EventJson<MessageEvent>> = Vec::new(); + let mut wrapped_messages: Vec<EventJson<AnyMessageEvent>> = Vec::new(); let chunk_iter: Vec<EventJson<AnyRoomEvent>> = messsages.chunk; let (oks, _): (Vec<_>, Vec<_>) = chunk_iter .iter() @@ -346,7 +346,8 @@ impl Agent for MatrixAgent { event.content = MessageEventContent::Video(video_event); } - let serialized_event = EventJson::from(event.clone()); + let serialized_event = + EventJson::from(AnyMessageEvent::RoomMessage(event.clone())); wrapped_messages.push(serialized_event); } } diff --git a/src/app/matrix/sync.rs b/src/app/matrix/sync.rs @@ -7,6 +7,7 @@ use log::*; use matrix_sdk::{ api::r0::sync::sync_events::Response as SyncResponse, events::{ + room::message::MessageEventContent, AnyMessageEventStub, AnyRoomEventStub, AnyStateEventStub, EventJson, }, @@ -19,7 +20,7 @@ use yew::Callback; use lazy_static::lazy_static; -use crate::app::components::events::{RoomExt}; +use crate::app::components::events::RoomExt; use crate::app::matrix::types::{get_media_download_url, get_video_media_download_url}; use crate::app::matrix::Response; use crate::utils::notifications::Notifications; @@ -107,9 +108,15 @@ impl Sync { let (avatar_url, room_name, displayname) = { let room = room.read().await; ( - room.get_sender_avatar(&homeserver_url, &AnyMessageEventStub::RoomMessage(cloned_event)), + room.get_sender_avatar( + &homeserver_url, + &AnyMessageEventStub::RoomMessage(cloned_event.clone()), + ), room.display_name(), - room.get_sender_displayname(&AnyMessageEventStub::RoomMessage(cloned_event)).to_string(), + room.get_sender_displayname(&AnyMessageEventStub::RoomMessage( + cloned_event, + )) + .to_string(), ) }; @@ -168,7 +175,7 @@ impl Sync { } } - let serialized_event = EventJson::from(event); + let serialized_event = EventJson::from(AnyMessageEventStub::RoomMessage(event)); let resp = Response::Sync((room_id.clone(), serialized_event)); self.callback.emit(resp); }