From b09b9eb10a4a6e2b66d045a3488e7992c32d7b46 Mon Sep 17 00:00:00 2001
From: dasPolygon <polygom+git@systemli.org>
Date: Mon, 8 Jan 2024 21:53:16 +0100
Subject: [PATCH] cargo fmt

---
 src/main.rs | 81 +++++++++++++++++++++++++++++++++++------------------
 1 file changed, 54 insertions(+), 27 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 176cfa5..5ced061 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,23 +1,21 @@
+use image::{io::Reader as ImageReader, GenericImageView};
 use matrix_sdk::{
     self,
     config::SyncSettings,
     ruma::{
-        events::{
-            room::{
-                member::StrippedRoomMemberEvent,
-                message::{MessageType, OriginalSyncRoomMessageEvent},
-            },
+        events::room::{
+            member::StrippedRoomMemberEvent,
+            message::{MessageType, OriginalSyncRoomMessageEvent},
         },
         RoomId,
     },
     Client, Room, RoomState,
 };
-use serde_json::{Value as JsonValue, json};
-use std::{collections::HashMap, env, fs, process::exit, fs::File, path::Path, io::Result};
-use image::{io::Reader as ImageReader, GenericImageView};
+use mime_guess;
 use mime_guess::from_path;
+use serde_json::{json, Value as JsonValue};
+use std::{collections::HashMap, env, fs, fs::File, io::Result, path::Path, process::exit};
 use tokio::time::{sleep, Duration};
-use mime_guess;
 use tracing_subscriber;
 use uuid::Uuid;
 
@@ -25,19 +23,30 @@ use uuid::Uuid;
 async fn main() -> anyhow::Result<()> {
     tracing_subscriber::fmt::init();
 
-    let (homeserver_url, username, password) = match (env::args().nth(1), env::args().nth(2), env::args().nth(3)) {
-        (Some(a), Some(b), Some(c)) => (a, b, c),
-        _ => {
-            eprintln!("Usage: {} <homeserver_url> <username> <password>", env::args().next().unwrap());
-            exit(1);
-        }
-    };
+    let (homeserver_url, username, password) =
+        match (env::args().nth(1), env::args().nth(2), env::args().nth(3)) {
+            (Some(a), Some(b), Some(c)) => (a, b, c),
+            _ => {
+                eprintln!(
+                    "Usage: {} <homeserver_url> <username> <password>",
+                    env::args().next().unwrap()
+                );
+                exit(1);
+            }
+        };
     login_and_sync(homeserver_url, &username, &password).await?;
     Ok(())
 }
 
-async fn login_and_sync(homeserver_url: String, username: &str, password: &str) -> anyhow::Result<()> {
-    let client = Client::builder().homeserver_url(homeserver_url).build().await?;
+async fn login_and_sync(
+    homeserver_url: String,
+    username: &str,
+    password: &str,
+) -> anyhow::Result<()> {
+    let client = Client::builder()
+        .homeserver_url(homeserver_url)
+        .build()
+        .await?;
 
     client
         .matrix_auth()
@@ -56,7 +65,11 @@ async fn login_and_sync(homeserver_url: String, username: &str, password: &str)
     Ok(())
 }
 
-async fn on_stripped_state_member(room_member: StrippedRoomMemberEvent, client: Client, room: Room){
+async fn on_stripped_state_member(
+    room_member: StrippedRoomMemberEvent,
+    client: Client,
+    room: Room,
+) {
     if room_member.state_key != client.user_id().unwrap() {
         return;
     }
@@ -66,7 +79,12 @@ async fn on_stripped_state_member(room_member: StrippedRoomMemberEvent, client:
         let mut delay = 2;
 
         while let Err(err) = room.join().await {
-            eprintln!("Failed to join room {} ({:?}), retrying in {}s", room.room_id(), err, delay);
+            eprintln!(
+                "Failed to join room {} ({:?}), retrying in {}s",
+                room.room_id(),
+                err,
+                delay
+            );
             sleep(Duration::from_secs(delay)).await;
             delay *= 2;
 
@@ -83,7 +101,9 @@ async fn on_room_message(event: OriginalSyncRoomMessageEvent, room: Room, client
     if room.state() != RoomState::Joined {
         return;
     }
-    let MessageType::Text(text_content) = event.content.msgtype else { return; };
+    let MessageType::Text(text_content) = event.content.msgtype else {
+        return;
+    };
     let mut parts = text_content.body.trim().splitn(2, ' ');
     let command = parts.next().unwrap_or_default();
 
@@ -117,9 +137,9 @@ fn create_image_object(mxc_url: String, path_string: &str) -> anyhow::Result<Jso
     let metadata = path.metadata()?;
     let size = metadata.len();
     let mime_type = from_path(&path)
-    .first_or_octet_stream()
-    .essence_str()
-    .to_string();
+        .first_or_octet_stream()
+        .essence_str()
+        .to_string();
 
     Ok(serde_json::json!({
         "url": mxc_url,
@@ -142,11 +162,17 @@ fn create_pack_event(images: &HashMap<String, JsonValue>, pack_name: &str) -> Js
     })
 }
 
-async fn send_pack_event(client: &Client, room_id: &RoomId, event: JsonValue) -> anyhow::Result<()> {
+async fn send_pack_event(
+    client: &Client,
+    room_id: &RoomId,
+    event: JsonValue,
+) -> anyhow::Result<()> {
     println!("Sending im.ponies.room_emotes event to the room");
     if let Some(room) = client.get_room(&room_id) {
         let uuid = Uuid::new_v4();
-        let response = room.send_state_event_raw("im.ponies.room_emotes", &uuid.to_string(), json!(event)).await?;
+        let response = room
+            .send_state_event_raw("im.ponies.room_emotes", &uuid.to_string(), json!(event))
+            .await?;
         println!("Got event id {}", response.event_id);
     }
     Ok(())
@@ -164,7 +190,8 @@ async fn process_image_pack(client: &Client, room: &Room, pack_name: &str) -> an
             match create_image_object(mxc_url, path.to_str().unwrap()) {
                 Ok(image_object) => {
                     images.insert(shortcode, image_object);
-                } Err(e) => {
+                }
+                Err(e) => {
                     eprintln!("Error processing image {}: {}", shortcode, e);
                 }
             }
-- 
GitLab