mirror of
https://github.com/youwen5/iamb.git
synced 2025-06-20 05:39:52 -07:00
Handle sync failure after successful password entry (#133)
This commit is contained in:
parent
7b050f82aa
commit
bb30cecc63
2 changed files with 24 additions and 20 deletions
22
src/main.rs
22
src/main.rs
|
@ -17,7 +17,13 @@ use clap::Parser;
|
||||||
use tokio::sync::Mutex as AsyncMutex;
|
use tokio::sync::Mutex as AsyncMutex;
|
||||||
use tracing_subscriber::FmtSubscriber;
|
use tracing_subscriber::FmtSubscriber;
|
||||||
|
|
||||||
use matrix_sdk::ruma::OwnedUserId;
|
use matrix_sdk::{
|
||||||
|
config::SyncSettings,
|
||||||
|
ruma::{
|
||||||
|
api::client::filter::{FilterDefinition, LazyLoadOptions, RoomEventFilter, RoomFilter},
|
||||||
|
OwnedUserId,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
use modalkit::crossterm::{
|
use modalkit::crossterm::{
|
||||||
self,
|
self,
|
||||||
|
@ -644,6 +650,20 @@ async fn login(worker: Requester, settings: &ApplicationSettings) -> IambResult<
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Perform an initial, lazily-loaded sync.
|
||||||
|
let mut room = RoomEventFilter::default();
|
||||||
|
room.lazy_load_options = LazyLoadOptions::Enabled { include_redundant_members: false };
|
||||||
|
|
||||||
|
let mut room_ev = RoomFilter::default();
|
||||||
|
room_ev.state = room;
|
||||||
|
|
||||||
|
let mut filter = FilterDefinition::default();
|
||||||
|
filter.room = room_ev;
|
||||||
|
|
||||||
|
let settings = SyncSettings::new().filter(filter.into());
|
||||||
|
|
||||||
|
worker.client.sync_once(settings).await.map_err(IambError::from)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ use matrix_sdk::{
|
||||||
room::{Invited, Messages, MessagesOptions, Room as MatrixRoom, RoomMember},
|
room::{Invited, Messages, MessagesOptions, Room as MatrixRoom, RoomMember},
|
||||||
ruma::{
|
ruma::{
|
||||||
api::client::{
|
api::client::{
|
||||||
filter::{FilterDefinition, LazyLoadOptions, RoomEventFilter, RoomFilter},
|
|
||||||
room::create_room::v3::{CreationContent, Request as CreateRoomRequest, RoomPreset},
|
room::create_room::v3::{CreationContent, Request as CreateRoomRequest, RoomPreset},
|
||||||
room::Visibility,
|
room::Visibility,
|
||||||
space::get_hierarchy::v1::Request as SpaceHierarchyRequest,
|
space::get_hierarchy::v1::Request as SpaceHierarchyRequest,
|
||||||
|
@ -1020,29 +1019,14 @@ impl ClientWorker {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
let handle = tokio::spawn(async move {
|
self.sync_handle = tokio::spawn(async move {
|
||||||
loop {
|
loop {
|
||||||
let settings = SyncSettings::default();
|
let settings = SyncSettings::default();
|
||||||
|
|
||||||
let _ = client.sync(settings).await;
|
let _ = client.sync(settings).await;
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
.into();
|
||||||
self.sync_handle = Some(handle);
|
|
||||||
|
|
||||||
// Perform an initial, lazily-loaded sync.
|
|
||||||
let mut room = RoomEventFilter::default();
|
|
||||||
room.lazy_load_options = LazyLoadOptions::Enabled { include_redundant_members: false };
|
|
||||||
|
|
||||||
let mut room_ev = RoomFilter::default();
|
|
||||||
room_ev.state = room;
|
|
||||||
|
|
||||||
let mut filter = FilterDefinition::default();
|
|
||||||
filter.room = room_ev;
|
|
||||||
|
|
||||||
let settings = SyncSettings::new().filter(filter.into());
|
|
||||||
|
|
||||||
self.client.sync_once(settings).await.map_err(IambError::from)?;
|
|
||||||
|
|
||||||
Ok(Some(InfoMessage::from("Successfully logged in!")))
|
Ok(Some(InfoMessage::from("Successfully logged in!")))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue