commit 3a34ab7133feb6d4ac37d924af1162f374eb8c29
parent afb38af4c49a984f0e575ece859e6ea7c92ebe20
Author: Marcel <mtrnord1@gmail.com>
Date: Fri, 10 Jul 2020 16:39:24 +0200
WIP monorepo
Took 26 minutes
Diffstat:
5 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
@@ -62,7 +62,6 @@ features = [
[patch.crates-io]
olm-sys = { git = "https://gitlab.gnome.org/stoically/olm-sys", branch = "wasm-target" }
cjson = { git = "https://github.com/engineerd/cjson" }
-ruma-events = { git = "https://github.com/ruma/ruma-events", rev="3f74ba327093d4f32e11c2741aaa649e4ab733d9" }
reqwest = { git = "https://github.com/daydream-mx/reqwest.git", branch = "MTRNord/wasm-worker-support"}
[profile.release]
diff --git a/src/app/components/events/mod.rs b/src/app/components/events/mod.rs
@@ -1,5 +1,5 @@
use crate::app::matrix::types::get_media_download_url;
-use matrix_sdk::events::room::message::MessageEvent;
+use matrix_sdk::events::MessageEventStub;
use matrix_sdk::Room;
use url::Url;
@@ -8,7 +8,7 @@ pub mod notice;
pub mod text;
pub mod video;
-pub fn is_new_user(prev_event: Option<&MessageEvent>, event: &MessageEvent) -> bool {
+pub fn is_new_user(prev_event: Option<&MessageEventStub>, event: &MessageEventStub) -> bool {
if let Some(prev_event) = prev_event {
prev_event.sender != event.sender
} else {
@@ -16,15 +16,15 @@ pub fn is_new_user(prev_event: Option<&MessageEvent>, event: &MessageEvent) -> b
}
}
-pub fn get_sender_displayname<'a>(room: &'a Room, event: &'a MessageEvent) -> &'a str {
+pub fn get_sender_displayname<'a>(room: &'a Room, event: &'a MessageEventStub) -> &'a str {
room.joined_members
.get(&event.sender)
.or_else(|| room.invited_members.get(&event.sender))
.and_then(|member| member.display_name.as_deref())
- .unwrap_or_else(|| event.sender.as_ref())
+ .unwrap_or_else(|| event.sender.as_deref())
}
-pub fn get_sender_avatar<'a>(homeserver_url: &'a Url, room: &'a Room, event: &'a MessageEvent) -> Option<Url> {
+pub fn get_sender_avatar<'a>(homeserver_url: &'a Url, room: &'a Room, event: &'a MessageEventStub) -> Option<Url> {
let member = room
.joined_members
.get(&event.sender)
diff --git a/src/app/components/room_list/item.rs b/src/app/components/room_list/item.rs
@@ -50,7 +50,7 @@ impl Component for RoomItem {
let last_message = match room.messages.iter().last() {
None => "".to_string(),
Some(m) => {
- if let MessageEventContent::Text(text_event) = &m.content {
+ if let MessageEventContent::Text(text_event) = m.content.clone() {
text_event.body.clone()
} else {
"".to_string()
diff --git a/src/app/matrix/mod.rs b/src/app/matrix/mod.rs
@@ -5,7 +5,7 @@ use log::*;
use matrix_sdk::{
api::r0::{filter::RoomEventFilter, message::get_message_events::Direction},
events::{
- collections::all::RoomEvent,
+ AnyRoomEvent,
room::message::{
FormattedBody, MessageEvent, MessageEventContent, MessageFormat,
TextMessageEventContent,
@@ -285,18 +285,18 @@ impl Agent for MatrixAgent {
// TODO save end point for future loading
let mut wrapped_messages: Vec<EventJson<MessageEvent>> = Vec::new();
- let chunk_iter: Vec<EventJson<RoomEvent>> = messsages.chunk;
+ let chunk_iter: Vec<EventJson<AnyRoomEvent>> = messsages.chunk;
let (oks, _): (Vec<_>, Vec<_>) = chunk_iter
.iter()
.map(|event| event.deserialize())
.partition(Result::is_ok);
- let deserialized_events: Vec<RoomEvent> =
+ let deserialized_events: Vec<AnyRoomEvent> =
oks.into_iter().map(Result::unwrap).collect();
for event in deserialized_events.into_iter().rev() {
// TODO deduplicate betweeen this and sync
- if let RoomEvent::RoomMessage(mut event) = event {
+ if let AnyRoomEvent::RoomMessage(mut event) = event {
if let MessageEventContent::Image(mut image_event) =
event.clone().content
{
diff --git a/src/app/matrix/sync.rs b/src/app/matrix/sync.rs
@@ -7,7 +7,9 @@ use log::*;
use matrix_sdk::{
api::r0::sync::sync_events::Response as SyncResponse,
events::{
- collections::all::{RoomEvent, StateEvent},
+ AnyRoomEventStub,
+ AnyStateEventStub,
+ AnyMessageEventStub,
room::message::MessageEventContent,
EventJson,
},
@@ -71,24 +73,24 @@ impl Sync {
}
}
- async fn on_state_event(&self, room_id: &RoomId, event: StateEvent) {
- if let StateEvent::RoomCreate(_event) = event {
+ async fn on_state_event(&self, room_id: &RoomId, event: AnyStateEventStub) {
+ if let AnyStateEventStub::RoomCreate(_event) = event {
info!("Sent JoinedRoomSync State");
let resp = Response::JoinedRoomSync(room_id.clone());
self.callback.emit(resp);
}
}
- async fn on_room_message(&self, room_id: &RoomId, event: RoomEvent) {
+ async fn on_room_message(&self, room_id: &RoomId, event: AnyRoomEventStub) {
// TODO handle all messages...
- if let RoomEvent::RoomCreate(_create_event) = event.clone() {
+ if let AnyRoomEventStub::State(AnyStateEventStub::RoomCreate(_create_event)) = event.clone() {
info!("Sent JoinedRoomSync Timeline");
let resp = Response::JoinedRoomSync(room_id.clone());
self.callback.emit(resp);
}
- if let RoomEvent::RoomMessage(mut event) = event {
+ if let AnyRoomEventStub::Message(AnyMessageEventStub::RoomMessage(mut event)) = event {
if let MessageEventContent::Text(text_event) = event.content.clone() {
let homeserver_url = self.matrix_client.clone().homeserver().clone();