From ab597b09e887f610aa651513ba0d7e5c72f1c113 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sun, 12 Dec 2021 20:52:58 +0100
Subject: [PATCH] Don't re-handle already seem messages

---
 src/main.rs | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 31dba72..bff47de 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -14,7 +14,7 @@ use matrix_sdk::{
         },
         UserId,
     },
-    Client, Result, SyncSettings,
+    Client, LoopCtrl, Result, SyncSettings, RoomInfo,
 };
 
 use matrix_sdk::ruma::{events::SyncStateEvent, Int, MilliSecondsSinceUnixEpoch};
@@ -77,7 +77,7 @@ async fn main() -> Result<()> {
             println!("Logged as: {}", alice);
 
             // Don't respond to old messages
-            // client.sync_once(SyncSettings::default()).await?;
+            client.sync_once(SyncSettings::default()).await?;
 
             // https://docs.rs/ruma/0.4.0/ruma/events/enum.AnySyncMessageEvent.html
             client
@@ -85,21 +85,18 @@ async fn main() -> Result<()> {
                     |ev: SyncMessageEvent<MessageEventContent>,
                      room: Room,
                      encryption_info: Option<EncryptionInfo>| async move {
-                        println!("---\nROOM: {:?}\nENC: {:?}\nSME: {:?}", room, encryption_info, ev);
+                        println!(
+                            "---\nROOM: {:?}\nENC: {:?}\nSME: {:?}",
+                            room, encryption_info, ev
+                        );
                     },
                 )
                 .await;
-            client
-                .register_event_handler(|ev: SyncStateEvent<TopicEventContent>| async move {
-                    // You can omit any or all arguments after the first.
-                })
-                .await;
 
-            // Because we sync once already we must pass the previous sync token
-            // let settings = SyncSettings::default().token(client.sync_token().await.unwrap());
             println!("Entering sync loop");
-            // client.sync(settings).await;
-            client.sync(SyncSettings::default()).await;
+            let token = client.sync_token().await.unwrap();
+            let settings = SyncSettings::default().token(token);
+            client.sync(settings).await;
             Ok(())
         }
         Err(e) => panic!(
-- 
GitLab